反向传播算法

吴恩达神经网络课程里,反向传播算法最难理解的是反向传播阶段怎样调整各层次的权值,费用函数的双层求和符号令人无限头大,于是费用函数的偏导数就更难证明。而课程此处略去一万字,最开始自己被搅得一头雾水,不明白为什么每一层的误差是这个值。直到读了反向传播推导超简版一文才豁然开朗。

这里写下自己理解的思路:

1. 如何调整最后一层参数?

既然是反向传播,说明对于参数的调整是从最后一层开始的,根据梯度下降算法:

问题在于如何计算。对于最后一层的某一个假设来说,神经网络会变化为如下的形状:


由于只有一个输出,最后一层神经网络退化为logistic模型,那么费用函数会退化为:

即:

根据链式法则得到:

由以上四式可得:

这里,课程中的被叫做偏差量,其实理解为为了求梯度下降的偏导数而引入的中间变量更为妥当。

于是最后一层输出层的值被定义为

是因为每一层都可以推导类似的关系

2. 反向传播的推导

对于中,是系数矩阵,因此要求梯度,只需要求出即可。直接从费用函数求解太复杂,于是从和的关系入手:

于是,

定义可得:

这样就可以依次求解梯度下降的梯度向量

你可能感兴趣的:(反向传播算法)