图像处理里的卷积实际上是数学上的互相关,而数学上的卷积是是卷积核旋转180后的互相关
数学上的互相关,即深度学习里的卷积:
数学上的卷积
前向传播
设
al−1
为
l−1
层输出,
wl
为
l
层权重,这里符号
∗
,代表深度学习里的卷积,数学上的互相关
zl=al−1∗Wl
⎡⎣⎢⎢⎢al−111a21l−1al−131al−112al−122al−132al−113al−123al−133⎤⎦⎥⎥⎥∗[wl11wl21wl12wl22]=[zl11zl21zl12zl22]
下面为书写简便不再标注层数,默认a为
l−1层
,w为l层
那么按
stride=1
,有:
zi,j=(∑m=02∑n=02a(i,j)⋅w(i+m,j+n))+b
即:
z11=a11w11+a12w12+a21w21+a22w22+bz12=a12w11+a13w12+a22w21+a23w22+bz21=a21w11+a22w12+a31w21+a32w22+bz22=a22w11+a23w12+a32w21+a33w22+b
反向传播
设本层敏感度图:
δ=[δ11δ21δ12δ22]
那么上一层敏感度图:
δl−1=∂C∂zl−1=∂C∂al−1∂al−1∂zl−1
而
∇ai,j=∂C∂al−1(i,j)=∑m,nm=2,n=2∂C∂zl(m,n)∂zl(m,n)al−1(i,j)=∑m,nm=2,n=2δl(m,n)∂zl(m,n)al−1(i,j)
即:
∇a11=δ11w11∇a12=δ11w12+δ12w12∇a13=δ12w12∇a21=δ11w21+δ21w11∇a22=δ11w22+δ12w21+δ21w12+δ22w11∇a23=δ12w22+δ22w12∇a31=δ21w21∇a32=δ21w22+δ22w21∇a33=δ22w22
这里实际上可以,把第l层的敏感度图周围填充一圈0,再将卷积核翻转
180o
,对两者进行互相关操作,便得到
∇a
,如下图所示:
∇a=⎡⎣⎢⎢∇a11∇a21∇a31∇a12∇a22∇a32∇a13∇a23∇a33⎤⎦⎥⎥=⎡⎣⎢⎢⎢⎢00000δ11δ2100δ12δ2200000⎤⎦⎥⎥⎥⎥∗[w22w12w21w11]=δl∗rot180(wl)
所以上一层敏感度图:
δl−1=∂C∂zl−1=∇a∂al−1∂zl−1=δl∗rot180(wl)⨀σ(zl−1)
求权重W的梯度
∂C∂wli,j=∑m,nm=2,n=2(∂C∂zlm,n∂zlm,nwli,j)
即:
∇w11=δ11a11+δ12a12+δ21a21+δ22a22∇w12=δ11a12+δ12a13+δ21a22+δ22a23∇w21=δ11a21+δ12a22+δ21a31+δ22a32∇w22=δ11a22+δ12a23+δ21a32+δ22a33
等价于:
∇w=⎡⎣⎢⎢a11a21a31a12a22a32a13a23a33⎤⎦⎥⎥∗[δ11δ21δ12δ22]=al−1∗δl
求偏差b的梯度
∂C∂bl=∑m,nm=2,n=2(∂C∂zlm,n∂zlm,nbl)=∑m,nm=2,n=2∂C∂zlm,n=∑m,nm=2,n=2δlm,n
主要参考:
http://www.cnblogs.com/pinard/p/6494810.html
https://www.zybuluo.com/hanbingtao/note/485480