こんにちは。のっくんです。
AIブームのせいか最近よく、
[speech_bubble type=”ln-flat” subtype=”L1″ icon=”ilust/shinpai_man.png” name=”男の子”]ディープラーニングって言われても難しくてわからない[/speech_bubble] [speech_bubble type=”ln-flat” subtype=”L1″ icon=”ilust/cat2_4_think.png” name=”ネコ”]ディープラーニングの仕組みがどうなっているのか知りたい[/speech_bubble] って声を聞きます。
今日はそんな人のために、ディープラーニングの基礎を分かりやすく説明したいと思います。
[toc]
機械学習って何?
ディープラーニングは機械学習の一種です。
そこでそもそも機械学習って何?って話からしたいと思います。
従来のシステムは、人が与えたルールとデータから一定を答えを出すことしかできませんでした。
例えば、a + b = c というルールがあったとします。ここにデータa=3,b=2を与えると、システムが5という答えを計算してくれるわけです。
つまり、二つのデータを与えて、その結果、計算するルール(アルゴリズム)は、人が考えてプログラムしていました。
上の例はとてもシンプルですが、これが複雑なルール、例えば、物体の円周の長さを計算するとかだと、人の頭ではすぐに計算できません。
そこで予めプログラムを書いておき、その都度データを変えて、答えを得るということをしていたんですね。

ところが、機械学習では人間がルールを与えなくても、データと答えから計算機がルールを考えることができるようになりました。
例えば、
- 過去のデータを機械学習することで、未来の天気を予測するルールを作り出すことができるようになった。
これはすごいことです。なぜかというと、人が分からないことを機械が予測できるようになったからです。
他にも色んなケースに適用できます。
- 過去の日経平均株価のデータを与えて将来の株価を予測する
- 過去に自分がAmazonで調べた履歴データから興味のありそうな商品を提案する
大量のデータさえあればそれを元に未来を予測できるようになった。
ルールを作る上で使うデータは数え切れないほどあります。
月、気温、地域、花粉、風量、雨量…
さらに時系列を考えると、1日前だけでなく、過去1週間分、過去1ヶ月分のデータを与えることもできるわけです。
人が考えるのには限界がありますよね。
このようにたくさんのデータを与えて、ルールを作るのは人よりも機械の方が得意なんです。
ちなみに機械が生成したルールはブラックボックスです。つまり説明ができないのです。
最近では「説明可能なAI」を作ろう努力している企業が多数あります。
ディープラーニングの基礎
さて、前置きが長くなりましたが、ここからディープラーニングの仕組みを説明していきます。

レイヤを複数繋げたものをネットワークと呼びます。各レイヤには重み(パラメータ)が与えられ、その重みの値によってレイヤが出力する値が変わります。
このネットワークに入力X(データ)を入れると機械が予測した出力Y’が得られます。
例えば、
- 気温、湿度を入力すると天気を出力する。
とかですね。
この重みの値を調整していくことを学習と言います。
どうやって重みを調整するの?
さて、ここからはどうやって重みを調整していくか説明していきます。
重みの調整のための役割を担うのは以下の2つです。
- 損失関数
- オプティマイザ

図にある通り、予測したY’が正解Yとどれだけ異なっているかを計算するのが損失関数です。
そして損失もしくは差分をオプティマイザが受け取って重みを調整、更新していきます。
オプティマイザや損失関数の種類はたくさんありますが、それぞれの仕組みを理解するというよりも、用途によってどれを使うべきかを理解するのが大事です。
この辺りのお話はまた今度したいと思います。
おわり。