首页 百科知识 卷积神经网络

卷积神经网络

时间:2023-08-23 百科知识 版权反馈
【摘要】:图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积神经网络其实也是一种实现输入到输出的映射关系的网络。卷积神经网络执行的是有监督训练。利用反向传播算法,为了计算层l中神经元的误差,先对l+1层中所有对应于该神经元的信号求和,并将这些信号乘上相对应的定义于l+1层的权值。然后结合BP网络的推导结果,将这个数值乘上当前神经元的激活函数相对于输入u的偏导。

5.2.1 卷积神经网络结构

CNN由纽约大学的Yann LeCun于1998年提出[12],它是第一个真正成功训练多层网络结构的学习算法。CNN是一个多层的有监督学习神经网络,隐含层由多个卷积层、子采样层交替组成,其基本框架如图5.1所示。

图5.1 CNN基本框架

图5.1中的CNN由一个输入层、四个隐层(包括交替的2个卷积层、2个子采样层)和一个输出层组成。图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。C代表卷积层,也称特征提取层,每一层中的单元将前一层中的一组小的局部近邻的单元作为输入,通过这种局部感知,神经元能够提取目标的一些基本视觉特征,比如边、角等,这些特征继续组成更高层的特征。同时由于图像的固有特性,即图像局部的统计特性与其他局部是一样的,因此可通过权值共享降低了网络的复杂性,大大减少自由参数的数量。每个卷积层后的降采样层——S层,通过局部平均和降采样,降低了特征图的分辨率,同时也降低了网络输出对位移和变形的敏感程度。

5.2.2 卷积神经网络的训练过程

卷积神经网络其实也是一种实现输入到输出的映射关系的网络。卷积神经网络执行的是有监督训练。在开始训练前,先对网络的所有权值进行随机初始化。

它的训练分为两个阶段:

(1)前向传播阶段。从样本集中抽取一个样本输入给网络,从输入层到输出层逐级变换信息,计算实际输出。

(2)向后传播阶段(误差传播阶段)。计算实际输出与理想输出之间的误差,并按照最小化误差的方法调整网络参数。

下面讨论如何计算相关网络层上的误差梯度,然后利用得到的梯度来修改网络权值(以2维数据为例)。

5.2.2.1 卷积层的梯度计算

在卷积层,首先对前一层的特征图进行卷积,然后通过激活函数,构成输出的特征图。一般来说:

其中,M j代表输入图的集合,x lj表示在卷积层l层的第j个特征图,f(°)是激活函数(本文选用Sigmoid函数),卷积操作∗是MATLAB中的对应函数。每个输出图都有一个附加的偏差b,但对于某个特定的输出图,输入图会通过同一个核进行卷积操作。举例来说,如果输出图j和k都采用了输入图i,那么输出图j和k对i釆用的核是不同的。

假定每个卷积层l后面都有层l+1。利用反向传播算法,为了计算层l中神经元的误差,先对l+1层中所有对应于该神经元的信号求和,并将这些信号乘上相对应的定义于l+1层的权值。然后结合BP网络的推导结果,将这个数值乘上当前神经元的激活函数相对于输入u的偏导。如果第l层是降采样层,那么下一层对应的误差信号图中的一个像素对应于采样层输出图中的一个块。因此,每个l层中的单元只连接到l+1层中的一个单元。为了更方便地计算l层的误差信号,我们采取这样的操作:将下一层的误差信号图进行升采样,这样可以得到和卷积层大小一致误差信号图,然后对其和l层“激活函数偏导图”进行基于元素的乘法。降采样层中的权重都等于常量β(具体见降采样层梯度计算),将前面一步的结果放大β倍来计算δl。这样重复这个步骤,可以计算卷积层中的每一个图j,对应其相对的降采样层:

其中up(°)表示升采样操作,其意义是从水平和垂直方向重复复制n次输入像素,n为降采样是的缩放因子。编程时,一个实现方法是通过Kronecker积:

得到给定图的误差信号后,对所有δlj中的项目求和之后,就可以计算出偏差的梯度:

最后,通过反向传播计算计算核函数的权重的梯度。将该权重涉及到的所有梯度求和:

5.2.2.2 降采样层的梯度计算

降采样层产生输入图的降采样后的结果。如果有N个输入图,就同样有N个输出图,只是输出图相对于输入图会小一点。其中down(·)表示降采样函数。这个函数会对输入图中每一个不同的n×n区域求和使得输出图比输入图在不同维度都小n倍。每个输出图都有自己的乘子偏差β以及附加偏差b。

计算误差信号图比较有难度,仅有的可学习的参数是β和b。假定降采样层的上一层和下一层都是卷积层。如果降采样层后面是全连接网络,那么其误差信号图可以通过反向传播算法直接得到。

在5.2.2.1卷积层的梯度计算里,需要找到输入图中哪些块是对应输出图中的某个像素。同样这里必须找到当前层的敏感图中哪些块对应下一层中的某个像素。显然,输入的输出链接的权重就是卷积核的权重。同样可以有效地通过下面的公式实现:

现在可以计算β和b梯度。如公式5.9所示,附加偏差b同样就是误差信号图中元素的求和:

乘子偏差β显然和前向传播中当前层的原始降采样图(降采样后没有附加偏差所构成的一个特征图)有关,由于这个原因,在前向传播过程中保存这些图将有利于计算。定义:

所以β的梯度由以下公式给出:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈