最开始计算卷积的过程中,需要进行翻转卷积核的操作。

引入的互相关,用滑动窗口的点积计算来实现,可以省去翻转的步骤,这是因为使用点积运算是为了进行特征提取,而卷积核是否翻转与其特征抽取的能力并无关系。

CNN特点

CNN的特点可以概括为:局部连接、权重共享。

1. 局部连接

如果使用全连接,参数个数为Mlxl1M_l * x_{l-1},如果变成局部连接,参数个数为MlKM_l * K,其中K为卷积核的大小。可以有效减少参数的个数。

2. 权重共享

作为卷积核wlw^l对第ll层的所有神经元相同,可以理解为一个卷积核只捕捉输入数据的一种特定局部特征。因此,如果需要对多特征进行提取,则需要多个卷积核。

因此,在第ll层中,需要参数的个数为K+1K+1,参数个数与神经元的数量是无关的。

3D卷积核

卷积核厚度等于1时为2D卷积,对应平面点相乘然后把结果加起来,相当于点积运算;

卷积核厚度大于1时为3D卷积,每片分别平面点求卷积,然后把每片结果加起来,作为3D卷积结果;

1x1卷积属于3D卷积的一个特例,有厚度无面积, 直接把每片单个点乘以权重再相加。

归纳之,卷积的意思就是把一个区域,不管是一维线段,二维方阵,还是三维长方块,全部按照卷积核的维度形状,对应逐点相乘再求和,浓缩成一个标量值也就是降到零维度,作为下一层的一个feature map的一个点的值

可以比喻一群渔夫坐一个渔船撒网打鱼,鱼塘是多层水域,每层鱼儿不同。
船每次移位一个stride到一个地方,每个渔夫撒一网,得到收获,然后换一个距离stride再撒,如此重复直到遍历鱼塘。

A渔夫盯着鱼的品种,遍历鱼塘后该渔夫描绘了鱼塘的鱼品种分布;

B渔夫盯着鱼的重量,遍历鱼塘后该渔夫描绘了鱼塘的鱼重量分布;

还有N-2个渔夫,各自兴趣各干各的;

最后得到N个特征图,描述了鱼塘的一切!

由上图可知,输入层和滤波器有着相同的深度,即输入层的通道数量与滤波器中卷积核数量相同。在每个滑动位置,执行乘法和加法运算得到一个运算结果(单个数字),因此最后得到的输出层仅含一个输出通道。

img

进一步地,我们就能非常轻易地理解如何在不同深度的层(Layer)进行转换。假设输入层有[公式]个通道,而输出层需要得到[公式]个通道。只需要将[公式]个过滤器对输入层进行处理,而每一个过滤器有[公式]个卷积核。每个过滤器提供一个输出通道。完成该过程,将得到[公式]个通道组成输出层。