1. DNN反向传播图解
转载自:https://www.cnblogs.com/MatrixPlayer/p/7661232.html
其实反向传播算法从公式上来看,损失C对W的权重有两部分,
1)激活函数Z对W的偏导数 ,此项其实就是前向传播(a当前这个神经元的输入)
2)C对激活函数Z的偏导数,此项就是反向传播。
总结反向传播的计算:
为什么权值矩阵在反向传播是是乘以W的转置?
数学推导部分
正向传播:
反向传播:求梯度
2. 整个神经网络的公式推导
反向传播需要用到链式法则,所以定义一个中间变量:
求单个神经元的梯度
根据链式求导法则,第 层的第 个神经元的梯度为:
因为正向传播时,第层的神经元(共个)会接收第层所有神经元的输出值作为输入,所以反向传播时
第层的每个神经元的梯度都有第层的所有结点的梯度累积求和得到。
第层个神经元的反向传播公式为:
简写成矩阵乘法的形式为:
,其中表示向量的对应元素相乘(点乘)
求权重W的梯度
第层权重矩阵中某个权重 的梯度:
写成矩阵的形式为:
简写为:
对偏置b的梯度
写成矩阵形式:
简写为:
论nn.Conv2d中的反向传播实现过程:https://blog.csdn.net/g11d111/article/details/83021651