Machine Learning-Andrew Ng 课程第五周——Back Propagation

这周的编程作业真的麻烦…因为涉及的矩阵比较多,每个矩阵的尺寸又不尽相同,光是把每个公式的运算问题改过来都用了不少时间,而且反向传播的过程又不是很直观,整个过程就用了很长时间。刚刚把作业提交上去,因为中间改的东西忘了不少,现在就把能记得的一些要点提出来,之后想到了再补充。

1. 关于 δ ( l ) \delta^{(l)} δ(l)的一些问题

在反向传播中很重要的一点就是 δ ( l ) \delta^{(l)} δ(l)了,从输出层开始计算,一层层传回去,直到 δ ( 2 ) \delta^{(2)} δ(2)(第一层的误差不计算)。在这里每个 δ ( l ) \delta^{(l)} δ(l)的矩阵尺寸都是很重要的:
δ ( L ) = a ( L ) − y \delta^{(L)} = a^{(L)} - y δ(L)=a(L)y
δ ( l ) = ( Θ ( l ) ) T ∗ δ ( l + 1 ) . ∗ a ( l ) . ∗ ( 1 − a ( l ) ) ( l &lt; L ) \delta^{(l)} = (\Theta^{(l)})^T*\delta^{(l+1)}.*a^{(l)}.*(1-a^{(l)}) \qquad(l&lt;L) δ(l)=(Θ(l))Tδ(l+1).a(l).(1a(l))(l<L)
其中 L L L为层数, δ ( L ) \delta^{(L)} δ(L)意为最后一层的误差。
根据以上 δ ( l ) \delta^{(l)} δ(l)的计算公式,可以得出 l &lt; L l&lt;L l<L的情况下, δ ( l ) \delta^{(l)} δ(l)的尺寸为: ( S l + 1 ) × 1 (S_{l}+1) \times 1 (Sl+1)×1。( S j S_{j} Sj是第 j j j层的神经元个数,不包括bias项)

又,根据公式 Δ ( l ) = Δ ( l ) + δ ( l + 1 ) ( a ( l ) ) T \Delta^{(l)} = \Delta^{(l)}+ \delta^{(l+1)}(a^{(l)})^T Δ(l)=Δ(l)+δ(l+1)(a(l))T,可以看出 δ ( l + 1 ) ( a ( l ) ) T \delta^{(l+1)}(a^{(l)})^T δ(l+1)(a(l))T是和 Δ ( l ) \Delta^{(l)} Δ(l)同尺寸的,而 Δ ( l ) \Delta^{(l)} Δ(l)又和 Θ ( l ) \Theta^{(l)} Θ(l)是同尺寸的,都是 S ( l + 1 ) × ( S l + 1 ) S_{(l+1)} \times (S_{l}+1) S(l+1)×(Sl+1),这就说明这里的 δ ( l ) \delta^{(l)} δ(l) S ( l + 1 ) × 1 S_{(l+1)} \times 1 S(l+1)×1的,然而我们上面才得到——

δ ( l ) \delta^{(l)} δ(l)的尺寸为: ( S l + 1 ) × 1 (S_{l}+1) \times 1 (Sl+1)×1

所以,用来运算 Δ ( l ) \Delta^{(l)} Δ(l) δ ( l ) \delta^{(l)} δ(l)是要去掉一项的,即 δ 0 l \delta^{l}_0 δ0l
MATLAB代码实现就是:
delta_l = delta_l(2:end)

这个问题真的一直没有发现…还是看作业附带的材料才发现的,这个问题上课时并没有说,只是一个很细微的问题,但是很要命…所以以后一定要先仔细过一遍给的材料啊!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值