卷积网络CNN中各种常见卷积过程

卷积 Convolution

卷积核也称为滤波器filter。滤波器大小为k*k*d,其中d为深度,和输入feature map的channel数相同。每一层的filter数量和输出channel数相同。输入的每个channel和对应深度的卷结核进行卷积,然后加和,组成输出的一个channel。

 
卷积过程
 

对于filter K^{l+1}K_{i,j,k,l}^{l+1}表示i_{th}个卷积核深度为j的位置在kl列的参数。对于输入F_{i,j,k}^l和输出F_{i,j,k}^{l+1}表示i_{th}个channel的jk列的值。则
F_{i,j,k}^{l+1}=\sum_{c,m,n}F_{c,j+m,k+n}^lK^{l+1}_{i,c,m,n}
如果考虑到步长s,则
F_{i,j,k}^{l+1}=\sum_{c,m,n}F_{c,j*s+m,k*s+n}^lK^{l+1}_{i,c,m,n}
参考图像处理常见的卷积核

1x1卷积

顾名思义,1x1卷积的卷结核大小为1x1,这样可以节省很多的参数,可以很方便得调整channel数量。1x1卷积可以增加channel维度的特征学习,但缺少feature map维度的特征学习。


 
1x1卷积
  • 1x1卷积不改变feature map大小,只改变channel数,相比于3x3卷积,1x1计算量更小(算一下,小了多少?3*3c_{in}c_{out}wh => c_{in}c_{out}wh
  • 1x1卷积可以增加非线性

3D卷积

 
3dconv

输入多了时序维度,卷结核相应的也增加了一个维度

反卷积/转置卷积 Transposed Convolutions/ deconvolution

两图流。


 
Transposed Convolutions

 
反卷积
  • 对输入的图每个像素进行卷积操作
  • 按照stride将上述得到的结果排列,如果重叠则进行加和
  • 多个卷积核重复上述操作,得到新的feature map
    out=(in-1)*stride+kernel_size

空洞卷积/扩张卷积 Dilated Convolutions

 
Dilated Convolutions

多了一个扩张率,扩张率为1时就是普通卷积。



作者:昭君姐
链接:https://www.jianshu.com/p/2a0f3a4a9d1d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自www.cnblogs.com/hanhao970620/p/12321597.html