一种有效减少图像分类任务中神经网络过拟合的方法转让专利

申请号 : CN201910957831.0

文献号 : CN110796177B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钱乐旦周潇张笑钦樊明宇李毅

申请人 : 温州大学

摘要 :

本发明提供了一种有效减少图像分类任务中神经网络过拟合的方法,包括以下步骤:步骤S1、基于图像给定一个网络模型;步骤S2、将Sequence‑Dropout Block置入到模型的卷积层block中间或模型的全连接层的后面。本发明具有以下有益效果:能有效的减少图像分类任务中神经网络过拟合现象,最大程度的保留重要特征,使图像的模型在学习的过程中保持识别精度同时提高泛化能力。

权利要求 :

1.一种有效减少图像分类任务中神经网络过拟合的方法,其特征在于,包括以下步骤:步骤S1、基于图像给定一个网络模型;

步骤S2、将Sequence‑Dropout Block置入到模型的卷积层block中间或模型的全连接层的后面;

所述的步骤S2具体包括:

在网络模型的第l层卷积层后添加Sequence‑Dropout Block,模型结构的第l层的卷积变化:fl:Zl‑1→Zl, 在此令参与卷积计算的卷积核为Kl=[k1,k2,...,kC]l,kC为第C通道的卷积核;通过fl卷积变化得到Zl=[z1,z2,…,zC]l,其中zC由

1 2 C′

和Zl‑1=[z ,z ,...,z ]l‑1的卷积计算得到:式(1)中忽略了偏置项,且由该式(1)可知,当前层的值是通过上一层所有通道的和产生,通道间的依赖性就被隐性的嵌入到kC中,为了获取通道的重要程度,并抑制重要程度低的神经元达到网络泛化,在进入下一卷积变化之前进行显式建模通道依赖性,把输出的权重看成是经过特征选择后的每个特征通道的重要性,需要剔除的非重要通道赋值0,留下的重要通道赋值1,最后通过乘法逐通道加权到先前的特征上,完成在通道维度上对原始特征的排序丢弃;

所述的步骤S2具体以下步骤:

步骤S21、通道压缩计算;为了计算图像分类任务中通道的权重值,首先需要获取每通道的全局信息,而在更高层将局部的信息综合起来就能得到全局信息,为此需要对输出Z顺着空间维度方向进行压缩,将每个通道的二维的feature map压缩为一个实数,对Z进行W×H维的压缩计算得到 式中,S的第c个元素通过以下公式计算:输出的实数S维度和输入的特征通道数一致,这个数在某种程度上来讲是有一定的全局感受野,它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野;

步骤S22、通道权重计算;通过步骤S1计算得到了各通道的全局信息,利用这些信息可以显式建模各通道的依赖性,为了实现这个目标,通过学习参数来为每个特征通道生成权重,计算公式如下:

E=fex(S,ω)=g(S,ω)=ω2δ(ω1S)                      (3)公式(3)中,δ是ReLU函数,参数ω1和ω2被学习用来显式的建模特征通道间的相关性为了减少了参数量和计算量,以及使模型块具有更多的非线性,可以更好地拟合通道间复杂的相关性,采用两个Fully Connected层组成一个Bottleneck结构,先通过第一个Fully Connected层,即参数ω1将特征维度降低到1/r,然后经过ReLU激活函数后再通过一个Fully Connected层,即参数ω2升回到原来的维度,得到的E为特征通道的权重值,其维度和特征通道数一致;

步骤S23、排序丢弃计算;通过步骤S22计算得到的E为特征通道的权重值,体现了每个特征通道的重要程度,根据这个权重值丢弃神经元来辅助泛化;首先设定一个丢弃率p对特征通道进行丢弃操作,通常该值设定为0.5,即丢弃一半的特征通道,并在丢弃计算时,首先需要对各特征通道的权重值进行排序,然后通过排序计算后,重新校正特征通道的权重值,对需要丢弃的非重要特征通道,将权重值重新赋值为0,表示该特征通道需要丢弃,而对重要的特征通道,赋值其权重值为1,表示不需要丢弃;

通过计算后,得到的通道权重序列由0和1组成的序列值;最终的模块输出值是由重新赋值后的通道权重序列E,对原始卷积变化的输出z进行重新调节得到:公式(4)中,fsd(·)为对应通道乘积计算,特征映射 模块输出

说明书 :

一种有效减少图像分类任务中神经网络过拟合的方法

技术领域

[0001] 本发明涉及图像处理领域,特别涉及一种有效减少图像分类任务中神经网络过拟合的方法。

背景技术

[0002] 在神经网络的发展历程中,分布式表征(Distributed Representation)和反向传播算法的提出解决了感知器无法解决异或门(XOR gate)的难题,实现多层感知的计算,而
随着深度学习理论的提出和数值计算设备的改进,使得神经网络成功应用于计算机视觉、
语音识别、记忆网络、自然语言处理等其他领域。然而神经网络仍脱离不了现实应用中的窘
境,模型的参数太多,训练样本又太少,训练出来的模型很容易产生过拟合的现象。
[0003] 卷积神经网络属于神经网络中的一种,大量的研究表明该网络是解决各种视觉任务的有效模型。然而随着网络层数的增加,网络模型无可避免的出现退化问题,在现有技术
中利用shortcut connection来学习残差函数,使得卷积网络更容易优化,不仅增加了网络
层数,也使性能得到很大的提高。但是随着超参数数量的增加(比如通道数,卷积核大小
等),网络设计的难度和计算开销也会增加,接着出现了采用堆叠的思想和split‑
transform‑merge思想,通过增加Cardinality(the  size of the  set  of 
transformations),实现在不增加参数复杂度的前提下提高了准确率。而网络层间连接的
重新表示能够使网络更窄、参数更少,使得特征和梯度的传递更加有效,网络也就更加容易
训练。以上的大部分研究工作的目标都是集中在减少模型和计算复杂度上面,对各特征通
道的依赖性进行建模,可以对特征进行逐通道调整,实现feature通道自适应校准,在增加
少量额外的计算下提高了模型的精度。
[0004] 过拟合是深度神经网(DNN)中的一个常见问题,为了减少overfitting 神经科学社区(neuroscience community)已进行了大量的研究工作。数据集扩增(data 
augmentation)是一种最直接的减少过拟合的方法,更多的训练数据意味着可以用更深的
网络,训练出更好的模型,但数据集的人工标注使得这种方式效率低下。从本质来看,过拟
合就是训练过度导致,因此在模型对训练数据集迭代收敛之前停止迭代可以防止模型过拟
合,然而这种early stopping的方式因为早早的就停止了迭代过程,所以无法保证成本函
数(cost function)尽可能的小。最常见的做法就是直接从成本函数入手,为代价函数添加
正则项对优化的参数进行约束,能够在一定程度上降低过拟合情况。而目前最普遍的研究
是通过修改神经网络本身减少模型的过拟合,称为 Dropout,即在每次训练的时候,随机让
一半的特征检测器停止工作,这样可以提高网络的泛化能力。而Dropout的一大缺点就是
cost function不再明确定义了,每次迭代都会随机的移除一些节点,这样就不太容易去检
查梯度下降的性能了。通常不移除节点的话cost function的值是在不断下降的,但是移除
了节点之后就不一定可以保证cost function单调递减。Sequence‑Dropout 摒弃了
Dropout随机性剔除神经元的做法,而是依据通道权重值选择性的剔除神经元,能够实现在
相同神经元数目下即保证了重要特征的遗留,又减少神经元之间复杂的共适应关系,能够
使网络对丢失特定神经元连接的鲁棒性提高。
[0005] 在训练神经网络的时候经常会遇到过拟合的问题,过拟合具体表现在:模型在训练数据上损失函数较小,预测准确率较高,但是在测试数据上损失函数比较大,预测准确率
较低。如果模型过拟合,那么得到的模型几乎不能用。为了解决过拟合问题,一般会采用模
型集成的方法,即训练多个模型进行组合。此时,训练模型费时就成为一个严重的问题,不
仅训练多个模型费时,测试多个模型也是很费时。

发明内容

[0006] 本发明的目的在于提供一种有效减少图像分类任务中神经网络过拟合的方法,能有效的减少图像分类任务中神经网络过拟合现象,最大程度的保留重要特征,使图像的模
型在学习的过程中保持识别精度同时提高泛化能力。
[0007] 本发明的上述技术目的是通过以下技术方案得以实现的:一种有效减少图像分类任务中神经网络过拟合的方法,包括以下步骤:
[0008] 步骤S1、基于图像给定一个网络模型;
[0009] 步骤S2、将Sequence‑Dropout Block置入到模型的卷积层block中间或模型的全连接层的后面。
[0010] 进一步设置是所述的步骤S2具体包括:
[0011] 在网络模型的第l层卷积层后添加Sequence‑Dropout Block,模型结构的第l层的卷积变化:fl:Zl‑1→Zl, 在此令参与卷积计算的卷积核为
Kl=[k1,k2,...,kC]l,kC为第C通道的卷积核。通过fl卷积变化得到Zl=[z1,z2,...,zC]l,其
1 2 C′
中zC由 和Zl‑1=[z ,z ,…,z ]l‑1的卷积计算得到:
[0012]
[0013] 式(1)中忽略了偏置项,且由该式(1)可知,当前层的值是通过上一层所有通道的和产生,通道间的依赖性就被隐性的嵌入到kC中,为了获取通道的重要程度,并抑制重要程
度低的神经元达到网络泛化,在进入下一卷积变化之前进行显式建模通道依赖性,把输出
的权重看成是经过特征选择后的每个特征通道的重要性,需要剔除的非重要通道赋值0,留
下的重要通道赋值1,最后通过乘法逐通道加权到先前的特征上,完成在通道维度上对原始
特征的排序丢弃。
[0014] 进一步设置是所述的步骤S2具体以下步骤:
[0015] 步骤S21、通道压缩计算;为了计算图像分类任务中通道的权重值,首先需要获取每通道的全局信息,而在更高层将局部的信息综合起来就能得到全局信息,为此需要对输
出Z顺着空间维度方向进行压缩,将每个通道的二维的feature map压缩为一个实数,对Z进
行W×H维的压缩计算得到 式中,S的第c个元素通过以下公式计算:
[0016]
[0017] 输出的实数S维度和输入的特征通道数一致,这个数在某种程度上来讲是有一定的全局感受野,它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获
得全局的感受野;
[0018] 步骤S22、通道权重计算;通过步骤S1计算得到了各通道的全局信息,利用这些信息可以显式建模各通道的依赖性,为了实现这个目标,通过学习参数来为每个特征通道生
成权重,计算公式如下:
[0019] E=fex(S,W)=g(S,W)=W2δ(W1S)  (3)
[0020] 公式(3)中,δ是ReLU函数,参数W1和W1被学习用来显式的建模特征通道间的相关性为了减少了参数量和计算量,以及使模型块具有更多的非线性,可
以更好地拟合通道间复杂的相关性,采用两个Fully Connected层组成一个Bottleneck结
构,先通过第一个Fully Connected层,即参数W1将特征维度降低到1/r,然后经过ReLU激活
函数后再通过一个Fully Connected层,即参数W2升回到原来的维度,得到的E为特征通道
的权重值,其维度和特征通道数一致;
[0021] 步骤S23、排序丢弃计算;通过步骤S22计算得到的E为特征通道的权重值,体现了每个特征通道的重要程度,根据这个权重值丢弃神经元来辅助泛化;首先设定一个丢弃率p
对特征通道进行丢弃操作,通常该值设定为0.5,即丢弃一半的特征通道,并在丢弃计算时,
首先需要对各特征通道的权重值进行排序,然后通过排序计算后,重新校正特征通道的权
重值,对需要丢弃的非重要特征通道,将权重值重新赋值为0,表示该特征通道需要丢弃,而
对重要的特征通道,赋值其权重值为1,表示不需要丢弃;
[0022] 通过计算后,得到的通道权重序列由0和1组成的序列值;最终的模块输出值是由重新赋值后的通道权重序列E,对原始卷积变化的输出z进行重新调节得到:
[0023]
[0024] 公式(4)中,fsd(·)为对应通道乘积计算,特征映射 模块输出
[0025] 本发明的有益效果是:
[0026] 1、基于本发明所提出的方法,通过学习使用模型结构各通道的全局信息,选择留下重要的特征检测器抑制不太有用的特征,可以明显的减少过拟合现象,这种方法去掉了
Dropout的随机性,能够最大程度的保留模型的重要特征,使图像的模型在学习的过程中保
持识别精度同时提高泛化能力。
[0027] 2、本发明中Sequence‑Dropout Block摒弃了Dropout随机性剔除神经元的做法,而是依据通道权重值选择性的剔除神经元,能够实现在相同神经元数目下即保证了重要特
征的遗留,又减少神经元之间复杂的共适应关系,能够使网络对丢失特定神经元连接的鲁
棒性提高。

附图说明

[0028] 图1为本发明中加入Sequence‑Dropout Block后的网络模型示意图;
[0029] 图2为本发明中模块输出示意图;
[0030] 图3为本发明中将224×224的图像作为输入,并分别带有Dropout和 Sequence‑Dropout的VGG16模型架构、ResNet50模型架构;
[0031] 图4为本发明中不同结构的多层感知器(MLP)和卷积神经网络(CNN) 在MNIST数据集上的比较;
[0032] 图5为本发明中原始模型与SDNet模型在CIFAR‑10和CIFAR‑100数据集上的测试准确率;
[0033] 图6为本发明中VGG16和SDNet‑VGG16,ResNet50和SDNet‑ResNet50 模型分别在CIFAR10和CIFAR100数据集上的测试准备率;
[0034] 图7为本发明中SD应用于VGG16和ResNet50在ImagNet2012数据集上的最佳测试结果;
[0035] 图8为本发明中ImagNet2012数据集上的验证曲线,(左边)VGG16和 SDNet‑VGG16;(右边)ResNet50和SDNet‑ResNet50;
[0036] 图9为本发明中Places365‑Standard数据集上的top‑1和top‑5正确率。

具体实施方式

[0037] 下面结合附图对本发明做进一步详细描述。
[0038] 一种有效减少图像分类任务中神经网络过拟合的方法,包括以下步骤:
[0039] 步骤S1、基于图像给定一个网络模型;
[0040] 步骤S2、将Sequence‑Dropout Block置入到模型的卷积层block中间或模型的全连接层的后面,参考附图1。
[0041] 进一步设置是所述的步骤S2具体包括:
[0042] 在网络模型的第l层卷积层后添加Sequence‑Dropout Block,模型结构的第l层(l∈[1,L])的卷积变化:fl:Zl‑1→Zl, 在此令参与卷积计算
的卷积核为Kl=[k1,k2,...,kC]l,kC为第C通道的卷积核。通过fl卷积变化得到Zl=[z1,
1 2 C′
z2,...,zC]l,其中zC由 和 Zl‑1=[z ,z ,...,z ]l‑1的卷积计算得到:
[0043]
[0044] 式(1)中忽略了偏置项,且由该式(1)可知,当前层的值是通过上一层所有通道的和产生,通道间的依赖性就被隐性的嵌入到kC中,为了获取通道的重要程度,并抑制重要程
度低的神经元达到网络泛化,在进入下一卷积变化之前进行显式建模通道依赖性,把输出
的权重看成是经过特征选择后的每个特征通道的重要性,需要剔除的非重要通道赋值0,留
下的重要通道赋值1,最后通过乘法逐通道加权到先前的特征上,完成在通道维度上对原始
特征的排序丢弃。
[0045] 进一步设置是所述的步骤S2具体以下步骤:
[0046] 步骤S21、通道压缩计算;为了计算图像分类任务中通道的权重值,首先需要获取每通道的全局信息,而在更高层将局部的信息综合起来就能得到全局信息,为此需要对输
出Z顺着空间维度方向进行压缩,将每个通道的二维的feature map压缩为一个实数,对Z进
行W×H维的压缩计算得到 式中,S的第c个元素通过以下公式计算:
[0047]
[0048] 输出的实数S维度和输入的特征通道数一致,这个数在某种程度上来讲是有一定的全局感受野,它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获
得全局的感受野;
[0049] 步骤S22、通道权重计算;通过步骤S1计算得到了各通道的全局信息,利用这些信息可以显式建模各通道的依赖性,为了实现这个目标,通过学习参数来为每个特征通道生
成权重,计算公式如下:
[0050] E=fex(S,W)=g(S,W)=W2δ(W1S)  (3)
[0051] 公式(3)中,δ是ReLU函数,参数W1和W1被学习用来显式的建模特征通道间的相关性为了减少了参数量和计算量,以及使模型块具有更多的非线性,可
以更好地拟合通道间复杂的相关性,采用两个Fully Connected层组成一个Bottleneck结
构,先通过第一个Fully Connected层,即参数W1将特征维度降低到1/r,然后经过ReLU激活
函数后再通过一个Fully Connected层,即参数W2升回到原来的维度,得到的E为特征通道
的权重值,其维度和特征通道数一致;
[0052] 步骤S23、排序丢弃计算;通过步骤S22计算得到的E为特征通道的权重值,体现了每个特征通道的重要程度,根据这个权重值丢弃神经元来辅助泛化;首先设定一个丢弃率p
对特征通道进行丢弃操作,通常该值设定为0.5,即丢弃一半的特征通道,并在丢弃计算时,
首先需要对各特征通道的权重值进行排序,然后通过排序计算后,重新校正特征通道的权
重值,对需要丢弃的非重要特征通道,将权重值重新赋值为0,表示该特征通道需要丢弃,而
对重要的特征通道,赋值其权重值为1,表示不需要丢弃;
[0053] 通过计算后,得到的通道权重序列由0和1组成的序列值;最终的模块输出值是由重新赋值后的通道权重序列E,对原始卷积变化的输出z进行重新调节得到:
[0054]
[0055] 公式(4)中,fsd(·)为对应通道乘积计算,特征映射 模块输出
[0056] 参考附图2,模块的最终输出结果在spatial dimensions保持不变为 W×H,在空间通道上,相对比Dropout算法,本算法提取了空间通道维度的全局信息,以此来判断各通
道的重要程度,丢弃相对非重要的通道数C*P,保留相对重要的通道数C*(1‑P)。
[0057] 具体实施例验证
[0058] Dropout模块通常置于模型结构的FC层之后实现神经元的随机丢弃,而我们的Sequence‑Dropout模块不仅可以置于FC层之后,也可以置于卷积层 block之间实现卷积层
通道的剔除,图3描述了的图像作为输入,分别带有 Dropout和Sequence‑Dropout的VGG16
模型架构、ResNet50模型架构。
[0059] 通过图3可以了解,包含Dropout的VGG16模型,共有两层Dropout,分别置于第6和第7层的fc全连接层之后,随机剔除的概率设置为0.5,经过Dropout层之后,神经元的数量
由4096变为2048。我们将SD模块应用于VGG16,采用的方案是用SD模块替换Dropout层。对于
SD模块来说,输入为 fc层神经元(1×1×4096),所以SD模块无需进行空间维度上的压缩计
算,剔除率同样设置为0.5,经过SD模块计算后的VGG16神经元的数量同样由4096 变为
2048。
[0060] ResNet50网络通过残差模块使网络变深,在一定程度上解决了梯度消失或者梯度爆炸导致很深网络无法训练。ResNet50模型构架是通过残差模块堆叠在一起实现,卷积层
内的堆叠连接处用1×1卷积核[]将输入维度(通道数) 扩大4倍进行输出,见图3中
ResNet50的conv2层,先进行1×1(c=64)的卷积,然后3×3(c=64)卷积,最后接1×1(c=
256)实现维度的扩大。我们将SD模块应用于ResNet50中的思路是,在原残差模块的输出处
新增SD模块组成一个新的堆叠块,图3中SD后面的内括号指的是两个fc层的输出维度和经
过SD模块计算之后的最终输出维度,与未接SD模块的ResNet50相比, ResNet50‑SD堆叠块
的输出维度降为一半(经过了一个0.5比率的剔除)。图 3中ResNet50‑SD的conv2输出维度
由256降为128,conv3输出维度由512 降为256,conv4输出维度由1024降为512,conv5输出
维度由2048降为1024。
[0061] 模型复杂性:我们通过计算神经网络模型的参数数量来评价模型的复杂程度。对于VGG16模型,Dropout模块只是引入了概率P,在计算过程中未产生相应的学习参数,所以
VGG16‑SD用SD模块替代Dropout模块,学习参数只是新增了SD模块部分。SD模块的参数包含
在门机制的两个全连接层中[],参数的计算数量由下式给出:
[0062]
[0063] 在公式(5)中,r是降低比率,L为卷积层级的数量(如图3中的 conv2,……,conv5),Nl指的是l层级下SD模块的重复次数,Cl为l层级下的输出通道维度。由公式(5)计算
得出,VGG16‑SD相对于原始的VGG16参数新增了3.028%(4.19M)。ResNet50置入SD模块后,
在新增SD模块的参数的同时,减少了堆叠连接时的参数数量,所以最终通过公式(5)计算得
到, ResNet50‑SD与ResNet50相比参数减少2.623%(0.672M)。
[0064] 计算复杂性:我们将224×224大小的图片作为输入,用浮点运算数来评价模型的计算开销。VGG16一次前向传播计算需要~15.470GFLOPs,VGG16‑SD 相对于原始模型,新增
了SD模块的两个全连接层浮点运算,即增加了0.027% (0.00419GFLOPs),结果说明在
VGG16中提出SD模块在计算复杂度方面是完全可接受的。ResNet50一次前向传播计算需要
~3.87GLOPs,ResNet50置入 SD模块后,虽然增加了两个全连接层的浮点运算,但是改变了
每个堆叠块的输出维度,模型在整体上减少了GFLOPs。通过计算,ResNet50‑SD相比原始模
型大概减少了10.22%(0.39566GFLOPs),所以可以看出置入SD模块后, ResNet50的计算开
销得到了明显的降低,当然实际环境中的运行时间还要受 GPU的带宽、代码质量等因素影
响。
[0065] 由此可知,SD模块置入VGG16后,虽然模型的复杂度和计算开销轻微的增加了,但是在实践中完全是可以接受的,通过增加少量的额外付出,模型的正确率得到了很大的提
高(第六部分会进行详细验证)。SD模块置入 RestNet50组成新的堆叠块进行连接,改变了
每个堆叠块的输出维度,模型的复杂度和计算开销都得到降低,实践验证模型的正确率却
得到了提高。
[0066] 具体应用实施例
[0067] 通过大量的实验来评估所提出的Sequence‑Dropout(SD)神经网络,我们的目的是研究它与当前最先进的网络结构(如VGG、Inception、Resnet、 DPN等)集成的能力。为了实
现这个目的,我们使用标准的基准数据集MNIST、 flower、CIFAR‑10和CIFAR‑100、
ImagNet2012、Places365‑Challenge,比较了图像分类任务中MLP(多层感知)、VGG16和
ResNet50网络的分别与 Dropout和SD模块集成的性能。
[0068] 应用实施例1
[0069] MNIST是一个手写数字图像的标准小型数据集,它的训练集有60000个数据,测试集有10000个数据。所有数字图像都经过了归一化和中心化的处理,为28*28像素的固定大
小。在原始数据集中,图像的每个像素都由0到 255之间的值表示,其中0为黑色,255为白
色,任何介于0和255之间表示为不同的灰色.fig3(a)为mnist数据集中的一些图像示例。在
实施例中,我们比较了SD模块和Dropout应用在MLP和其他神经网络的性能,实验结果如图4
所示。在图4中,符号“~”代表标准CNN的层次,在Architecture 栏中,模型结构的最后一层
全连接层(FC层)没有统计在其中。
[0070] 参与实验的MLP模型结构由两个隐藏层构成,包括通道数为100的FC 层和rule激活函数。设置训练pass为100,学习率为0.01并采用随机梯度下降(SGD)进行优化,MLP的准
确率为97.80%,在FC层后跟一个Dropout 层并设置丢弃概率p=0.5,模型的测试准确率得
到了轻微的提高,达到97.86%比原始模型提高了0.06。用SD模块替换Dropout得到SD模型
(SDNet‑MLP) 可以使MLP的测试准确率进一步得到提高,达到98.02%,从实验结果可以看
出,由于模型比较浅,得到准确率并不是很高,而且三种模型之间的性能区分并不明显。为
此,我们使用一个标准的5层卷积神经网络进行实验,随着网络深度的增加,我们将会得到
更好的实验结果。标准的5层结构CNN,测试准确率超过了带SD模块的MLP网络,达到
99.06%,在CNN网络的FC层后面添加概率p=0.5的Dropout块,能够使网络的准确率提高到
99.23%,同样将Dropout块替换为SD模块并设置丢弃率p=0.5,通道压缩率r=16,得到的
模型在准确率上达到了最高的数据,即99.33%。由实验结果可以看出,模型的加深能够更
好的去区分SDNet、Dropout模型和原始网络之间的性能,一个标准的5层结构的CNN拥有超
过4400万个参数,这很难通过早期停止 (early stopping)或其它标准的正则化方法使模
型取得一个好的泛化精度,而通过添加SD模块,我们可以有效的减少模型过拟合而不需要
使用early stopping技术并取得比Dropout更优的实验结果。
[0071] 应用实施例2
[0072] CIFAR‑10和CIFAR‑100是8000万张小图像的标记子集,分别由10个类和100个类的6万张32*32的彩色图像组成。CIFAR‑10数据集每个类有6000 张图像,分为5000张训练图像
和1000张测试图像。而CIFAR‑100数据集构成与CIFAR‑10类似,只是它有100个类,每个类有
600个图像,分为500 幅训练图像和100幅测试图像。本实施例的任务是比较在VGG16和
ResNet 网络通过应用Dropout和SD模块,在CIFAR‑10和CIFAR‑100数据集中的性能表现,实
验结果见图5。
[0073] 由于实验所用的模型深度更深了,这里我们用200个pass来训练所有模型,设置一个初始值为0.1的学习率并采用piecewise_decay机制对学习率进行动态调整,即在第90个
pass时学习率下降10倍,第150个pass时学习率下降100倍。因原始的VGG16模型结构本身包
含两个Dropout层,因此我们无需修改VGG16的结构应用Dropout,直接对它进行实验操作在
CIFAR‑10 上的测试准确率为85.93%,在CIFAR‑100上的准确率为50.84%。用SD模块替换
Dropout单元得到SDNet‑VGG16,准确率可以进一步提高到89.04%和 57.23%,相对原始模
型来说这是一个巨大的改进。ResNet50在CIFAR‑10上可以达到84.82%,在CIFAR‑100上达
到52.6%。通过再在每个残差块中嵌入 SD块,得到SDNet‑ResNet50网络,可在两个数据集
上进一步将准确率提高到84.83%和53.13%。图6为实验的测试情况。
[0074] 应用实施例3
[0075] ImageNet2012数据集是2012年ImageNet大尺度视觉识别挑战(ILSVRC 2012)的比赛的专用数据集。该数据集是1000个图像类别的ImageNet子集,包含120多万张图像的训练
数据和5万张图像的验证数据。由于数据集的图像类别数量比较大,通常我们用top‑1和
top‑5的错误率来评估模型的性能。一般在公共云上使用ImageNet数据集训练模型需要几
天的时间,为了提高训练速度,本实验中我们使用动态批量大小、动态图像大小、矩形图像
验证等技术在ImageNet2012数据集上训练网络,可以减少训练时间,网络的训练结果见图
7。
[0076] 我们设置训练pass为50,初始化学习率为0.1,并且使用上面提到的小技巧来重新训练VGG16模型,得到了top‑1的准确率为72.01%。VGG16模型结构中用SD块替换Dropout单
元得到SDNet‑VGG16模型,模型的大小 (547.6MB)增加3.03%,每秒10亿次浮点运算数
(15.48)增加了0.01,但同时也取得了73.20%的top‑1准确率,虽然相较于原始模型,模型
的复杂度和计算开销有轻微的增加,但完全在可接受范围之内。ResNet50网络减少过拟合
所使用的方法与VGG16利用Dropout减少过拟合方式不同,它通过在每个卷积层之后嵌入批
标准化操作(batch normalization即BN)[37]来实现,而不是在fc层上使用Dropout技术。
ResNet50使用残差块后,模型变的更深而模型大小和计算开销却变的更小,约为VGG16的四
分之一(模型大小: 98.4MB vs.531.5MB;计算开销:3.87GFLOPs vs.15.47GFLOPs),并实现
了更高的top‑1准确率(76.56%)。我们将SD块嵌入到ResNet50的每个残差块的瓶颈结构
中,得到了新的网络模型SDNet‑ResNet50,新模型大小(95.8MB) 和计算开销(3.5GFLOPs)
都得到了降低,并且同时进一步提高了top‑1的准确率,达到78.02%。图8为VGG16和
ResNet50原始模型和应用SD的模型在 ImagNet2012数据集上的验证曲线。
[0077] 应用实施例4
[0078] 在本实施例中,我们将使用Places365‑Standard数据集进一步评估我们所提出的SD模块在更为多样化的场景中的性能。该数据集不同于由单个对象构成图像的
ImageNet2012数据集,它的场景图像数据更为丰富多样,可以作为一种更好的方式来评估
模型概括和抽象处理的能力,因为理解场景图像的任务需要捕获对更高级别的外观变化和
更复杂的数据关联的鲁棒性。 Places365‑Standard数据集是Places365(Places2数据库的
最新子集)的一个版本,分为约180万张的训练用图和365个场景类别的3.65万张验证图片。
[0079] 我们在这个数据集上训练具有不同深度的网络模型,测试结果如图9所示。从结果可以看出,嵌入SD块的模型比原始模型获得了更高的验证准确率。具体地说,SD应用于
VGG16得到SDNet‑VGG16网络的top‑1准确率得到了绝对值1.07%的提高,SDNet‑ResNet50
网络模型的top‑1绝对值比原始模型高出0.6%。另外特别要指出的是,我们在这个任务中
特意训练了更深层的 ResNet152模型(152层),实验结果表明即使在更深层的模型中使用
SD块,网络模型尺寸不仅变小(ResNet152与SDNet‑ResNet152的模型大小对比: 
226MBv.s.220MB),也能保持较高的参数效率和泛化能力。
[0080] 本发明提出了一种称为“Sequence‑Dropout”(SD)的新结构块能够有效的减少过拟合来改进神经网络。这种新的结构应用在神经网络中,能够根据每个通道的全局信息来
对通道(或特征检测器)进行丢弃,打破了反向传播学习过程中建立的协同适应,能够促进
模型的泛化。本发明在MNIST、CIFAR、ImageNet和Places365数据集上进行了图像分类任务,
结合SD块的残差卷积神经网络具有更小的体积、更低的计算成本,也取得了更高的识别精
度,大量实验结果表明了所提的Sequence‑Dropout技术是有效且高效的。
[0081] 以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。