版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/diyoosjtu/article/details/89843359
我们用一个例子来说明:
令
x∗w=y
并且
x=⎣⎡x11x21x31x12x22x32x13x23x33⎦⎤,w=[w11w21w12w22],y=[y11y21y12y22]
则
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧y11=w11x11+w12x12+w21x21+w22x22y12=w11x12+w12x13+w21x22+w22x23y21=w11x21+w12x22+w21x31+w22x32y22=w11x22+w12x23+w21x32+w22x33
梯度
∂x∂L=∂y∂L∂x∂y=⎣⎡δ11w11δ11w21+δ21w11δ21w21δ11w12+δ12w11δ11w22+δ12w21+δ21w12+δ22w11δ21w22+δ22w21δ12w12δ12w22+δ22w12δ22w22⎦⎤
其计算过程如下图所示(其中不同颜色块对应位置的值相加):
另外,可以用卷积的形式计算
x的梯度:
∂x∂L=⎝⎜⎜⎛00000δ11δ2100δ12δ2200000⎠⎟⎟⎞∗(w22w12w21w11)
此时卷积核
w需要旋转180度,也即上下翻转一次,然后左右翻转一次。输入矩阵需要增加padding。
设正向卷积的padding为
p,反向卷积的padding为
p′,则需要增加的padding为:
p′=k−p−1
其中
k是卷积核的大小,另外假设正向卷积的stride为1。