ディープラーニング

ディープラーニング(深層学習)の名前が知られるようになってきたのは2000年代あたりかと記憶しています。大元になっているのはニューラルネットワークであり、実は日本人の福島さんという方が1980年代に考案したネオコグニトロンが発祥と言われています。

現在では、この中間ノード層(隠れ層)のノード数、階層の数も多くなってきました。2012年にgoogleの猫で話題になったときの構造であるGoogleNetは以下のようなもので、バックプロパゲーションでの勾配消失を防ぐ、特徴を検出するために1レイヤ中でいくつかのフィルタリングを並行的に行なっているなどの工夫がなされているのがわかります。


基本的処理は四則演算

ディープラーニングは一体何をしているのでしょう。これを理解するために今次のような簡単なニューラルネットワークがあるとします。


ここで計算がどのように行われてゆくかを下記に示します。


最後の出力層では以下のようになります。


隠れ層のノードに対して左から右に向かって計算をしてゆきますが、基本的に掛け算と足し算というような単純な計算の繰り返しになります。左側からデータを入れて 出力計算をしますが、教師あり学習の場合、出力結果つまり答えがどれになるのかがわかっていますから、その答えになるようにw11などの重み係数を調整してゆくわけです。

上図の場合、例えば答えがy1が正解でy2は不正解とすると、最終的に得られるy1=1、y2=0になるように、w11、w21など途中段階の係数を微調整してゆく というイメージです。その微調整をどう行うのか というところが、ディープラーニング発展の歴史の中で考え出されてきたさまざまな工夫ということになります。バックプロパゲーションがその代表ですね。

<<異常検知

時系列分析>>