互相关运算
严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cross-correlation),而不是卷积运算。 根据 6-1节中的描述,在卷积层中,输入张量和核张量通过互相关运算产生输出张量。
首先,我们暂时忽略通道(第三维)这一情况,看看如何处理二维图像数据和隐藏表示。在 图6.2.1中,输入是高度为
3
3
3、宽度为
3
3
3的二维张量(即形状为
3
×
3
3 \times 3
3×3)。卷积核的高度和宽度都是
2
2
2,而卷积核窗口(或卷积窗口)的形状由内核的高度和宽度决定(即
2
×
2
2 \times 2
2×2)。
在二维互相关运算中,卷积窗口从输入张量的左上角开始,从左到右、从上到下滑动。 当卷积窗口滑动到新一个位置时,包含在该窗口中的部分张量与卷积核张量进行按元素相乘,得到的张量再求和得到一个单一的标量值,由此我们得出了这一位置的输出张量值。 在如上例子中,输出张量的四个元素由二维互相关运算得到,这个输出高度为
2
2
2、宽度为
2
2
2,如下所示:
注意,输出大小略小于输入大小。这是因为卷积核的宽度和高度大于
1
1
1, 而卷积核只与图像中每个大小完全适合的位置进行互相关运算。 所以,输出大小等于输入大小
n
h
×
n
w
n_{h}\times n_{w}
nh×nw减去卷积核大小
k
h
×
k
w
k_{h}\times k_{w}
kh×kw,即:
这是因为我们需要足够的空间在图像上“移动”卷积核。稍后,我们将看到如何通过在图像边界周围填充零来保证有足够的空间移动卷积核,从而保持输出大小不变。
这里的星号是指的上述“互相关运算”。
下面是不同核对输入图像的输出效果。
神经网络可以去学一些这样的核,来得到我们想要的输出。
交叉相关 vs 卷积
交叉相关和卷积其实是没有太多区别的,唯一的区别是卷积在
w
w
w那边有个负号,也就是说卷积在索引
w
w
w的时候是反过来走的,但是因为这个过程是对称的,所以在实际使用中没什么区别。
因此,为了使用方便,神经网络中没有严格使用数学上卷积的定义,而是使用了其倒过来的二维交叉相关的定义。但是我们要清楚,说是说我们实现的是卷积层,但是我们实际上实现的是交叉相关。
一维和三维交叉相关
总结
卷积解决的问题:权重随着我的输入的变大而变得特别大