Edited at

今さら聞けないニューラルネットワークのこと


はじめに

「ニューラルネットワーク=ディープラーニング(深層学習)」のような会話を耳にすることが多くなってきたので、本当にそうなの?ということで、ニューラルネットワークは機械学習なのだと説明できるよう頭を整理するために記事にしてみました。

後で記事を修正するかもしれませんが、とりあえず文字だけです...(^_^;)


ニューラルネットワークを構成するもの


パーセプトロン

複数の入力に対して1つの答えを持つもの。

以下のような排他的論理和の入力(X1、X2)と出力(Y)を考えてみます。

X1
X2
Y

0
0
0

1
0
1

0
1
1

1
1
0

ここでは、

f(X1, X2) = Y

となるf(X1, X2)を求めるわけです。

f(X1, X2) = (w1 \times X1 + b1) + (w2 \times X2 + b2) = Y

このとき、w1、w2、b1、b2を手で計算して求めるのはとても大変ですが、入力を繰り返し与えることでコンピュータが学習をし、w1、w2、b1、b2を調整しながら正確にYを求めることができるようになります。


活性化関数

前述のパラメータw1、w2、b1、b2は直線的な対応しかできないので、これをより複雑な学習ができるように様々な傾きを作り出すための仕組みです。

代表的なものに、シグモイド関数、ソフトマックス関数、ガウス関数、ReLUがあります。


マルチレイヤーパーセプトロン

上記のようなパラメータの数では複雑なものの学習をしきれないので、パーセプトロンを複数積み重ねて複雑な学習を可能にしたのがマルチレイヤーパーセプトロンです。


バックプロパゲーション

日本語では誤差逆伝播法(ごさぎゃくでんぱほう)と言い、上記のパラメータ調整をより効率よくする仕組みがあります。

学習した結果の予測値と実際の値を比較し、どのパラメータが誤差を生み出す原因になっているかを後ろから補正する処理のことです。

これにより、とても効率的に学習ができるようになったとのことです。


深層ニューラルネットワーク

通常、ニューラルネットワークでは4層以上になると学習の効果が薄れ、あまり精度向上につながらないと言われていたようです。

古くからの研究者に「4層以上のニューラルネットワークで学習するのはどうかと思います」というような発言があるのはこのためだそうです。


深層学習

上記のニューラルネットワークの結合方法を色々と工夫しながら4層以上のニューラルネットワークでも学習ができるようにして、高精度な予測を可能にしたのが深層学習とのことです。


まとめ

ということで、僕の理解は以下のとおりです。


  • 3層以下のニューラルネットワークは機械学習

  • 4層以上のニューラルネットワークの中には深層学習と呼ばれるものもある

ま、間違っているかもしれないので、よくご存知の方がおられましたらコメントなどでご教示頂けると喜びます。