1. 摘要
本系列分享我们将一起理解MindSpore官网中展示的MNIST图片数据集分类项目。此项目中使用的是LeNet卷积神经网络,卷积神经网络(convolutional neural network)是含有卷积层(convolutional layer)的神经网络,卷积神经网络均使用最常见的二维卷积层,经常用于处理图像数据的项目中。在LeNet网络中,可分为卷积模块和全连接输出模块。本次我们将介绍卷积计算的工作原理。
2. 二维互相关运算
首先了解一下卷积核数组在输入数组中的计算方式,虽然卷积层得名于卷积(convolution)运算,但我们通常在卷积层中使用更加直观的互相关(cross-correlation)运算。在二维卷积层中,一个二维输入数组和一个二维核(kernel)数组通过互相关运算输出一个二维数组。
图1:互相关运算
这里我们设置一个高和宽均为3的二维输入数组。我们可以将该数组形状记为3×3。核数组的高和宽分别是2。核数组在卷积计算中又称卷积核或过滤器(filter)。卷积核的高和宽决定卷积核窗口的形状,可以记为2×2。
在二维互相关运算过程中,卷积窗口将会从输入数组的最左上方开始计算,按照从左到右,从上到下的顺序,依次在输入数组区域内滑动,这里默认情况下卷积核移动的步幅是每次一行或一列。当卷积窗口滑动到输入数组的某一位置时,窗口中的输入子数组与核数组按元素相乘并求和,得到输出数组中相应位置的元素。二维互相关运算得出: