《续》
第2章 神经网络和卷积神经网络
随着科学技术的不断发展,深度学习技术的应用领域在不断扩大,与此相关的研究不断深入,一些新的方法和理论也源源不断的被提出来。深度学习技术的主要优点表现为对复杂的分类问题可以进行更好的泛化分析处理。而在计算机处理复杂数据信息能力提高的形势下,这种方法的优势开始明显的表现出来,并且效果明显好于支持向量机等浅层学习算法,深度学习技术是在传统的人工神经网络方法基础上发展起来的,目前已经形成了完整的理论,而在神经网络领域的发展下这种方法也在不断发展。卷积神经网络和神经网络技术存在着密切的关系,CNN的出现显著扩大了深度学习理论的应用领域,目前CNN模型已经可以模拟复杂的神经元体系和网络,在探索神经元与人体神经元机理方面也表现出一定的应用价值,为未来全面化的智能化发展奠定了良好的基础。
2.1 神经网络的原理
神经网络中最基本的单元是神经元,在神经网络的组成中,单个神经元与其他部分神经元相连,当进入兴奋状态时就可以向其连接的神经元发送信号,并且可以改变后者的电位;如果某神经元的电位高于阈值,则会处于兴奋状态并向与其连接的神经元发送信号,实现神经网络中信号的传播。1943年生物学家McCulloch利用模型对神经元的这种特性进行了研究,在其建立的模型中,神经元接收到来自n个其他神经元发送的信号,这些输入的信号根据一定的权重进行连接和传递,然后对比阈值和神经元接收到的总输入值,通过“激活函数”处理而输出信号。
如图2.1所示,这是一个简化的人工神经元,其具有多个输入信号,而经过神经元处理后,将发出一个判断结果(表示其通过输入信号产生的“兴奋”程度)表现出多输入单输出的特征。
图 2.1 单个神经元
对应的公式如(2.1):
(2.1)
这种模型也就是Logistic回归模型,一定数量的单元通过这种模式组合起来而形成分层结构,就会得到所需的神经网络模型。感知机中包含了两层神经元,其中输出层是M-P神经元,可以接收输入层发送的信号。根据实际使用结果表明,这种只拥有一层功能神经元的感知机可以方便地实现逻辑与、或、非运算。在处理过程中学习能力较弱的原因主要和其神经元层数不多有关。感知机虽然结构简单,但是其重要的性能之一就是可分辨输出信号,且可以促进相应信号的传递和反馈,因而表现出很高的应用价值。
多个神经元相互之间构成神经网络,且网络中神经元之间保持了一定的非线性相关关系。具有多层功能的神经元可以用来进行复杂问题的求解,例如在异构问题的求解过程中,简单的两层感知机就可以满足要求。在更复杂问题的处理过程中先要梳理清楚神经元的脉络,然后确定相应的输入输出关系。对于问题的进一步复杂化,对神经元的需求更大,故产生了在输入层与输出层之间添加一层或多层神经元的关系模型。这种关系模型中中间添加的神经元叫做隐含层,隐含层和输出层神经元和激活函数存在一定的相关性。具有一个隐含层的神经网络结构如图2.2所示。
图2.2 简单的多层网络模型
其表达式如(2.2):
hw,b(x)=a1(3)=f(w11(2)a1(2)+w12(2)a2(2)+w13(2)a3(2)+b1(2) ) (2.2)
其中 a1(2)、a2(2)如以下两式所示:
a1(2)=f(w11(1)X1+w12(1)x2+w13(1)x3+b1(1)) (2.3)
a2(2)=f(w21(1)x1+w22(1)X2+w23(1)X3+b2(1) (2.4)
据上文类推,可以进一步实现包含很多隐含层的网络模型。
2.2 卷积神经网络
深度学习是在人工神经网络的基础上发展探索而来的,目前在很多领域得到广泛的应用。这种技术可以对低层特征进行组合,进而确定出相应的分布特征,从而在此基础上建立起复杂的属性类别。这种学习可以具体划分为监督学习方法和无监督学习方法两类,第一种学习方法的学习性能更高但可能存在一些局限性。深度学习模型有很多类型,常见的如卷积神经网络、深度置信网络、和堆栈自编码网络等。其中目前应用频率最高的为卷积神经网络(CNN),这种网络最早是为识别图片中的物体形状而设计的,网络结构的主要特点表现为对图片平移、比例缩放等操作可以保持特征不变。CNN网络模型是在传统的概念模型基础上发展起来的。早在1962年威尔斯进行了猫视觉皮层细胞的研究,分析并构建出了相应的模型;而到80年代日本学者斯科特从感受野概念进行发展,提出了神经认知机模型的概念,随后与此相关的模型也不断的被建立起来。
2.2.1 CNN的基本思想
卷积神经网络(CNN)是对猫大脑中视觉皮层的结构研究改进而发展起来的,可以将其看作为基于监督学习的深层神经网络中的一类,其特点是可以实现以下两方面的功能:一是稀疏连接;二是权值共享是指在CNN网络中一些神经元连接的权重是可以共享的。在这些功能的促进作用下,卷积神经网络的结构也表现出复杂的特征,和实际的生物神经网络产生了很高的相似性。由于权值共享,网络中大大减少了权值数量,与此同时相应的网络模型的复杂度也明显的降低。另外,CNN对多维图像也有很好的处理效果,图像可以直接作为网络的输入,这样就不存在相应的特征提取问题,处理过程也明显的简化。由于卷积神经网络的网络结构与特点和生物神经网络的高度类似,其在语音、图像及语义等领域的识别功能方面较相关传统方法表现出了很大的优势。
卷积神经网络与普通神经网络有明显的差异,具体表现为前者包含了卷积层和子采样层构成的特征抽取器。在卷积神经网络的卷积层中,一个神经元连接的邻层神经元数量是有限的。在CNN结构对应的卷积层中,一般会存在很多的特征平面,而各平面中包含很多的神经元,在同一个平面中神经元可以共享权值,这就是卷积核。卷积核在初始化时一般选择小数矩阵模式,在训练过程中,卷积核可以得到一定优化的权值。共享权值的优点表现为可以明显的降低网络各层之间的连接,并合理的控制拟合水平。
卷积神经网络具体划分为三部分,分别是输入层、卷积层和池化层,以及对应的感知机分类器,网络在进行特征提取过程中,要用到相应的卷积层和子釆样层。为了提高网络识别的精度,一般要进行误差梯度设计和一定的迭代操作。以下为卷积神经网络的三个主要特点。
(1)局部区域感知
在卷积神经网络中,输入一定量的采样数据之后,网络将图像按像素点的灰度值进行处理,输入的数据会被划分成较小的局部区域,然后在这些小区域中提取图像的原始视觉特征。这类特征的种类主要包括物体的特殊点、边缘以及拐角等,可以根据这些特征进行图形识别。卷积神经网络将图片特征处理转化为信号时,这种网络的其他层对这些初级特征进行组合处理,确定出一些复杂的高层的特征。两层之间在连接过程中采用了局部连接方式,在这样的连接模式下,相邻每一层的神经元节点将仅其临近的上层神经元节点连接,这样网络的参数规模大幅度的降低,对进一步研究和学习概念构建过程提供了可靠的支持。局部感知野是卷积神经网络降低网络参数数量的主要工具之一。通常情况下图像局部的像素联系较为紧密,两个像素间的距离较远,则其对应的相关性则较弱。在此情况下各神经元在识别过程中,可以不必对全局图像进行感知,对小范围的图像局部感知之后,更高层将局部的信息进行综合而确定出总体的信息。网络部分的连通模型也是基于视觉系统结构而形成的,而这种模式下,利用单个神经元连接少数像素值的方法,令神经元可以高效的接受局部的信息,且在工作过程中只对某些特定区域的刺激进行响应。在此连接模式下相应的权值数据明显低于传统方法的权重数据量,而这种操作也称为卷积操作。
需要对一个大尺寸图像进行特征提取时,先对此图像进行区域划分,而得到一定数量的小区域,选择其中一个8×8尺寸的小图像作为样本,利用其图像进行学习,发现图像的特征信息,利用在此基础上学习到的特征作为探测器,然后在其他的区域通过此探测器进行处理。整体大尺寸图像通过小图像所得的特征进行遍历,通过卷积对图像各个部位进行运算而确定出对应的特征激活值。
如图2.3所示,此图反映了利用尺寸为3×3的卷积核对尺寸为5×5的图像进行卷积运算的原理,特征提取方法和各个独立的卷积运算是一一对应的关系,利用卷积运算可以将图像中符合条件的区域通过此特征筛选出来。
图2.3 卷积运算原理
(2)权重共享
在某些应用情况中,在经过局部感知后存在参数仍然过多的情况。针对这些情况通过权值共享的方法进一步地降低参数量。在局部连接过程中,假定每个神经元对应了一百个参数,神经元总数为106个,导致系统中总的参数量十分巨大;若这些神经元的参数保持一致,则网络中的参数量将极为显著地缩减。
权值共享处理过程中,将一百种对应不同卷积核的卷积操作对应于特征的提取,而这种操作和位置。在此过程中依据如下原理,图像的某些部分的统计学特性与其他部分不存在差异,可以对不同部分学习的特征进行共享。而在第一层的卷积神经网络后,下一层网络中的神经元数量明显的减少,相应的运算量也大幅度减少,可以通过权重一样的特征来有效的降低运算量,其中各图像上的位置应用到的学习特征也保持一致。
在卷积神经网络处理图像的过程中,各卷积滤波器重复的处理输入的数据,对全部输入图像内容进行卷积。所得结果进行处理之后就可以确定出输入图像的特征图,从而提取出目标图像的特征信息。而在此处理过程中,各卷积滤波器对其中的一些偏置项共享,在输出后输入图像的平移变化保持一致,这样既可以使权重共享大幅减少,还可以明显的减少训练样本的需求,为图像处理提供了便利。
(3)子采样
CNN的主要组成架构之一为子采样。在卷积神经运行期间,一般要先进行子采样,再进一步划分为均值子采样和最大值子采样两类,两种子采样方法下文会详细介绍。子采样过程中要进行一定的卷积操作,通过这种采样可以明显的降低模型复杂度,提高运算效率。
在获取图像的卷积特征后,通过相关方法对卷积特征降维处理,在此过程中要用到子采样的方法。将卷积特征划分为一定数量的不相交区域,然后通过所得区域的均值特征来反映处理后的卷积特征。根据过往的研究表明,这些降维后的特征分类难度明显的降低,分类过程也相应的简化了。子采样有2个优点:可以大幅度的降低运算量,采样单元具有平移不变性,在此情况下即使出现了一定的平移,提取到的特征没有变化,其对应位移的敏感性降低,因而子采样是一种常用的降低数据维度的采样方法。
2.2.2 CNN的整体网络结构
多层CNN网络的结构随着不断发展,复杂程度也在不断提升,其中主要包括有很多可支持池化运算的卷积层和一定数量的全连接层,其常见的的结构如 AlexNet,其结构如图 2.4所示。
图2.4 AlexNet网络结构
由图2.4可知,卷积神经网络可以在卷积处理基础上得到一定数量的不同特征,而在子采样基础上降低数据维度,接着在一定的组合模式下而得到更加抽象的特征,然后利用全连接层描述图像的特征。整个网络构建原理具体如下:
(1)卷积层的构建原理
卷积层包含了一定数量的特征域,其中的各个域包含了相同连接权重的神经元,且其中的各神经元对应的感受野数量也保持一致,这些神经元在工作中只接收其感受野传输的信号。具体情况见图2.4,在前一层的特征图和相应的卷积核进行卷积处理,将所得结果通过激活函数后输出,在此处理过程中对应的卷积表达式如下:
(2.3)
其中:Oij 表示第i层的第j个特征图,此特征图的元素为Oij(x,y),而其偏置为bij;Wijk是则具体表示了Oij和O(i-1)j的卷积核;此卷积层的行数和列数分别为Ri和Ci。在以上卷积运算过程中,若第(i-1)层的特征图表示为n1×n2,卷积核为l1×l2,而在以上卷积运算处理后,可确定出第i层特征图的大小,具体表示为(n1-l1+1)×(n2-l2+1)。
(2)采样层的构建原理
在确定采样层过程中,需要通过上一层的相邻小区域进行聚合操作,在进行处理时,设采样区域具体表示为 l1×l2,具体采样算法表示如下:
(2.4)
其中gij表示Oij增益系数。
在以上卷积处理基础上得到对应的特征信息,接着利用特征信息进行分类。理论上全部提取的特征都可以用于训练分类器,但这样处理的难度很高,主要困难在于计算量很庞大,如对一个96×96像素的图像,在以上卷积运算基础上得到400个定义在8×8尺寸图像输入上的特征,则对其中的一个特征和图像卷积处理就可以确定出7921维的卷积特征,而在四百个特征情况下,对应的卷积特征向量就超过了3百万特征输入,这样大量的数据很不方便训练,且容易导致过拟合问题。
为了解决卷积过程过量数据的问题,CNN网络采用了池化(子采样)的方法。由于使用卷积后的特征是图像表现出“静态性”的属性,在此情况下图像不同区域的特征可以进行共享。为了描述大的图像,可以对图像的不同位置的特征进行聚合。通过确定出图像某区域相关特征的平均值,使此类特征对应的维度大幅度降低,这种方法可以有效地改善结果数据含量过大的情况。这种聚合称之为池化,这种处理在图像特征识别中也经常用到。
子采样可以总体上划分为均值子采样和最大值子采样两类,其都和相应的卷积过程保持对应,具体情况如图2.5所示。
具体两种子采样方法的描述如下:
1)均值子采样的卷积核相应的权重保持一致,都是0.25,卷积核的平移步长为2。这样处理后可以降低原图模糊度。
2)最大值子采样的卷积核对应的权重有两个,分别为1和0,其中1对应于输入X被卷积核覆盖部分值最大的位置,而在输出X上的步长为2,这样处理的效果也就是将原图缩减至原来的四分之一。
图2.5 两种不同的子采样方法
(3)分类层的构建
在网络模型的最后设置一个或多个全连接层用于连接各个特征实现分类,可以连接图像和输出层的各分类,而在激励时一般用到softmax回归函数,可以在此基础上确定出分类层。
2.2.3 CNN的训练方法
卷积神经网络的训练过程具体如下:
(1)前向传播阶段
先随机的抽取相应的样本(Xi,Yi),将 Xi输入网络,然后通过一定方法不断地进行变换处理,而促使信息传送到输出层,所得输出结果具体如下:
Oi=Fn(Fn-1(...F2(F1(Xiw(1)+b(1))w(2)+b(2))...)w(n)+b(n)) (2.5)
其中w(n)表示第n层的权值,b(n)和Fn()则分别表示此层相应的分值和激活函数。
这种卷积表现出valid特征,其处理过程中,对应的卷积核W覆盖在输入图input X上,然后将一定运算所得结果赋给输出图相关的位置,之后不断的进行移动操作,每次卷积核在输入X上移动一个位置,根据一定的顺序进行遍历可以确定输出矩阵Y。在此过程中如果卷积核的输入图大小和卷积核可以确定,则可以打出输出图,比如前二者的尺寸分别为Mx×Nx及Mw×Nw,相应输出的Y为对应项相减的乘积。
图2.6 前向传播示意图
(2)后向传播阶段
后向传播过程中相应的误差可以同步地进行传播,根据前文所述理论分析可知,该网络中误差的反向传播可划分为输出层和隐层两部分,相应计算方法具体表示如(2.6)、(2.7)所示:
(2.6)
∂E/∂Oik=Oik-Tik (2.7)
其中Ei是第i个样本的误差;Tik是第i个样本输出层第k个神经元的期望输出。对此层的特征进行分析可以看出,隐层误差的反向传播可以具体划分为子采样层和卷积层的这两个过程,相应误差的信号信息保持不变,可以对相应的两个层的误差进行计算,可以据此确定出对应层神经元的输出、增益相关数值,并根据所得结果来调整增益和偏置,然后对数据量的变化进行观察和分析,进一步确定出相应的误差传输作用机理,为图像处理提供支持。
通过信号跟踪和数据比较,可以发现如下事实:在误差反向传播期间,先在一定运算处理的基础上确定出尾部分类器中各神经元的误差信号,然后将此信号传递到特征抽取器;在这两个特征图的传播过程中要进行相应的full卷积操作。虽然误差的处理结果和卷积层的神经网络的性能密切相关,但是并不能区分识别。在识别过程中,此处的卷积和上一节卷积的处理流程有一定差异。那么由此可作为突破点,进一步分析运算即可发现,如果卷积核W 的长度为Mw×Mw,则对应的子特征误差矩阵 Q_err需要向一定方向移动Mw-1行或列,对应的卷积核也需要进行一定角度的旋转,对应的误差信号矩阵P_err和Q_err存在一定的变换关系。
图2.7中矩阵Q_err中的A是因为P中左上方块的运算而得到的,此小方块对A进行了卷积处理,可通过W表示。而误差信号A通过卷积核将误差信号发送到对应的神经元a、b、d、e中,可以根据类似的过程确定出错误信号B、C、D的反向传播情况,此误差传播过程可用卷积过程表示,具体情况如图2.7所示。
图2.7 后向传播示意图
2.3 本章小结
本章从单个神经元模型入手,简要介绍了人工神经元结构和含隐层的多层网络的基本概念,并着重介绍了卷积神经网络(CNN)的特点、结构和训练过程。以近年来广泛应用的 AlexNet 模型为例,详细说明了卷积神经网络中卷积层、池化层和采样层的原理及网络训练中的前向传播和后向传播。
《未完待续》