《卷积网络》卷积神经网络基础

边缘检测例子

《卷积网络》卷积神经网络基础

填充Padding

  • Valid Padding
    p=0,output=1+nfs
  • Same Padding
    保持卷积输出和输入维度相同,
    1+nf+2ps=n
    p=(n1)sn+f2

卷积步长Stride

每次卷积核卷积操作后平移的维度。
nf+2ps+1
当s=1,f=3,p=1或s=1,f=5,p=2时,卷积前后尺寸不变。

三维上的卷积

《卷积网络》卷积神经网络基础
设输入维度nndepth,卷积核个数为nc(即为输出通道数量),则卷积核维度depthffnc
共有nc个卷积核,每个卷积核对上一层depth个feature map进行卷积操作。
则输出维度(nf+1)(nf+1)nc
每个卷积核的参数量为ffdepth+1

池化层Pooling Layer

池化一般分为MaxPooling和AveragePooling。池化层没有需要学习的参数。
与卷积层不同的是,池化操作是分别对每个切片单独进行计算的。而三维卷积是对所有切片一起计算的。
通常使用Valid Padding,即padding size =0。
设输入维度nndepth,池化层参数ff
则输出维度(nf+1)(nf+1)depth

使用卷积的原因

  • 参数共享
    通常一个特征检测子(如边缘检测)在图像某一部位有用也在其他部位生效。
    同一个卷积核在图像的不同部位保持同一组参数。
  • 稀疏连接
    每一层的输出只依赖于前一层一小部分的输入。

CNN的反向传播

《卷积网络》卷积神经网络基础

池化层的反向传播

《卷积网络》卷积神经网络基础
CNN是全连接特殊形式,所以局部感受野之外的神经元为0,核参数在神经元之间共享。

参考资料

《深度学习》deeplearning.ai