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

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

反向传播算法中误差的计算过程:
吴恩达机器学习——反向传播算法
首先,这里没有使用线性回归中的平方差来计算,而是直接定义了δ(4)=a(4)y,即预测值减去实际值 \delta^{(4)}=a^{(4)}-y,\text{即预测值减去实际值}

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

3.δ(3)δ(2)\delta^{(3)},\delta^{(2)}的推导
吴恩达机器学习——反向传播算法

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

吴恩达机器学习——反向传播算法
Δij(l)\Delta^{(l)}_{ij}的推导过程:
吴恩达机器学习——反向传播算法

相关文章:

  • 2021-05-26
  • 2021-07-09
  • 2021-11-04
  • 2021-10-18
  • 2021-09-08
猜你喜欢
  • 2021-09-08
  • 2021-06-30
  • 2021-05-10
  • 2021-06-14
  • 2021-04-07
  • 2021-04-02
  • 2021-06-17
相关资源
相似解决方案