ex4
該題目主要難點在于實作后向傳播演算法,該演算法步驟如下:
1、針對每個樣本(X(i),Y(i))
令a_1 = X(i), 分別計算出Z_2 、a_2、Z_3、a_3;
Z_i = Theta(i-1)*a(i-1);
a_i = 補充1 + sigmoid(Z_i); 注意補充1!
2、計算 J

注意 將y(i)轉換成y(i) =[0;0;0;....0] 的10*1的列向量,Y為轉換后的矩陣m*n(m :樣本數,n:型別數),此處求和不是之前的矩陣相乘,此外正則化項應當忽略第一列!而是點乘矩陣形式如下:
J = -1/m[sum(sum(Y.*log(h)+(1-Y) .* log(h) ))] + lambda/2/m*(sum(sum(Theta1(:,2:end).^2))+sum(sum(Theta2(:,2:end).^2)))
該等式寫了蠻久沒弄出來,慚愧,,,,
3 、計算 δ Δ
L 層,則有2......L個δ,
δ(L) = h(x(i)) - y(i) 得到該問題的一列向量;
δ(L-1) = θ(:,2:end)T * δ(L) . * sigmoid(Z_L-1)' (')代表導數,此處θ(:,2:end)T 因為要除去δ0(L-1) 用不上δ0(L-1)

Δ (l)= Δ (l)+ δ(l+1) *a_lT
以上步驟帶入m次回圈中;
最后梯度 注意 老師ppt中lambda少除以m了

D(:,1) = Δ(:,1)/m;
D(:,2:end) = Δ(:,2:end)/m; +lambda/m*θ(:,2:end);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/175753.html
標籤:其他
下一篇:深度學習及pytorch基礎
