卷积神经网络
卷积神经网络是由生物学上的视觉皮层获得启发的,视觉皮层的小部分神经元细胞对特定的视觉特征敏感,例如一些神经元细胞只对色彩信息兴奋,一些神经元细胞只对水平边缘或者垂直边缘兴奋。Hubel 和 Wisesl 发现这些神经元细胞必须以柱状结构的形态排列,而且同时进行工作时才能产生视觉感知。这种在一个系统中由特定组件寻找特定特征的理念在机器学习中同样适用,这也是卷积神经网络的基础。
卷积神经网络是根据模拟生物感知世界的特性而提出的一个模型,在卷积神经网络的发展历程中产生了许多的经典网络模型。随着数值计算设备不断的创新与发展,卷积神经网络在计算机视觉和自然语言处理等领域都获得了举世瞩目的成果,在数字图像处理领域中,卷积神经网络常用于图像增强、图像分类、语义分割、目标检测以及目标追踪等问题。卷积神经网络一般由以下几层构成:卷积层、池化层、激活函数、全连接层。
1)卷积层
卷积层的主要功能是对输入图像进行特征提取,是构建卷积神经网络的核心层。卷积层主要由多个可学习的卷积核组成,当卷积核沿着原输入图像的高度和宽度方向滑动时,会生成一个二维的特征图像,特征图上的每个特征值都代表原图像的局部区域信息对卷积核的反映。局部区域的大小,又叫做“感受野”,由卷积核的尺寸决定。由于不同的卷积核可以提取不同的特征信息,所以网络训练会使卷积核持续学习,直到它发现特定类型的视觉特征时激活,例如边缘特征信息、色彩特征信息等。卷积操作如下图所示:
卷积神经网络具有局部连接的特性,即在卷积运算时卷积核只在上一层输入图像的局部区域做卷积运算,而不是与整个输入图像做运算,通过综合输入图像的局部特征获取图像的整体特征。除此以外,卷积层还具有权值共享的特性,即如果图像中存在特征一致的区域,那么在特征提取的过程中都采用相同的卷积核。这样能够减少网络参数的数量,避免参数过多造成过拟合。
2)池化层
池化层的作用是在保持特征不变性的同时减少网络的参数总量和计算量。特征不变性主要分为三类:平移不变性、尺度不变性以及旋转不变性,采用池化操作可以将从卷积层提取的特征图像做降维处理,特征图像在降维处理过程中去除的特征信息是冗余的信息,而保留的特征信息则是具有尺度不变性的信息,是最能表达图像特征的信息。采用池化操作可以逐渐减小输入图像的空间尺寸,提高模型的泛化能力。最常用的池化操作有最大池化和平均池化,最大池化将池化区域中所有值的最大值作为输出值,能够提取图像的边缘信息;平均池化将池化区域中所有值的平均值作为输出值,能够保留图像的背景信息。两类池化操作如下图所示:
3)激活函数
通常机器学习算法只能解决线性可分的问题,但是在现实应用中更多的问题呈现为非线性,所以在卷积神经网络中必须使用非线性激活函数运算以实现网络模型的非线性建模能力,从而大大提高模型泛化能力。常用的激活函数有 Sigmoid、Tanh、ReLU 以及 LeakyReLU,ReLU 和 LeakyReLU 的数学模型如下图所示。Sigmoid 函数能够把特征值映射到 0 到 1 之间,函数曲线平滑且易于求导,但由于函数中存在幂运算与除法运算,因此计算工作量较大,并且在梯度反向传播时易产生梯度消失的问题。Tanh 函数相比于 Sigmoid 函数来说更加“陡峭”,因此可以有效区别有差异的特征。ReLU 函数的计算量较少,能够有效缓解梯度消失和梯度爆炸等问题,缺点是当激活函数的输入值为负数时,函数输出值为 0,导致神经元的梯度在后续的训练迭代中永远为 0,出现“特征死亡”的问题。为了解决负区间“特征死亡”的问题,LeakyReLU 函数在负区间设计了一个小斜率,使得在激活函数的输出值为负值时,仍存在一个很小的梯度。
4)全连接层
全连接层在图像分类问题中通常用作分类器,整合抽象化的特征归一化后得到分类概率,全连接层的示意图如下图所示。从图中可以看出,全连接层的每个神经元连接上一层中的所有神经元,在图像处理领域中,经过若干个卷积层之后得到的特征信息通常为三维特征向量,需要将三位特征向量映射为固定长度的一维特征向量。因为特征映射会破坏图像的空间结构,所以 FCN 采用卷积层代替全连接层。卷积层相比于全连接层减少了网络参数,并且能够突破输入图像尺寸的限制,使其在大型图像处理方面上取得重大成就。