1.2 互相关运算 vs 卷积运算
为了便于说明问题,假设有一个filter和一张image,如下:
-
互相关运算
loop顺序:从左至右、从上至下。
如上图所示,对图像中的蓝色区域进行cross-correlation运算,有:
o u t p u t = a ∗ A + b ∗ B + c ∗ C + d ∗ D + e ∗ E + f ∗ F + g ∗ G + h ∗ H + i ∗ I output = a*A+b*B+c*C+d*D+e*E+f*F+g*G+h*H+i*I output=a∗A+b∗B+c∗C+d∗D+e∗E+f∗F+g∗G+h∗H+i∗I -
卷积运算
loop顺序:从右至左、从下至上。
如上图所示,对图像中的蓝色区域进行convolution运算,有:
o u t p u t = i ∗ A + h ∗ B + g ∗ C + f ∗ D + e ∗ E + d ∗ F + c ∗ G + b ∗ H + a ∗ I output = i*A+h*B+g*C+f*D+e*E+d*F+c*G+b*H+a*I output=i∗A+h∗B+g∗C+f∗D+e∗E+d∗F+c∗G+b∗H+a∗I相当于对filter进行了翻转。
可见,若输入相同且filter相同,互相关运算和卷积运算虽然类似,但输出往往并不相同(存在特例)。
那么,卷积层为何能使用互相关运算替代卷积运算?
原因:在深度学习中,filter是学得的,卷积层无论使用哪种运算,都不影响模型预测时的输出。
为了与大多数深度学习文献一致,如无特别说明,本书中提到的卷积运算均指互相关运算。
1.3 特征图和感受野
特征图(feature map) 是什么?
在每个卷积层,数据都以三维形式存在,可以看作多个二维图片叠在一起,其中每一个称为一个feature map。
在输入层,若为灰度图片,仅有一个feature map;若为彩色图片,一般是3个feature map(红绿蓝)。
层与层之间有若干个卷积核(kernel),上一层和每个feature map跟每个卷积核做卷积,都会产生下一层的一个feature map。
感受野(receptive field) 是什么?
The receptive field is defined as the region in the input space that a particular CNN’s feature is looking at (i.e. be affected by). —— Dang Ha The Hien
感受野被定义为卷积神经网络特征所能看到输入图像的区域,换句话说特征输出受感受野区域内的像素点的影响。
以1.1小节中的图示为例,输入中阴影部分的四个元素是输出中阴影部分元素的感受野:
若将上图中形状为 2 × 2 2 \times 2 2×2的输出记为 Y Y Y,并考虑一个更深的卷积神经网络:将 Y Y Y与另一个形状为 2 × 2 2 \times 2 2×2的核数组做互相关运算,输出单个元素 z z z。
那么, z z z在 Y Y Y上的感受野包括 Y Y Y的全部四个元素,在输入上的感受野包括其中全部9个元素。
由此可见,可以通过更深的卷积神经网络使特征图中单个元素的感受野变得更加广阔,从而捕捉输入上更大尺寸的特征。
通常使用“元素”一词,来描述数组或矩阵中的成员。在神经网络的术语中,这些元素也可称为“单元”。
参考
《动手学深度学习》(TF2.0版)
卷积(convolution)与互相关(cross-correlation)的一点探讨
feature map指什么
关于感受野的总结