深度学习之卷积神经网络CNN(一)网络结构

时间:2024-03-17 11:31:45

卷积神经网络(Convolutional Neural Networks)是一种深度前馈神经网络,基于视觉神经感受野的理论而提出,已成功应用于图像识别、语音识别、运动分析、自然语言处理等领域。CNN的核心思想是:将局部感受野、权值共享以及时间或空间亚采样这三种结构思想结合起来,获得了某种程度的位移、尺度、形状的不变性。与传统DNN的区别在于,CNN包含由卷积层和子采样层构成的特征提取器,能够通过加深网络层次、减少网络参数、非线性映射、避免复杂的预处理等操作得到原始图像的有效表征。CNN的缺点在于网络整体复杂性较大,难以优化且容易陷入过拟合等。

 

一、相关概念

1、卷积核/滤波器(kernel/filter)

给定输入图像,输出图像中每一个像素是输入图像中一个小区域内像素的加权平均,权值由一个函数定义,这个函数就是卷积核。卷积核只关注局部的特征,局部的程度取决于卷积核的大小。一般卷积层会含有多个卷积核,目的是学习输入的不同特征。卷积核在与输入进行卷积时,它的参数是固定的——权值共享,参数通过GD优化而非人为设定,因此参数的初始化非常重要。

卷积核常用的尺寸有3*3、5*5、7*7等,不用偶数尺寸的原因在于:奇数的对称性核便于确定中心(锚点)、对角线,padding对称计算简单;偶数的非对称性核不能保证特征图尺寸不变,导致混叠错误。1*1的卷积核虽然没有考虑前一层局部关系,但可以增加非线性、增加/减少特征图的数量(Inception)、实现跨通道的交互和信息整合(NIN),类似全连接的效果。大尺寸卷积核可以提取图像的复杂特征,适用于高清大图;小尺寸卷积核可以提取图像的显著特征,适用于较小的图片。相比一个大的卷积核,使用几个小的卷积核stack叠加在一起,与输入层的连通性不变,但可以大大降低参数个数及计算复杂度。

 

2、特征图(feature map)

卷积层包含卷积核对输入层进行卷积得到的三维形式的数据,三维数据可看作由多个二维图片叠加而成,每个二维图片称为一个feature map。不同的卷积核会提取不同的特征图,可以理解为从多个角度去分析图片。

 

3、局部感受野(receptive field)

大脑在识别图片的过程中,会由不同的皮质层处理不同方面的数据(颜色、形状、亮暗等),得到局部的认知;然后将不同皮质层的处理结果进行合并映射,得出全局的认知。CNN模仿大脑对图片的处理过程,认为局部的像素相关性较强,距离较远的像素则相关性较弱。所以每个神经元不必对全局图像进行感知,只需要进行局部感知,然后在更高层次对局部信息进行整合即可得到全局信息。

        深度学习之卷积神经网络CNN(一)网络结构  深度学习之卷积神经网络CNN(一)网络结构

 

感受野用来表示网络内部不同神经元对原始图像的感受范围,即CNN每一层输出的特征图上的像素点映射到原始图片上的区域大小。神经元的感受野越大表示它能接触到的原始图像范围就越大、蕴含更为全局的特征;感受野越小表示它所包含的特征越趋向局部和细节,因此感受野可以用来判断每一层的抽象层次。

感受野的计算和之前所有层的卷积核尺寸kernel和步长stride有关:kernel影响本层特征图的感受野、stride只影响下一层的感受野,padding不影响感受野的大小。计算方法是从输出倒推输入,令r为感受野大小,j为两个相邻特征之间的距离(空洞dilated卷积>1),n为特征个数(特征图大小),start为第一个特征的坐标,k为卷积核大小,p为填充尺寸,s为步长:

        深度学习之卷积神经网络CNN(一)网络结构

        深度学习之卷积神经网络CNN(一)网络结构

        深度学习之卷积神经网络CNN(一)网络结构

        深度学习之卷积神经网络CNN(一)网络结构

        深度学习之卷积神经网络CNN(一)网络结构

增大感受野的方法有:增大卷积核尺寸,池化,空洞卷积等。

空洞卷积是在卷积层中增加空洞,以此增加感受野,比传统的卷积增加了一个超参数j,传统卷积的缺陷有:上采样/池化层是确定的,内部数据结构、空间层级信息丢失,小物体信息无法重建(假设有4个池化层则任何小于2^4=16 pixel的物体信息理论上无法重建)。

        深度学习之卷积神经网络CNN(一)网络结构

 

二、CNN的基本组成

不同的资料对CNN的组成有不同的描述,但基本组成都是相近的,CNN的主要结构如下:

        深度学习之卷积神经网络CNN(一)网络结构

1、数据输入层 input layer

在CNN中,输入图片被看作由许多神经元组成,每个神经元代表一个像素值,CNN能基本上让图片保真,而不必压缩成矢量。和机器学习中的传统神经网络一样,首先需要对输入数据进行预处理操作,原因在于:

(1)输入数据单位不一致,可能导致神经网络收敛速度慢、训练时间长;

(2)方差大的特征在模式分类中的作用可能偏大,反之偏小;

(3)由于**函数有值域限制,因此需要将目标函数映射到**函数的值域中。

常见的数据预处理方式有:

(1)去均值:将输入数据的各个维度中心化为0;

(2)归一化:将输入数据的各个维度的幅度归一化到同样的范围;

(3)PCA:将数据降维,去掉特征之间的相关性;

(4)白化:在PCA的基础上,对转换后的数据每个特征轴上的幅度进行归一化。

在CNN中一般只会使用去均值和归一化对数据进行处理,很少使用PCA和白化的操作。

        深度学习之卷积神经网络CNN(一)网络结构

       

2、卷积层 CONV layer

卷积是一组固定的权重和窗口内数据做矩阵内积后求和的过程,每个卷积核可看做一个特征提取器,不同的卷积核复杂提取不同的特征,卷积核一般以随机小数矩阵的形式初始化,在网络的训练过程中卷积核将习得合理的权值。输入层中与卷积核尺寸相同的区域为局部感受野,二者之间的卷积结果为一个特征图上的数值,每个卷积层的神经元通常包含若干特征图,特征图个数为卷积核的深度depth。

卷积层的特点

(1)局部感知:将每个神经元看做一个卷积核,窗口(感受野)滑动时卷积核对局部数据进行计算;

(2)填充值(padding):图像外围如何填充,方法有全零、均值、镜像等;

(3)权值共享:每个特征图上的神经元是由同一个卷积核卷积得到的,共享权值可以减少网络参数个数,同时也降低了过拟合的风险;

(4)滑动窗口重叠:卷积核每次移动的距离为步长stride,步长一般小于卷积核尺寸使得窗口间出现重叠,这样可以降低窗口间的边缘不平滑的特性。

       

深度学习之卷积神经网络CNN(一)网络结构

深度学习之卷积神经网络CNN(一)网络结构

 

3、激励层 incentive layer

将卷积层的输出进行非线性映射,激励函数使用建议:

(1)首选ReLU函数,迭代速度快且将小于0的元素都置零;

(2)在ReLU失效的情况下,考虑使用Leaky ReLU或Maxout等函数;

(3)只在全连接层使用sigmoid系函数;

(4)tanh函数在某些情况下有比较好的效果,但应用场景比较少。

 

4、池化层 pooling layer

池化也称子(下)采样,通过减小表征的空间尺寸来减少参数个数,通常分为Max Pooling和Average Pooling两种形式,顾名思义,最大池化就是取窗口内的最大值,平局池化就是取窗口内的平均值。由于池化会损失一部分信息,有时候加上池化后效果反而变差了,因此需要做实验比较,具体问题具体分析。

        深度学习之卷积神经网络CNN(一)网络结构

 

5、全连接层 fully connected layer

类似DNN的结构,FC层与上一层之间所有神经元都有权重连接,通常FC层只会在CNN的尾部出现,将分布式特征表示映射到样本标记空间。实现方式:若上一层为全连接层可以使用1*1的卷积;若上一层为卷积层可以使用对应宽高的全局卷积;还可以使用全局平均池化GAP取代FC,然后使用softmax等函数作为目标函数训练网络。

 

6、Batch Normalization Layer

在数据预处理阶段,数据通常会被标准化以降低样本之间的差异性、加快收敛速度。同样地,对神经网络内部隐藏层的输出也可以进行标准化,即增加BN层使输出服从高斯分布,然后再送入下一层进行处理。BN层一般位于卷积层或FC层的后面,池化层的前面。

        深度学习之卷积神经网络CNN(一)网络结构

 

由于 深度学习之卷积神经网络CNN(一)网络结构 经过标准化后为正态分布,使得网络的表达能力下降。为了解决这个问题,引入两个新的参数β、γ,它们是在训练网络时自己学习得到的,极端情况下等于mini-batch的均值和方差。

BN的优点:梯度传递更加顺畅,不易导致神经元饱和;学习率可以设置的大一点,对初始值的依赖减少。

BN的缺点:如果网络层次比较深,再加入BN层可能会导致模型训练速度很慢,因此慎用BN层。

 

三、CNN的优缺点

优点:

        卷积核参数共享,对高维数据的处理没有压力;

        无需选择特征属性,只要训练好权重即可得到特征值;

        深层次的网络抽取图像信息比较丰富,表达效果好。

缺点:

        需要大量样本、大量调参,训练迭代次数很多,最好使用GPU加速训练;

        物理含义不明确,从每层输出中很难看出含义。

        深度学习之卷积神经网络CNN(一)网络结构

 

参考资料

https://www.zhihu.com/question/54149221/answer/192246237

https://blog.csdn.net/yunpiao123456/article/details/52437794

https://www.cnblogs.com/alexcai/p/5506806.html

https://www.cnblogs.com/hellcat/articles/7220040.html