ついにNeural Networkの課題にたどり着きました!
①ビデオの振り返り
②問題文を読む
③プログラム全体ex3_nnを読む
④プログラム詳細predict.mを読む
の順にやっていきたいと思います。
①まずビデオの振り返りです。
(出典;『Coursera Machine Learning』 By Mr. Andrew Ng)
Input Layer --> Hidden Layer --> Output Layerというように階層を設けて
各階層/要素ごとにこれまでの課題でやったような予測値ーyの誤差を最小にするものを
計算していくイメージと理解しました。
Output Layerは何を判断させたいかで自分で選んでいいんだと思って、
ビデオを見てました。
例えば画像がネコか犬かその他に分けてNeural Networkに解答させたいとなれば
OutputLayerを3つに分けておけばいいと思ったのを覚えています。
今回の課題では0-9の10個に分けたいということだと思います。
Input Layerは最初の情報入力なのでこれも自分で選べると思いました。
例えば400の画像を入力するとなるとInput Layerは400なのかなと。
今回の課題では5000のデータがInput Layerになります。
HiddenLayerは自分で選んでいいですけど、経験がないと
Hidden Layerを何行何列用意するのかが難しいなとビデオを見たときに
思いました。
振り返りはここまでにして
次は問題文を読んでいきます。
(出典;『Coursera Machine Learning』 By Mr. Andrew Ng)
前回の日記で行ったoneVSAllのこと=multi-class logistic regressionと
紹介され、より複雑な仮説に対してはmulti-class logistic regressionは
対応できないと説明されています。
あくまで直線だから、という理由ですがここまで言われると
one VS allの94.9%以上の精度が出るかどうかが気になります。
今回の課題では前回の課題と同じく0-9の手書きの数字を認識する課題を行うが、
今回はNeural Networkで行うとあります。
そして適正パラメーターは既に計算されてあるとあります。
今回はfeedforward propagationを使って、Week5でbackpropagationで
行うと説明されてあります。
backpropagationはWeek5でビデオがあるので飛ばしますが、
feedforward propagationとbackpropagationがセットの概念で
①Ove VS all
②Neural Network feedfoward propagation
③Neural Network backpropagation
の3パターンで今回の5000の0-9の手書き数字認識課題を
やるのかなと思いました。
(出典;『Coursera Machine Learning』 By Mr. Andrew Ng)
文にある通り図がInput Layer/Hidden Layer/Output Layerの3つに
分かれています。
Output Layerは0-9の10個なので10種類に分類したいということになります。
Input Layerは1つの手書きデータは20X20の400になると書いてあります。
Hidden Layerは25と書いてあります。
Theta1が25X401,Theta2は26X10と書いてあります。
図にすると↓だと思います。
1つのデータについて↑で、今回は5000のデータがあるので、
↓になるはずです。
一番最後の5000X10はOne VS Allで行ったPredictionと
同じベクトルの形です。
この構造までわかると解ける気がします!
また次回頑張ります!