一种基于并列卷积单元的深度卷积神经网络方法与流程

文档序号:13877382阅读:341来源:国知局
一种基于并列卷积单元的深度卷积神经网络方法与流程

本发明涉及模式识别、计算机视觉和图像处理领域,特别涉及基于深度卷积神经网络的图像分类和物体识别的方法。



背景技术:

近几年来,基于卷积神经网络思想的深度学习模型广泛的应用于计算机视觉领域的图像分类、目标识别、物体检测等多个任务上,并且取得了显著的效果。

卷积神经网络(cnns,convolutionalneuralnetworks)提供了一种端到端的学习模型,通常由若干个卷积层、激活层和池化层交替组成。其中,卷积层通过卷积核与输入特征做卷积运算进行特征提取,可以学习到分级的特征。浅层卷积层主要提取边缘、方向等信息,深层卷积层则用于提取深层次的语义结构特征。因此,卷积滤波器决定了提取到的特征的质量,对于卷积神经网络的性能至关重要。

为了提高卷积神经网络的性能,相关研究人员提出了很多又深又宽的网络结构,这些网络结构都有很多个卷积滤波器,从而导致网络有很多参数,降低了计算效率,增加了计算复杂度。为了减少网络参数,降低计算复杂度,[1]和[2]提出了两种方法。[1]中提出了一种简化的卷积(simplifiedconvolution)。该方法按照传统卷积的原理把传统的卷积分为两步执行,第一步提取特征通道内信息,由输入特征卷积得到中间响应特征,在该过程中,输入特征与中间特征一一对应,并且每个中间响应特征中的响应点,其只与相对应的输入特征有关;第二步提取特征通道间信息,由中间响应特征得到输出特征,在该过程中,每个输出特征中的每个响应点由所有的中间响应特征中相同位置响应点生成,与其他响应点无关。[2]中提出了一种移动网络(mobilenets),该网络根据因式分解把卷积分为滤波和组合两个过程,滤波过程中,对每个输入特征采用单独的滤波器;组合过程中,采用尺寸为1的滤波器对滤波器过程输出的特征进行组合,得到滤波器过程输出特征的线性组合。

以上两种方法虽然能够减少网络参数,降低计算复杂度,但是会在第一个过程中丢失部分信息,影响网络分类性能。为了减少信息损失,本专利提出了一种新的方法,用于进一步提升深度卷积神经网络的性能。

参考文献

[1]sunm,songz,jiangx,etal.learningpoolingforconvolutionalneuralnetwork[j].neurocomputing,2017,224:96-104.

[2]howardag,zhum,chenb,etal.mobilenets:efficientconvolutionalneuralnetworksformobilevisionapplications.corr,abs/1704.04861,2017.



技术实现要素:

本专利申请提供一种基于并列卷积单元的深度神经网络方法,以解决现有技术中简化传统卷积后网络性能下降的问题,该方法能够有效地提取特征,提高网络分类性能。为了解决上述问题,本发明提供如下的技术方案:

一种基于并列卷积单元的深度卷积神经网络方法,其训练阶段包括下列步骤:

1)收集数据:收集不同类别的图像,并标记数据的标签;

2)结构设计:定义并列卷积单元由一个简化卷积和一个简化卷积的变形并列组成,其中,简化卷积的变形是将原简化卷积中采用的两个滤波器的位置进行互换,设置深度卷积神经网络结构,包括并列卷积单元的数量及组合方式,设定每个卷积层特征图的个数和大小,设定池化方式及池化窗口尺寸;

3)初始化:通过随机初始化的方法对卷积核的参数进行初始化,并设定迭代次数。

4)前向计算:把训练数据批量输入到该网络中,

(1)当第一个卷积层计算结束后,输出特征尺寸为a×b×c,其中a×b表示特征图的大小,c表示特征通道数;

(2)设第二个卷积层的两个滤波器为w×h×1×z和1×1×z×z,其中z与c相等,将第二个卷积层与第一个卷积层的输出特征做卷积,输出特征尺寸均为a×b×c;

(3)第三个卷积层的滤波器w×h×1×z与第二层的滤波器1×1×z×z的输出特征做卷积,输出特征尺寸为a×b×c,第三层的滤波器1×1×z×z与第二层的滤波器w×h×1×z的输出特征做卷积,输出特征尺寸为a×b×c,第三层两个滤波器的输出特征合并作为第三层的输出特征,尺寸为a×b×(c×2),作为下一层的输入特征;

(4)按照步骤(1)-(3)计算后续的卷积层;

(5)反向传播:从最后一层到第一层,应用反向传播算法backpropagation对卷积滤波器的权重参数的进行更新、优化;

(6)迭代:重复步骤3和步骤4,通过迭代来不断优化网络参数,直到达到终止条件,本示例的终止条件为达到最大迭代次数。

本方法具有下列一些有益效果:

1、程序简单,易于实现。

2、与简化的卷积相比,有更好的性能。

3、具有较强的泛化能力。

附图说明

图1两种卷积结构图,(a)为简化的卷积,(b)为并列卷积单元

图2两种卷积示意图,(a)为简化的卷积,(b)为并列卷积单元

图3实验所用的卷积神经网络结构示意图

具体实施方式

本发明最为关键的构思在于:本发明先构建了并列卷积单元,并以此卷积单元为基础构建深层卷积神经网络,训练该卷积神经网络得到一个良好的分类器,用此分类器进行图像分类,具有准确率高的优点。本专利可以应用于图像分类任务,但不局限于此任务。该卷积神经网络可以应用于深度学习的诸多任务。

本专利提供了一种基于并列卷积单元提高深度卷积神经网络性能的方法,卷积神经网络系统主要包括两个阶段:训练阶段和测试阶段,本发明同时应用于两个阶段。

传统的卷积滤波器的数学表示形式为w×h×m×n,其中w是滤波器的宽,h是滤波器的高,m是滤波器的输入特征数,n是滤波器的输出特征数。图1是两种卷积的滤波器表示形式,(a)是简化卷积,(b)是并列卷积单元。其中x×y×z是输入特征,x表示输入特征的宽,y表示输入特征的高,z表示输入特征的通道数;w×h×1×z和1×1×z×z是两个卷积滤波器,w×h×1×z滤波器表示输入特征与输出特征一一对应,每个输出特征只由相对应的输入特征卷积得到,1×1×z×z滤波器表示输入特征数与输出特征数相同。

为了更直观地描述两种方法的思想,用图2所示的例子描述了低维情况下简化的卷积和并列卷积单元。图中矩形框代表特征图,矩形框中的点代表神经元,空心点代表未画出的神经元,不同颜色的特征代表由不同的卷积滤波器得到。

对于简化的卷积,从图1(a)可以看出,该方法先用滤波器w×h×1×z对输入做卷积,再用滤波器1×1×z×z对滤波器w×h×1×z的输出做卷积。从图2(a)可以看到,滤波器w×h×1×z的输出为蓝色特征,滤波器1×1×z×z的输出为红色特征。最终,简化的卷积得到的输出特征中指包含红色的特征。

对于并列卷积单元,从图1(b)可以看出,它有两个分支,一个分支为简化的卷积,先使用滤波器w×h×1×z,再使用滤波器1×1×z×z;另一个分支为简化的卷积的变形,先使用滤波器1×1×z×z,再使用滤波器w×h×1×z。这样做,会同时使用滤波器w×h×1×z和滤波器1×1×z×z对输入做卷积。从图2(b)中可以看到,用两种滤波器同时对输入做卷积,可以直接得到两种颜色的特征,同时,并列卷积单元的输出特征中也包含两种特征。与简化的卷积相比,并列卷积单元能够从输入特征中得到更多的信息,输出特征的种类数多于简化的卷积,增加了特征的多样性。

上述是对本专利的直观描述。

为了验证本专利提出方法的效果,我们通过把[1]提出的网络结构中简化的卷积改为并列卷积单元,在图像分类的验证集上验证。实验数据为cifar数据库图像,为了防止过拟合,采用数据增强。数据增强的方式为平移和翻转。通过实验比较了[1]中提出的采用简化的卷积的网络结构和采用本文提出的并列卷积单元的网络结构的性能。

表1两种结构在cifar数据库的分类错误率

其中:a:采用简化的卷积的网络结构;b:采用本文提出的并列卷积单元的网络结构;cifar+表示带有数据增强的数据集。

下面结合实施例对本发明进行说明。

将本发明应用于图像分类任务时,主要包含三个阶段,分别是:准备数据库;训练阶段;测试阶段。

准备数据库:

1、收集数据:收集不同类别的图像,并标记数据的标签,标签为图像的类别。图像的尺寸可以为任意大小,可以根据图像尺寸调整网络结构。但在本示例中,图像的尺寸为32×32,并采用平移和随机翻转的方式进行数据增强。

2、划分数据集:把收集的数据划分为三部分:训练集、验证集和测试集。训练集用来训练神经网络模型,验证集用来选择最好的模型,测试集用来测试模型效果。

训练阶段:

1)结构设计:设置深度卷积神经网络结构,结构如图3所示。该结构一共包含13个卷积层,共采用了21个卷积滤波器,每个滤波器后都加上了批归一化(batchnormalization),每个批归一化后都采用了线性修正单元(relu)作为激活函数。第六、九个卷积层后添加最大池化层(maxpooling)和随机丢弃层(dropout),最大池化层采用3×3模板,随机丢弃层的丢弃概率为0.5。第十三个卷积层后添加了全局平均池化层(globalaveragepooling)。第一、四、七、十、十三层均有一个滤波器,每个卷积核的大小均为3×3,通道数分别为128、192、256、512、10,其中,第十三层的通道数10代表分类的类别数。第二、三、五、六、八、九、十一、十二层均包含两个滤波器,卷积核大小分别为3×3和1×1,其中,第二、三层卷积通道数为128,第五、六层卷积通道数为192,第八、九层卷积通道数为256,第十一、十二层卷积通道数为512。

2)初始化:确定卷积滤波器权重,根据步骤1中的卷积核大小和卷积通道数,通过随机初始化的方法对参数进行初始化,方差为0.01,标准差为0。迭代次数为230次,冲量大小为0.9,学习率为0.1,这些数据仅是本示例中采用的数据,可以根据具体需求改变。

3)前向计算:把训练数据批量输入到该网络中。

(7)当第一个卷积层计算结束后,输出特征尺寸为a×b×c,其中a×b表示特征图的大小,c表示特征通道数(以a×b×c=32×32×128为例进行说明);

(8)第二个卷积层的两个滤波器3×3×1×128和1×1×128×128与第一层的输出特征做卷积,输出特征尺寸均为32×32×128;

(9)第三层的滤波器3×3×1×128与第二层的滤波器1×1×128×128的输出特征做卷积,输出特征尺寸为32×32×128,第三层的滤波器1×1×128×128与第二层的滤波器3×3×1×128的输出特征做卷积,输出特征尺寸为32×32×128,第三层两个滤波器的输出特征合并作为第三层的输出特征,尺寸为32×32×(128×2),作为下一层的输入特征;

(10)按照步骤(1)-(3)计算后续的卷积层。

4)反向传播:从最后一层到第一层,应用反向传播算法(backpropagation)对卷积滤波器的权重参数的进行更新、优化,;

5)迭代:重复步骤3和步骤4,通过迭代来不断优化网络参数,直到达到终止条件,本示例的终止条件为达到最大迭代次数(230)。

测试阶段:

1、准备好测试集的数据,调用设计好的网络结构和训练好的网络参数,将训练数据批量输入到网络中。

2、前向计算,将数据依次输入到网络中的各层,计算特征。

3、输出每张图像分为各类的概率,并选择概率最大的类别作为该图像最终的图像分类结果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1