暇人日記

アラフォーおっさんのコーセラの機械学習の課題を解こうと頑張っています!

Coursera Machine Learning Week5 課題 2周目⑥ Regularized

 

今回はRegularized↓に取り組みます!

 

f:id:omoshiroamericanews:20200424213036p:plain

 

前回まとめた相関図ではCostFunctionのVideoだけが参考になっているはずです。

 

f:id:omoshiroamericanews:20200424213349p:plain

 

Regularizedが何かといえば↓の式です。

f:id:omoshiroamericanews:20200424213721p:plain

この式がプログラミングできれば終了です。

 

Coursera Machine Learning Week5 課題 2周目① Cost Function VIDEO振返り - 暇人日記

前回の日記を書いたときに↓が問題でイメージできれば

解けるんじゃないかと思いました。

 

f:id:omoshiroamericanews:20200424214107p:plain

 

それでは問題文を読んでみます。

f:id:omoshiroamericanews:20200424214250p:plain

重要ポイントはlambda=1だったらJが0.383770になるということです。

0.383770をターゲットにします。

 

もう1つは赤丸で囲った部分です。

f:id:omoshiroamericanews:20200424213721p:plain

の一般式と違います。

θが2つあるのはLayerのLを分けているからだと思います。

一般式

f:id:omoshiroamericanews:20200424213721p:plain

では一番左のΣでLayerも1つの式にしていましたが、

f:id:omoshiroamericanews:20200424214702p:plain

 

問題文はLayerを分けていると思います。

なのでθは2つあって、ΣでLがついているものがないと思います。

 

f:id:omoshiroamericanews:20200424214702p:plain

↑の方がイメージしやすいので、こちらで考えてみます。

 

まずTheta1とTheta2の確認です。

絵としては↓の場所にあります。

f:id:omoshiroamericanews:20200418231010p:plain

サイズはOctaveでもこの表↑のとおり、と思ったら

縦横が逆ですね。

 

f:id:omoshiroamericanews:20200424222630p:plain

f:id:omoshiroamericanews:20200424222648p:plain

 

今回削除しなくてはいけないのは

Theta1では401のうちの1つ、Theta2では26のうちの1つです。

なぜならBiasを足していて400-->401、25-->26と予測の精度を向上させるためだけに実在しない行を足しているからです。

 

Theta2で考えてみます。

Theta2の形を絵にすると↓になります。

f:id:omoshiroamericanews:20200424223637p:plain

 

そして26のうち1行目がいりません。

削ると10X25のサイズになります↓

 

f:id:omoshiroamericanews:20200424224041p:plain

 

サイズが10X25になったので、θは合計250個

もともと問題に示されていた式↓のTheta2も10X25で250個なので、

f:id:omoshiroamericanews:20200424224126p:plain

これを要素ごとに2乗すればいいことになります。

 

10X26から1行目を削って10X25にする方法について

小実験してみます。

 

f:id:omoshiroamericanews:20200424224417p:plain

f:id:omoshiroamericanews:20200424224435p:plain


(:,2:end)を利用すれば1行目だけを削除できることがわかりました。

 

要素ごとに2乗して↓

f:id:omoshiroamericanews:20200424224647p:plain

合計を足して↓

f:id:omoshiroamericanews:20200424224727p:plain

完成ですね。

 

これをTheta1とTheta2でやったらJが0.383770になりました!

 

今回はここまでです。次回はBackpropagationに取り組みます!