前言:反向传播算法是用来求偏导数的,即σθij(2)σJ(θ),有了这个偏导数,就可以使用梯度下降算法或其他高级算法得出θ
1.误差 δ(3), δ(2)的推导
反向传播算法中误差的计算过程:

首先,这里没有使用线性回归中的平方差来计算,而是直接定义了δ(4)=a(4)−y,即预测值减去实际值
接下来我们看一下δ(3)的推导过程:

1.代价函数(这里我们考虑最简单的情况,k=1,并且只考虑一个训练样本(x(i), y(i))):
cost(i)=−y(i)∗log(h(x(i)))−(1−y(i))log(1−h(x(i)))
2.误差计算公式:δj(l)=σzj(l)σcost(i).
这里的误差计算公式为什么和δ(4)不一样呢?我们先看一下等式右边的偏导数等于多少。

【说明:上图中的y(i)是实数而不是向量,因为我们这里暂时只考虑了k=1的情况。】
可以看到和δ(4)的定义是一样的。网上也看到其他说法:????是代价函数关于所计算出的中间项 z 的偏导数,它所衡量的是:为了影响这些中间值,我们所需要改变神经网络中的权重的程度。
3.δ(3),δ(2)的推导

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

Δij(l)的推导过程:
