CNN是一种由卷积层、非线性处理层、池化层和全连接层组成的深度学习模型,是多层前向网络的一种特例。CNN模型通过二维卷积运算,充分利用输入图像的二维结构,提取图像中的有效特征。在CNN模型的低层结构中,模型主要提取的是边缘、纹理或角点等低级别视觉信息;而在CNN模型的高层结构中,模型则可以对低层得到的局部特征进行组合,从而抽象得到含有语义信息的全局特征。一个经典的CNN模型结构图如图2-19所示。接下来,对CNN的四个主要部分进行详细的介绍。
图2-19 经典的卷积神经网络(CNN)结构图
1.卷积层
CNN模型中的卷积层采用二维卷积的形式,并采用了权重共享和局部感受野机制来减小网络模型的计算代价。其中,权重共享机制使得每一层神经元的权重都是共享的,一个卷积核(kernels)中的参数对于所有图像而言都是一样的,即一个卷积核能从图像中提取一种局部模式。通过使用多种卷积核,可以从一幅图像中提取多种局部模式。而局部感受野机制则来源于人脑对外界信息的感知方式是由局部到整体的,比如,对于一幅图像而言,人脑对于相近的区域之间会产生较多的联系,反之,则会产生较少的联系。因此,局部感受野机制的存在使得CNN模型的某一层中某个神经元只与该神经元上层的某个局部区域连接,而不是与上层所有神经元连接。随着网络的不断加深,CNN模型中的高层可以同时感受到低层中不同局部区域的神经元发出的信号,进而可以对不同局部区域的信号抽象得到语义级别的全局特征。
2.非线性处理层(www.xing528.com)
CNN模型中的非线性处理层是将卷积后的特征图(feature maps)进行非线性处理。其理论依据为:卷积运算为线性运算,即使是再多层的线性运算后仍为线性运算,描述能力还是比较有限。因此,在CNN中引入非线性处理层可使得模型的描述能力得到很大程度上地增强。从理论上讲,当CNN模型足够深时,模型可以表示任一函数。
3.池化层
为了减小特征图的大小,CNN模型在池化层中对特征图进行降采样运算。现有深度学习模型通常使用最大池化或平均池化对特征图中的局部信息进行数值统计,从而达到减小计算量的目的。池化层的理论依据为:特征图中相邻的局部块之间存在着较大的相似性,若使用一个响应最大的神经元或一系列神经元的平均值来表示某个区域的信息,特征图中的信息并不会丢失,反而还可以防止CNN模型产生过拟合问题。
4.全连接层
全连接层旨在将一系列二维特征图表示为一维向量的形式。其本质仍可理解为卷积,如果某个全连接层的上一层是全连接,则该全连接层可以通过卷积核为1×1的卷积实现;如果某个全连接层的上一层是全连接是h×w卷积层,则该全连接层可以通过卷积核为h×w的全局卷积实现。现有CNN模型通常将最后一个全连接层或倒数第二全连接层的输出作为整个模型的输出特征。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。