吴恩达EX4

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);

 

posted @ 2020-07-25 15:18  唯有笑东风  阅读(147)  评论(0编辑  收藏  举报