一种有效减少图像分类任务中神经网络过拟合的方法转让专利
申请号 : CN201910957831.0
文献号 : CN110796177B
文献日 : 2021-05-21
发明人 : 钱乐旦 , 周潇 , 张笑钦 , 樊明宇 , 李毅
申请人 : 温州大学
摘要 :
权利要求 :
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(·)为对应通道乘积计算,特征映射 模块输出
说明书 :
一种有效减少图像分类任务中神经网络过拟合的方法
技术领域
背景技术
随着深度学习理论的提出和数值计算设备的改进,使得神经网络成功应用于计算机视觉、
语音识别、记忆网络、自然语言处理等其他领域。然而神经网络仍脱离不了现实应用中的窘
境,模型的参数太多,训练样本又太少,训练出来的模型很容易产生过拟合的现象。
中利用shortcut connection来学习残差函数,使得卷积网络更容易优化,不仅增加了网络
层数,也使性能得到很大的提高。但是随着超参数数量的增加(比如通道数,卷积核大小
等),网络设计的难度和计算开销也会增加,接着出现了采用堆叠的思想和split‑
transform‑merge思想,通过增加Cardinality(the size of the set of
transformations),实现在不增加参数复杂度的前提下提高了准确率。而网络层间连接的
重新表示能够使网络更窄、参数更少,使得特征和梯度的传递更加有效,网络也就更加容易
训练。以上的大部分研究工作的目标都是集中在减少模型和计算复杂度上面,对各特征通
道的依赖性进行建模,可以对特征进行逐通道调整,实现feature通道自适应校准,在增加
少量额外的计算下提高了模型的精度。
augmentation)是一种最直接的减少过拟合的方法,更多的训练数据意味着可以用更深的
网络,训练出更好的模型,但数据集的人工标注使得这种方式效率低下。从本质来看,过拟
合就是训练过度导致,因此在模型对训练数据集迭代收敛之前停止迭代可以防止模型过拟
合,然而这种early stopping的方式因为早早的就停止了迭代过程,所以无法保证成本函
数(cost function)尽可能的小。最常见的做法就是直接从成本函数入手,为代价函数添加
正则项对优化的参数进行约束,能够在一定程度上降低过拟合情况。而目前最普遍的研究
是通过修改神经网络本身减少模型的过拟合,称为 Dropout,即在每次训练的时候,随机让
一半的特征检测器停止工作,这样可以提高网络的泛化能力。而Dropout的一大缺点就是
cost function不再明确定义了,每次迭代都会随机的移除一些节点,这样就不太容易去检
查梯度下降的性能了。通常不移除节点的话cost function的值是在不断下降的,但是移除
了节点之后就不一定可以保证cost function单调递减。Sequence‑Dropout 摒弃了
Dropout随机性剔除神经元的做法,而是依据通道权重值选择性的剔除神经元,能够实现在
相同神经元数目下即保证了重要特征的遗留,又减少神经元之间复杂的共适应关系,能够
使网络对丢失特定神经元连接的鲁棒性提高。
较低。如果模型过拟合,那么得到的模型几乎不能用。为了解决过拟合问题,一般会采用模
型集成的方法,即训练多个模型进行组合。此时,训练模型费时就成为一个严重的问题,不
仅训练多个模型费时,测试多个模型也是很费时。
发明内容
型在学习的过程中保持识别精度同时提高泛化能力。
Kl=[k1,k2,...,kC]l,kC为第C通道的卷积核。通过fl卷积变化得到Zl=[z1,z2,...,zC]l,其
1 2 C′
中zC由 和Zl‑1=[z ,z ,…,z ]l‑1的卷积计算得到:
度低的神经元达到网络泛化,在进入下一卷积变化之前进行显式建模通道依赖性,把输出
的权重看成是经过特征选择后的每个特征通道的重要性,需要剔除的非重要通道赋值0,留
下的重要通道赋值1,最后通过乘法逐通道加权到先前的特征上,完成在通道维度上对原始
特征的排序丢弃。
出Z顺着空间维度方向进行压缩,将每个通道的二维的feature map压缩为一个实数,对Z进
行W×H维的压缩计算得到 式中,S的第c个元素通过以下公式计算:
得全局的感受野;
成权重,计算公式如下:
以更好地拟合通道间复杂的相关性,采用两个Fully Connected层组成一个Bottleneck结
构,先通过第一个Fully Connected层,即参数W1将特征维度降低到1/r,然后经过ReLU激活
函数后再通过一个Fully Connected层,即参数W2升回到原来的维度,得到的E为特征通道
的权重值,其维度和特征通道数一致;
对特征通道进行丢弃操作,通常该值设定为0.5,即丢弃一半的特征通道,并在丢弃计算时,
首先需要对各特征通道的权重值进行排序,然后通过排序计算后,重新校正特征通道的权
重值,对需要丢弃的非重要特征通道,将权重值重新赋值为0,表示该特征通道需要丢弃,而
对重要的特征通道,赋值其权重值为1,表示不需要丢弃;
Dropout的随机性,能够最大程度的保留模型的重要特征,使图像的模型在学习的过程中保
持识别精度同时提高泛化能力。
征的遗留,又减少神经元之间复杂的共适应关系,能够使网络对丢失特定神经元连接的鲁
棒性提高。
附图说明
具体实施方式
的卷积核为Kl=[k1,k2,...,kC]l,kC为第C通道的卷积核。通过fl卷积变化得到Zl=[z1,
1 2 C′
z2,...,zC]l,其中zC由 和 Zl‑1=[z ,z ,...,z ]l‑1的卷积计算得到:
度低的神经元达到网络泛化,在进入下一卷积变化之前进行显式建模通道依赖性,把输出
的权重看成是经过特征选择后的每个特征通道的重要性,需要剔除的非重要通道赋值0,留
下的重要通道赋值1,最后通过乘法逐通道加权到先前的特征上,完成在通道维度上对原始
特征的排序丢弃。
出Z顺着空间维度方向进行压缩,将每个通道的二维的feature map压缩为一个实数,对Z进
行W×H维的压缩计算得到 式中,S的第c个元素通过以下公式计算:
得全局的感受野;
成权重,计算公式如下:
以更好地拟合通道间复杂的相关性,采用两个Fully Connected层组成一个Bottleneck结
构,先通过第一个Fully Connected层,即参数W1将特征维度降低到1/r,然后经过ReLU激活
函数后再通过一个Fully Connected层,即参数W2升回到原来的维度,得到的E为特征通道
的权重值,其维度和特征通道数一致;
对特征通道进行丢弃操作,通常该值设定为0.5,即丢弃一半的特征通道,并在丢弃计算时,
首先需要对各特征通道的权重值进行排序,然后通过排序计算后,重新校正特征通道的权
重值,对需要丢弃的非重要特征通道,将权重值重新赋值为0,表示该特征通道需要丢弃,而
对重要的特征通道,赋值其权重值为1,表示不需要丢弃;
道的重要程度,丢弃相对非重要的通道数C*P,保留相对重要的通道数C*(1‑P)。
通道的剔除,图3描述了的图像作为输入,分别带有 Dropout和Sequence‑Dropout的VGG16
模型架构、ResNet50模型架构。
由4096变为2048。我们将SD模块应用于VGG16,采用的方案是用SD模块替换Dropout层。对于
SD模块来说,输入为 fc层神经元(1×1×4096),所以SD模块无需进行空间维度上的压缩计
算,剔除率同样设置为0.5,经过SD模块计算后的VGG16神经元的数量同样由4096 变为
2048。
内的堆叠连接处用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。
VGG16‑SD用SD模块替代Dropout模块,学习参数只是新增了SD模块部分。SD模块的参数包含
在门机制的两个全连接层中[],参数的计算数量由下式给出:
得出,VGG16‑SD相对于原始的VGG16参数新增了3.028%(4.19M)。ResNet50置入SD模块后,
在新增SD模块的参数的同时,减少了堆叠连接时的参数数量,所以最终通过公式(5)计算得
到, ResNet50‑SD与ResNet50相比参数减少2.623%(0.672M)。
了SD模块的两个全连接层浮点运算,即增加了0.027% (0.00419GFLOPs),结果说明在
VGG16中提出SD模块在计算复杂度方面是完全可接受的。ResNet50一次前向传播计算需要
~3.87GLOPs,ResNet50置入 SD模块后,虽然增加了两个全连接层的浮点运算,但是改变了
每个堆叠块的输出维度,模型在整体上减少了GFLOPs。通过计算,ResNet50‑SD相比原始模
型大概减少了10.22%(0.39566GFLOPs),所以可以看出置入SD模块后, ResNet50的计算开
销得到了明显的降低,当然实际环境中的运行时间还要受 GPU的带宽、代码质量等因素影
响。
高(第六部分会进行详细验证)。SD模块置入 RestNet50组成新的堆叠块进行连接,改变了
每个堆叠块的输出维度,模型的复杂度和计算开销都得到降低,实践验证模型的正确率却
得到了提高。
现这个目的,我们使用标准的基准数据集MNIST、 flower、CIFAR‑10和CIFAR‑100、
ImagNet2012、Places365‑Challenge,比较了图像分类任务中MLP(多层感知)、VGG16和
ResNet50网络的分别与 Dropout和SD模块集成的性能。
小。在原始数据集中,图像的每个像素都由0到 255之间的值表示,其中0为黑色,255为白
色,任何介于0和255之间表示为不同的灰色.fig3(a)为mnist数据集中的一些图像示例。在
实施例中,我们比较了SD模块和Dropout应用在MLP和其他神经网络的性能,实验结果如图4
所示。在图4中,符号“~”代表标准CNN的层次,在Architecture 栏中,模型结构的最后一层
全连接层(FC层)没有统计在其中。
确率为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更优的实验结果。
和1000张测试图像。而CIFAR‑100数据集构成与CIFAR‑10类似,只是它有100个类,每个类有
600个图像,分为500 幅训练图像和100幅测试图像。本实施例的任务是比较在VGG16和
ResNet 网络通过应用Dropout和SD模块,在CIFAR‑10和CIFAR‑100数据集中的性能表现,实
验结果见图5。
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为实验的测试情况。
数据和5万张图像的验证数据。由于数据集的图像类别数量比较大,通常我们用top‑1和
top‑5的错误率来评估模型的性能。一般在公共云上使用ImageNet数据集训练模型需要几
天的时间,为了提高训练速度,本实验中我们使用动态批量大小、动态图像大小、矩形图像
验证等技术在ImageNet2012数据集上训练网络,可以减少训练时间,网络的训练结果见图
7。
元得到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数据集上的验证曲线。
ImageNet2012数据集,它的场景图像数据更为丰富多样,可以作为一种更好的方式来评估
模型概括和抽象处理的能力,因为理解场景图像的任务需要捕获对更高级别的外观变化和
更复杂的数据关联的鲁棒性。 Places365‑Standard数据集是Places365(Places2数据库的
最新子集)的一个版本,分为约180万张的训练用图和365个场景类别的3.65万张验证图片。
VGG16得到SDNet‑VGG16网络的top‑1准确率得到了绝对值1.07%的提高,SDNet‑ResNet50
网络模型的top‑1绝对值比原始模型高出0.6%。另外特别要指出的是,我们在这个任务中
特意训练了更深层的 ResNet152模型(152层),实验结果表明即使在更深层的模型中使用
SD块,网络模型尺寸不仅变小(ResNet152与SDNet‑ResNet152的模型大小对比:
226MBv.s.220MB),也能保持较高的参数效率和泛化能力。
对通道(或特征检测器)进行丢弃,打破了反向传播学习过程中建立的协同适应,能够促进
模型的泛化。本发明在MNIST、CIFAR、ImageNet和Places365数据集上进行了图像分类任务,
结合SD块的残差卷积神经网络具有更小的体积、更低的计算成本,也取得了更高的识别精
度,大量实验结果表明了所提的Sequence‑Dropout技术是有效且高效的。