前面介绍了卷积运算的基本原理和概念,从本质上来说,卷积神经网络就是将图像处理中的二维离散卷积运算和神经网络相结合。这种卷积运算可以用于自动提取特征,而卷积神经网络也主要应用于二维图像的识别。下面我们将采用图示的方法直观地介绍卷积神经网络的工作原理。
一个卷积神经网络一般包含一个输入层、一个卷积层和一个输出层。但是在真正使用的时候,一般会使用多层卷积神经网络不断地提取特征,特征越抽象,越有利于识别(分类)。而且通常卷积神经网络包含池化层、全连接层,最后接输出层。
图7-7展示了一幅图片进行卷积神经网络处理的过程。其主要包含以下4个步骤。
- 图像输入:获取输入的数据图像。
- 卷积层:对图像特征进行提取。
- 池化层:用于缩小在卷积时获取的图像特征。
- 全连接层:用于对图像进行分类。
这几个步骤依次进行,分别具有不同的作用。而经过卷积层的图像被卷积核心提取后,获得分块的、同样大小的图片,如图7-8所示。
可以看到,经过卷积处理后的图像被分为若干大小相同的、只具有局部特征的图片。图7-9表示对分解后的图片使用一个小型神经网络进行进一步的处理,即将二维矩阵转换成一维数组。
需要说明的是,在这个卷积处理步骤,也就是对图片进行卷积化处理时,卷积算法对所有分解后的局部特征进行同样的计算,这个步骤称为“权值共享”。这样做的依据如下:
- 对图像等数组数据来说,局部数组的值经常是高度相关的,可以形成容易被探测到的独特的局部特征。
- 图像和其他信号的局部统计特征与其位置是不太相关的,如果特征图能在图片的一个部分出现,也能出现在任何地方。所以不同位置的单元共享同样的权重,并且在数组的不同部分探测相同的模式。
数学上,这种由一个特征图执行的过滤操作是一个离散的卷积,卷积神经网络由此得名。
池化层的作用是对获取的图像特征进行缩减,从前面的例子中可以看到,使用[2,2]大小的矩阵来处理特征矩阵,使得原有的特征矩阵可以缩减到1/4大小,特征提取的池化效应如图7-10所示。
经过池化处理后的矩阵作为下一层神经网络的输入,使用一个全连接层对输入的数据进行分类计算(见图7-11),从而计算出这个图像所对应位置最大的概率类别。
采用较通俗的语言概括,卷积神经网络是一个层级递增的结构,也可以将其认为是一个人在读报纸,首先一字一句地读取,之后整段地理解,最后获得全文的意思。卷积神经网络也是从边缘、结构和位置等一起感知物体的形状。