Neural Network Console 05(過学習 Training,Validation,Evaluation-1)

2018-03-21

AI Neural_Network_Console

Neural Network Console 01(インストールとサンプル実行)
Neural Network Console 02(GPU設定、効果)
Neural Network Console 03(自前データ)
Neural Network Console 04(繰り返し回数と学習結果 Max Epoch ) の続き

04で学習の繰り返しが多いほど精度があがり、ほとんど完璧な推定ができると思ったところで、実は個別最適になっているだけではないかという疑問が浮かんだ。
*私は今回初めてニューラルネットワークに触れている初心者なので、以下間違えている可能性があります。初心者が考えたこととご理解ください。

参考情報
  1. Neural network consoleを触ってみよう① 画像の犬猫分類までやってみる
  2. support.dl.sony.com > FAQ > FAQ:評価実行時
もう一度、ネットワーク構造を振り返ってみる(理解してないけど)。
各要素の間を広げて、間にその接続の個数を追記した。最後の出力の直前まで、元データの30個より大きい個数(100以上)の接続がある。ということは、入力から出力まで各データ毎に専用線をひけるという事になる(最後のSquaredErrorは答えの誤差計算しているだけなので無関係)。
極端な事を考えると、元データのある1画素のある色(例えば、画像中心の画素の緑)が、30個すべて値が違っていたとしたら(256段階あるのだから、必ずそういう画素は存在する)、そのデータだけを使って正解を導ける線(各結合が30本のみ重みを持ち、残りは0)を描けることになる。
その場合、元データ以外の画像がくると、正解とは全く関係ない値を出力することになる。

この仮説を検証するために、Affine1層だけのシンプルなネットワーク構造でどうなるか試してみた。専用線ができるなら、複雑な構造がなくても、いい結果(個別最適)がでるはず。なおAffineは、添付PDFのマニュアルによると
「全ての入力値から、OutShape プロパティで指定する全ての出力ニューロンへの結合を持つ全結合層です。 o = Wi+b」。これこそニューラルネットワークという感じのもの。
Max Epoch 100と200でTraining実行
元の構造より回数はかかるが、かなりいい感じ。ということは、恐らく本当の学習としては悪い感じ。

長くなったので、回を改める

Neural Network Console 05(過学習 Training,Validation,Evaluation-2)[未記載] に続く