首先需要说明的一点是,虽然卷积层得名于卷积( convolution )运算,但我们通常在卷积层中使用更加直观的计算方式,叫做互相关( cross-correlation )运算。 也就是说,其实我们现在在这里提到的卷积运算,不是数学意义上的卷积运算,而是说在深度学习领域,大家通常将数学中的的互相关运算称之为卷积运算,这一点首先需要作出明确地声明。
计算卷积
我们可以将卷积运算分成三部分,如下图:
其中:
- 输入可以是训练数据,也可以是上层网络的输出;
- 卷积核是整个卷积网络的主要参数部分;
- 输出就是计算的结果。
详解:
在卷积运算中,卷积核从输入的最左上方开始,按从左往右、从上往下的顺序,依次与输入进行计算。 计算方式为: 输入数组的子数组元素与卷积核中元素对应相乘,并求和,得出输出数组对应位置中的结果。 例如图中37
就是由淡黄色数组中的[1425]
与卷积核中的[1324]
对应相乘得到的,即: 37=1∗1+2∗2+4∗3+5∗4
之后将卷积核向右滑动,继而开始让下一个数组[2536]
与卷积核进行同样的计算,之后是[4758]
以及[5869]
,可以列出计算式: 47=2∗1+3∗2+5∗3+6∗4
67=4∗1+5∗2+7∗3+8∗4
77=5∗1+6∗2+8∗3+9∗4