文章目录
- 一、直接卷积运算的缺点
- 二、Padding
- 三、两种卷积方式
- 四、卷积步长Stride
- 五、互相关(cross-correlation)和卷积(convolution)的技术说明
一、直接卷积运算的缺点
如果图像是,过滤器是
,那么卷积运算的结果是
- 随着一次次卷积运算的进行,图像会越来越小,如果神经网络深度很大,图像可能变得特别特别小。
- 覆盖边缘和角落像素点的过滤器远远比中间像素点少,导致丢失图像边缘位置的信息。
二、Padding
在原图像的四周填充一层像素点(习惯填充0),使得,通过
过滤器的卷积后得到
结果,故图像尺寸没有改变。
一般地,设填充数量为,在上面这个例子中,周围填充一层,所以
最终卷积结果为:
三、两种卷积方式
- Valid 卷积不填充
- Same 卷积后保存大小不变
卷积神经网络中,过滤器的通常是奇数(odd)大小的,例如
。为什么会有这样一个结论呢?主要的原因如下:
- 如果
是偶数,计算
不会是整数,所以需要非对称填充。
- 如果
是奇数,过滤器存在一个中心像素点,便于指出过滤器的位置。
四、卷积步长Stride
在前面的基础上,设步长stride为,在上图的例子中
一般地,
如果除以步长那里不能取整怎么办?通常做法是【向下取整】,即:
向下取整的意义很简单,如果过滤器移动时超出了图像范围,那就不要做这一步卷积操作。
五、互相关(cross-correlation)和卷积(convolution)的技术说明
说这个问题之前,先说明什么是卷积:
- 官方定义:通过两个函数f和g生成第三个函数的一种数学算子,表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。
- 卷:翻转
- 积:积分(离散则求和)
- 数学中,卷积的过程归纳为:翻转、移位、相乘、相加
- CNN中,卷积的过程归纳为:移位、相乘、相加
在数学教材中,卷积的定义有一些不同之处,过滤器需要先中心对称(翻转180°),再进行卷积运算。
前面学习的卷积操作实际上是互相关而不是卷积,有同学评论得很形象呀:“没有卷,只有积。”
但是!在深度学习的文献中,我们不需要翻转过滤器,图像和过滤器逐个元素相乘求和的过程称作卷积操作,不需要多纠结这个问题。