卷积神经网络

来源:互联网 发布:集中注意力训练软件 编辑:程序博客网 时间:2024/05/05 00:31

1.       什么是卷积神经网络?

卷积神经网络(CNN)是一种源于人工神经网络(NN)的深度机器学习方法,近年来在图像标识领域取得了巨大的成功,卷积神经网络在多个方向持续发力,在语音识别、人脸识别、通用物体识别、运动分析、自然语言处理甚至脑电波分析方面均有突破。CNN由于采用局部连接和级值共享,保持了网络的深层结构,同时又大大减少了网络参数,使模型具有良好的泛化能力又较容易训练。NN的训练算法是基于梯度下降的错误反向传播(BP)算法,CNN训练算法是BP算法的一种变形。

2.       卷积网络与其他神经网络的区别

卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。在卷积神经网络的卷积层中,一个神经元只与部分邻层神经元连接。在CNN的一个卷积层中,通常包含若干个特征平面(featureMap),每个特征平面由一些矩形排列的的神经元组成,同一特征平面的神经元共享权值,这里共享的权值就是卷积核。卷积核一般以随机小数矩阵的形式初始化,在网络的训练过程中卷积核将学习得到合理的权值。共享权值(卷积核)带来的直接好处是减少网络各层之间的连接,同时又降低了过拟合的风险。子采样也叫做池化(pooling),通常有均值子采样(mean pooling)和最大值子采样(max pooling)两种形式。子采样可以看作一种特殊的卷积过程。卷积和子采样大大简化了模型复杂度,减少了模型的参数。

3.       卷积神经网络的常用结构

卷积神经网络通常采用若干个卷积和子采样层的叠加结构作为特征抽取器。卷积层与子采样层不断将特征图缩小,但是特征图的数量往往增多。特征抽取器后面接一个分类器,分类器通常由一个多层感知机构成。在特征抽取器的末尾,我们将所有的特征图展开并排列成为一个向量,称为特征向量,该特征向量作为后层分类器的输入。


4.       卷积与子采样

卷积过程:


卷积过程有三个二维矩阵参与,它们分别是两个特征图和一个卷积核:原图inputX、输出图outputY卷积核kernelW。卷积过程可以理解为卷积核kernalW覆盖在原图inputX的一个局部的面上,kernalW对应位置的权重乘于inputX对应神经元的输出,对各项乘积求和并赋值到outputY矩阵的对应位置。卷积核在inputX图中从左向右,从上至下每次移动一个位置,完成整张inputX的卷积过程。

子采样有两种形式,一种是均值子采样(mean-pooling),一种是最大值子采样(max-pooling)。两种子采样看成特殊的卷积过程: 

(1)均值子采样的卷积核中每个权重都是0.25,卷积核在原图inputX上的滑动的步长为2。均值子采样的效果相当于把原图模糊缩减至原来的1/4。 

(2)最大值子采样的卷积核中各权重值中只有一个为1,其余均为0,卷积核中为1的位置对应inputX被卷积核覆盖部分值最大的位置。卷积核在原图inputX上的滑动步长为2。最大值子采样的效果是把原图缩减至原来的1/4,并保留每个2*2区域的最强输入。

子采样过程的卷积式表示


5.       卷积和权值共享

在卷积神经网络的卷积层,卷积核本质是神经元之间相互连接的权重,而且该权重被属于同一特征图的神经元所共享。在实际的网络训练过程中,输入神经元组成的特征图被交叠切割成卷积核大小的小图。每个小图通过卷积核与后层特征图的一个神经元连接。一个特征图上的所有小图和后层特征图中某个神经元的连接使用的是相同的卷积核,也就是同特征图的神经元共享了连接权重。


卷积神经网络中兴奋在卷积层由前向后传播的一次卷积过程。这个过程相当于把inputX切割成和kernalW一样大小的4各小图,4张小图对应4个4*1的神经网络,这四个小神经网络共享权值KernalW。


在人工神经网络中,一个非输入神经元表征了某种特征,一个非输入神经元又可以由与之相关的前层连接表示,通过权重的还原,我们可以看到每个神经元代表的特征,神经元特征是逐层具象化。在卷积神经网络中,卷积核是神经元之间的连接权重,如果只用来训练局部,可以代表局部某种特征,但是它被一个特征图共享,用来训练整个特征图,代表了比较通用(适用于全图)的某种的特征。我们往往在卷积神经网络中设置多个卷积层,在一个卷积层中设置多个卷积核,以得到丰富的特征供尾部的分类器使用。

6.       CNN训练过程中的三次卷积过程

在神经网络的训练中包含兴奋前向传递错误信号反向传递权重修改三个过程,在卷积神经网络的训练过程中存在三次卷积过程与之对应。这三次卷积分别是前向过程的图像卷积错误反向传导过程中的错误传导卷积权值更新卷积。前向图像卷积、权值更新卷积采用的是valid卷积模式,错误信号传导卷积采用的是full卷积模式。卷积过程可以通过切割小图训练神经网络的方式论证。 

卷积神经网络的一次迭代训练分为三个过程。第一个过程为由原始兴奋输入,经过前向卷积和子采样过程以及后层分类器的前向过程得到分类器的输出。第二个过程为由分类器输出和教师信号得到末层网络的错误信号,并根据梯度下降法将错误信号依次往前传递到所有非输入层的神经元中。第三个过程为根据神经元上的错误信号以及神经元的输出更新网络的权重,包括后层分类器的权重更新和卷积核更新。在特征抽取器通过三次卷积完成以上三个过程中。

7.       前向过程的卷积

前向过程的卷积为典型valid的卷积过程,即卷积核kernalW覆盖在输入图inputX上,对应位置求积再求和得到一个值并赋给输出图OutputY对应的位置。每次卷积核在inputX上移动一个位置,从上到下从左到右交叠覆盖一遍之后得到输出矩阵outputY。如果卷积核的输入图inputX为Mx*Nx大小,卷积核为Mw*Nw大小,那么输出图Y为(Mx-Mw+1)*(Nx-Nw+1)大小。

8.       错误反向传导过程的卷积

在错误信号反向传播过程中,先按照神经网络的错误反传方式得到尾部分类器中各神经元的错误信号,然后错误信号由分类器向前面的特征抽取器传播。错误信号从子采样层的特征图(subFeatureMap)往前面卷积层的特征图(featureMap)传播要通过一次full卷积过程来完成。这里的卷积和上一节卷积的略有区别。如果卷积核kernalW的长度为Mw*Mw的方阵,那么subFeatureMap的错误信号矩阵Q_err需要上下左右各拓展Mw-1行或列,与此同时卷积核自身旋转180度。subFeatureMap的错误信号矩阵P_err等于featureMap的误差矩阵Q_err卷积旋转180度的卷积核W_rot180。 


9.       权值更新过程中的卷积

卷积神经网络中卷积层的权重更新过程本质是卷积核的更新过程。由神经网络的权重修改策略,我们知道一条连接权重的更新量为该条连接的前层神经元的兴奋输出乘以后层神经元的输入错误信号,卷积核的更新也是按照这个规律来进行。


在前向卷积过程中,卷积核的每个元素(链接权重)被使用过四次,所以卷积核每个元素的产生四个更新量。把前向卷积过程当做切割小图进行多个神经网络训练过程,我们得到四个4*1的神经网络的前层兴奋输入和后层输入错误信号。


根据神经网络的权重修改策略,我们可以算出如卷积核的更新量W_delta。权重更新量W_delta可由P_out和Q_err卷积得到。


10.   卷积的作用

训练之后的卷积核有些能突显图像的边缘特征,有些能对原图产生了震颤效果。通过丰富的卷积核,卷积可以提炼原题的某些特征,同时模型将对目标在产生偏移、缩放或者轻微形变的时候变得鲁棒。


两个固定的卷积核

我们可以将第一层卷积核固定,设置为特定的算子,如边沿检测算子,平移算子,模糊算子。每个卷积核处理完一个特征图之后得到一个新的特征图,多个卷积可以得到多个特征图,这个过程相当于增加了训练集,相当于对模型进行了数据增量训 练,使模型的鲁棒性更好。

1 0
原创粉丝点击