Video振り返り/問題文読み込みをしたので、
今回はBackpropagationの課題にいよいよ取り組みます。
解き方の順番は詳細にVideoにも問題文にもありました↓
この順番に解いていけばいいはずです。
今回はループ無しで解きます。
ヒントはループ有りが推奨でしたが私にはループ有りの方が難しいので、
今回はループ無しで解いて、次回ループ有りで解いてみます。
ということで順に解いていきます。
ここはCostFunctionの時に実行しているので飛ばします。
a3がoutput Layerになりますね。
問題文ではとあります。
この違いは問題文はループを推奨しているからだと思います。
δ(3)=a(3)-y(t)になりますが、
tはループに関係しているので、ループ無しで解くときは無視でいいと思います。
そうするとこれはoutput layer(=a3)と実Sampleのyとの比較です。
Coursera Machine Learning Week5 課題 2周目⑤ Costfunction ループ無し - 暇人日記
絵としては↓のイメージになります。
実Sampleは5000X1から5000X10へ増加させていて、
output Layer(=a3)も5000X10なので、そのまま引き算できます。
問題文にはとあります。
の部分を先に考えます。
θ(2)は10X26です。δ(3)は5000X10です。
なのでこの部分を次元が合うようにδ(3) X θ(2)と考えると
5000X10 X 10X26 で5000X26になります。
は
の中に
z(2)を代入すればいいはずです。
z2は5000X25なので
が次元が合わなくてエラーになりました。
Videoを振り返ってδの1つ目は不要であることを思い出しました。
δの1行目を削るのには方法があると思います。
1つ目はThetaをそもそも1行目削除する。
θ2は10X26ですが、1行目削れば10X25になります↓
そうすると5000X10 X 10X25 でδ(2)は5000X25になります。
実行は↓を参考にしました!
δ(2)もできました!
ここは前回の日記に書いた通り、
**************************************************************************
**************************************************************************
右の赤枠で考えます。
そしてのはずです。
次元から考えてみます。
Theta1_grad = zeros(size(Theta1))
Theta2_grad = zeros(size(Theta2))
最大のヒントは↑だと思います。
Theta1は25X401なのでTheta1_gradも25X401です。
Theta2は10X26なのでTheta2_gradも10X26です。
δ(3)は5000X10
δ(2)は5000X25
となっています。
まずTheta1_gradを考えます、25X401が正解です。
はTheta1_grad=δ(2) X a(1)'となります。
δ(2)は5000X25
a(1)は5000X401
Theta1_gradは25X401
なので、転置すると次元が合います。
次にTheta2_gradを考えます、10X26が正解です。
Theta2_grad=δ(3) X a(2)となります
δ(3)は5000X10
a(2)は5000X26
Theta2_gradは10X26
なので、転置すると次元が合います。
これでStep5が完了です。
最後の↑のStepはm=5000で割ればいいです。
式が2つに分かれてますが、それはRegularizedに関するので
ここでは飛ばします。
これでSubmitして正解でした!
Step通りには解けましたがやはり中身が理解できていないです。
次回はループありでの解き方に挑戦して中身ももう少し理解できらたいいな
と思います!