ニューラルネットワーク

ニューラルネットワーク(Neural Network)による入力値の分類の仕組みについて見ていく。


参照 https://hinaser.github.io/Machine-Learning/ TensorFlow Playgroundの仕組み

入力層だけで分類


X1とX2の2つの値のペアが +(青) と ー(橙) に 分類 されている

tensorflow playground

X1 を 横方向 と X2 を 縦方向 の XY座標とする

+の点 と ーの点 を X1 X2 で表現することを考える


学習開始前

学習終了後


X1とX2が両方 + なら +

X1とX2が両方  なら 

学習前


X1^2 横方向両端が+ 中央は 0

X2^2 方向両端が+ 中央は 0

tensorflow playground

学習後


X1^2 と X2^2 の両方が 0 なら +

X1^2 と X2^2 の両方が  なら 

+ と ー の領域がそれぞれ2か所に分かれている場合、うまく分類できない。

一部分だけしか分類できない。

tensorflow playground

入力層と出力層で分類

出力層を追加して、入力層の合成パターンを複数用意して分類する

tensorflow playground

うまく分類できた場合

分類に失敗した場合

出力層のニューロンを増加すると複雑なパターンに対応できる

tensorflow playground

入力層を2つにして、XY座標だけを入力として与える。

学習前の段階でヒントを出さない。(入力の特徴として中央と端に着目するのを止める)

ニューラルネットワークが学習の過程で見つけた特徴だけを使って分類する。

tensorflow playground

多数の直線を組み合わせて分類しようとしてもうまくいかない

入力層 隠れ層 出力層で分類

隠れ層(中間層)を追加する。

直線でパターンを作成して、さらにそのパターンを組み合わせて分類に利用できるようになる。

tensorflow playground

3019エポック(学習回数)の結果

中間層を多層化する。

これが、深層学習、ディープラーニング、ディープニューラルネットワーク、DNNと呼ばれる仕組み。

以下の様な学習済みのDNNを「モデル」という。

tensorflow playground

1890エポック