吴恩达机器学习——反向传播算法


前言:反向传播算法是用来求偏导数的,即 σ J ( θ ) σ θ i j ( 2 ) \frac{\sigma{J(\theta)}}{\sigma{\theta^{(2)}_{ij}}} σθij(2)σJ(θ),有了这个偏导数,就可以使用梯度下降算法或其他高级算法得出 θ \theta θ

1.误差 δ ( 3 ) \delta^{(3)} δ(3), δ ( 2 ) \delta^{(2)} δ(2)的推导

反向传播算法中误差的计算过程:
在这里插入图片描述
首先,这里没有使用线性回归中的平方差来计算,而是直接定义了 δ ( 4 ) = a ( 4 ) − y , 即预测值减去实际值 \delta^{(4)}=a^{(4)}-y,\text{即预测值减去实际值} δ(4)=a(4)y,即预测值减去实际值

接下来我们看一下 δ ( 3 ) \delta^{(3)} δ(3)的推导过程:
在这里插入图片描述
1.代价函数(这里我们考虑最简单的情况,k=1,并且只考虑一个训练样本( x ( i ) x^{(i)} x(i), y ( i ) y^{(i)} y(i))):
c o s t ( i ) = − y ( i ) ∗ l o g ( h ( x ( i ) ) ) − ( 1 − y ( i ) ) l o g ( 1 − h ( x ( i ) ) ) cost(i)=-y^{(i)}*log(h(x^{(i)}))-(1-y^{(i)})log(1-h(x^{(i)})) cost(i)=y(i)log(h(x(i)))(1y(i))log(1h(x(i)))
2.误差计算公式: δ j ( l ) = σ c o s t ( i ) σ z j ( l ) \delta^{(l)}_{j}=\frac{\sigma{cost(i)}}{\sigma{z^{(l)}_j}} δj(l)=σzj(l)σcost(i).
这里的误差计算公式为什么和 δ ( 4 ) \delta^{(4)} δ(4)不一样呢?我们先看一下等式右边的偏导数等于多少。
在这里插入图片描述
【说明:上图中的 y ( i ) y^{(i)} y(i)是实数而不是向量,因为我们这里暂时只考虑了k=1的情况。】
可以看到和 δ ( 4 ) \delta^{(4)} δ(4)的定义是一样的。网上也看到其他说法:?是代价函数关于所计算出的中间项 z 的偏导数,它所衡量的是:为了影响这些中间值,我们所需要改变神经网络中的权重的程度

3. δ ( 3 ) , δ ( 2 ) \delta^{(3)},\delta^{(2)} δ(3)δ(2)的推导

2.反向传播算法的计算过程

在这里插入图片描述
Δ i j ( l ) \Delta^{(l)}_{ij} Δij(l)的推导过程:
在这里插入图片描述

  • 36
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值