吴恩达神经网络课程里,反向传播算法最难理解的是反向传播阶段怎样调整各层次的权值,费用函数的双层求和符号令人无限头大,于是费用函数的偏导数就更难证明。而课程此处略去一万字,最开始自己被搅得一头雾水,不明白为什么每一层的误差是这个值。直到读了反向传播推导超简版一文才豁然开朗。
这里写下自己理解的思路:
1. 如何调整最后一层参数?
既然是反向传播,说明对于参数的调整是从最后一层开始的,根据梯度下降算法:
问题在于如何计算。对于最后一层的某一个假设来说,神经网络会变化为如下的形状:
由于只有一个输出,最后一层神经网络退化为logistic模型,那么费用函数会退化为:
即:
而
根据链式法则得到:
由以上四式可得:
这里,课程中的被叫做偏差量,其实理解为为了求梯度下降的偏导数而引入的中间变量更为妥当。
于是最后一层输出层的值被定义为
是因为每一层都可以推导类似的关系
2. 反向传播的推导
对于中,是系数矩阵,因此要求梯度,只需要求出即可。直接从费用函数求解太复杂,于是从和的关系入手:
于是,
定义可得:
这样就可以依次求解梯度下降的梯度向量
网友评论