卷积层是卷积神经网络中非常重要的层,所以这里我们推导一下在卷积层的反向传播算法。
首先我们要思考一下卷积层的一些要素,要素很多包括权值、偏差等,但是我们只考虑权值和偏差,因为在训练过程中它们需要不断地更新。
接下来我们分成三个部分完成推导:损失对权值的梯度、损失对偏差的梯度和无法的传播。
首先我们先介绍一下卷积层正向传播对于l层有:
这里x表示激活层的输出,(i, j)代表输出的索引;f代表激活函数;p和q代表卷积核的索引;k代表权值;b代表偏差;l代表层;u代表l层的输出;
1、对于权值的梯度:
这里有累加号是因为权值与输出每一个量都有关系,由于误差可以定为损失对输出的梯度
所以
最后一个式子如果不明白的话,可以自己举个例子。
2、对于偏差的梯度:
3、对于误差传播,如何从本层传递到前一层:
这里你就要对第二式中右边第一项进行分解,下边一项为l层的输入,可以得到下式:
最后你可以得到下式
这里要记住l层的误差要延展卷积核大小-1的单位,第二项代表将K绕着中心点旋转180度。如果你想更好的理解,最好自己用个例子试一下。