今回はRegularized Gradientに取り組みます↓
今、全体の流れのどこをやっているか分からなくなったので振り返ることにします。
前回の日記で全体の構造を下のようにまとめました。
問題文的にはに取り組んでいます。
かなり終着に近づいてきました。
問題文/VIDEOで取り扱いがあって日記で掘り下げていないのは
の2つです。
特にGradinent Checkingの理論はWeek2/3の課題でも使えるはずなので
掘り下げてやってみたいと思います。
もう1歩引いた立場で考えると、
機械学習の黄金パターンは
①予測式-->②Cost Function-->③Gradient-->④最適θ-->⑤予測でした。
Neural Networkでは
①予測式にFeedForwardを使っていて、③GradientにBackpropagationを使っている
ということがわかりました。
②Cost Functionで『J』、③Gradientで『grad』がわかれば
fmincgに放り込めば最適θが計算されます。
そして最適θがあれば予測値が出ます。
Regularized Gradientは③Gradientの最終段階ですね。
もーすぐ最適θが出て予測値が出ます。
ということで今全体のどこを取り組んでいるのが分かったのでRegularized Gradientに取り組みます。
まずVideoで振り返った内容の確認です。
Coursera Machine Learning Week5 2周目⑦ Backpropagation Video振り返り - 暇人日記
赤丸がRegularized Gradientの部分ですね。
赤丸を拡大します↓
私の苦手な場合分けです。
違いはがあるかないかです。
jが0だったら不要で、jが1以上なら必要です。
概念的にはjが0はBias unit用のθなのでRegularizedでCost FunctionJを計算する時に
入らない方がふさわしいということでした。
ところでθのl,i,jって何を意味したのか忘れたので前回の日記を振り返ります。
jは緑なのでj=0はθのレイヤー最上部にあるBias Unit用のθのこととわかりました。
最上部のθについてはλをかけなくていいいよ、ということだと理解しました。
問題文を読んでみます。
問題文にも同じことが書いています。
j=0のΔはが不要ということです。
j=0のときのΔとは何でしょうか?ということが問いになります。
Δは5000パターンの合計のgradを5000で割ったものでした。
ふっと思いつきました
Theta1は25x401でTheta1_grad=Δは25X401でした
Theta2は10X26、Theta2_grad=Δは10X26でした。
Theta2、Theta2_grad=Δで考えると、形が↓です。
この一番左の行の1X10がBias Unit用のθです。
というのは1X25でa(2)になりそうなところに
Bias Unitを足して1X26がa(2)になっているから
Theta2は26X10になっています。
その25-->26に1行増えた分に対応しているTheta2が
一番左の段だからです。
プログラミング的には
として、A=Theta2_grad . *maskBとすれば
λ X A でTheta2_gradのBias Unitの箇所にλがかからないようにできます。
プログラム全体ex4.mを読んだところ、
もし正解なら0.576051のcostが出るそうです。
やってみました
なりました!正解です!
次回はCheckGradientNNに取り組みます!