一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于深度学习模型转换的图像分类鲁棒性提升方法

2022-11-30 11:26:38 来源:中国专利 TAG:


1.本发明涉及图像分类和深度学习模型修复技术领域,特别是涉及一种基于深度学习模型转换的图像分类鲁棒性提升方法。


背景技术:

2.近年来,深度学习技术备受研究者关注,在工业实践中以及在图像处理、机器翻译和软件工程等学术研究中得到广泛应用,特别是一些与安全息息相关的应用场景,比如自动驾驶和飞机防撞。然而正如现有研究报告的那样,深度学习模型在面临扰动时十分脆弱,因此很容易受到黑客攻击。例如,腾讯科恩安全实验室的研究人员成功地用三个小的对抗性贴纸图像欺骗了特斯拉model s的车道检测系统,使其在没有任何警告或预防措施的情况下转向错误的车道。因此,面对潜在的对抗性攻击,如何确保深度学习模型的安全性和增强其对抗性鲁棒性至关重要。
3.将深度学习模型应用于图像分类的研究方向是利用深度学习模型的基于一组输入示例构建,将根据预定义的神经网络结构学习具有一组参数的模型,满足图像分类等功能要求。由于输入示例的数量有限,在完成图像分类时所需的完整的输入空间通常是巨大的或无限的,因此无法很好地处理深度学习模型没有见过的输入,尤其是那些带有精心设计的攻击特征的样本。
4.为了提高深度学习模型在面对对抗性输入时的鲁棒性,在过去十年中提出了许多防御方法。现有的方法通常可以分为两类。第一类旨在通过离线训练过程增强学习模型本身的鲁棒性,例如防御蒸馏、特征压缩、对抗训练等。而另一类旨在设计一种能够区分对抗性输入和良性输入的检测方法,每次提供新的输入时,都需要一个在线检测过程。本发明依据第一类的以离线方式提高图像分类模型的内在(通用)鲁棒性。
[0005]“对抗训练”方法将一组对抗性示例作为增强输入,使用现有模型进行重训练过程,在此过程中模型架构保持不变,根据提供的示例调整参数。各种对抗训练方法的差异在于对抗样本的生成算法,该算法负责将扰动添加到良性示例中。例如,fgsm(fast gradient sign method)通过利用相应的训练梯度直接为给定的输入生成对抗样本,而c&w(carlini&wagner)将此过程转换为优化问题,即通过优化一组手工约束来生成对抗样本,这些约束使样本接近原始输入但容易被模型错误分类。这些方法背后的根本目的是通过在模型训练中加入对抗样本来扩大输入特征的覆盖范围来抵御攻击。利用上述的“对抗训练”方法可以有效地增强模型对于对抗性攻击的鲁棒性。
[0006]
然而,现有的对抗性训练技术存在以下两个主要限制:1)训练效果有限,因为它们没有修改模型的结构(例如层数和损失函数)以更好地捕捉攻击特征并加强关键的内在特征,而只是增加训练数据集。因此,模型的鲁棒性改进是有限的。2)从一组特定的对抗性示例中获得的鲁棒性提升不能推广到由不同的对抗性算法生成的输入,即通用鲁棒性较差。不同的算法从不同的角度将攻击特征植入输入,因此一种算法生成的对抗样本不能反映其他算法的特征。


技术实现要素:

[0007]
基于上述现有技术及其存在的缺陷,本发明提出了一种基于深度学习模型转换的图像分类模型鲁棒性提升方法,利用模型转换扩展模型底层结构、以增量调试思想挖掘模型训练历史来执行新的数据收集,实现了图像分类模型的鲁棒性提升。
[0008]
本发明利用以下技术方案实现:
[0009]
一种基于深度学习模型转换的图像分类模型鲁棒性提升方法,该方法包括以下步骤:
[0010]
步骤1、进行模型转换:将一个已训练好的图像分类模型作为最终待提升模型,训练集按照标签类别划分,得到对应标签类别的训练数据,从图像分类模型中选择除输出层以外最后一层有参数的层作为目标层,将图像分类模型转换为从输入层至目标层的回归模型;利用不同标签类别的训练数据分别对图像分类模型进行动态模型切片,从每个图像分类模型的切片中筛选出关键神经元,转换为回归模型;回归模型中的关键神经元为最终需要训练的神经元;
[0011]
以及,进行回归损失函数设计;
[0012]
步骤2、保存图像分类模型训练过程中的全部历史模型,使用历史图像分类模型执行数据增强处理:
[0013]
将输入样本σ输入历史模型得到一个预测结果,比较历史模型和最终待提升模型的预测结果,检查历史模型是否能比最终待提升模型更好的预测输入数据,如是,对应历史模型以最高的置信度产生期望的结果并记录该历史模型,输入样本σ提取目标层l中关键神经元的输出;记录该测试输入σ及其在目标层的神经元激活值,神经元激活值将作为期望输出oracle应用至转换模型的回归损失函数中;
[0014]
步骤3、进行回归模型到图像分类模型的同步:通过由步骤1得到的图像分类转换模型、关键神经元以及由步骤2得到的数据增强过程选择的数据及期望输出oracle进行模型微调,即以数据增强选择的数据作为输入、收集的oracle作为标准输出对分类模型进行重训练;得到微调后的回归模型;将更新后的权重同步到图像分类模型中,得到最终调优后的图像分类模型。
[0015]
与已有技术相比,本发明能够提升图像分类模型的内在的通用鲁棒性。
附图说明
[0016]
图1为本发明的一种基于深度学习模型转换的图像分类鲁棒性提升方法整体流程图。
[0017]
图2为本发明的技术路线图。
具体实施方式
[0018]
下面结合附图和具体实施例对本发明技术方案作进一步详细描述。
[0019]
本发明的技术方案要点为1)模型转换;2)数据增强;3)模型同步,这三者均为本发明的主要创新点。
[0020]
如图1所示,为本发明的一种基于深度学习模型转换的图像分类模型鲁棒性提升方法整体流程图。
[0021]
步骤1、进行模型转换:将已训练好的图像分类模型作为待提升模型,将图像分类模型的训练集按照标签类别划分,得到不同图像类别的训练数据,分别使用动态模型切片方法nnslicer对图像分类模型进行切片,得到每个图像分类模型的切片,得到关键神经元。从图像分类模型中选择除输出层以外最后一层有参数的层作为目标层,将图像分类模型去除目标层后的所有层,由此将图像分类模型转换为从输入层至目标层的回归模型,回归模型中的关键神经元为最终需要训练的神经元;以及,进行回归模型的损失函数设计;
[0022]
其中,模型转换包括模型切片和损失函数设计;
[0023]
步骤1.1、使用动态模型切片方法nnslicer对图像分类模型进行切片,包括分析、前向分析和后向分析三个阶段的处理,具体描述如下:
[0024]

在分析阶段,nnslicer方法将整个训练集d输入图像分类模型,计算每个神经元n的平均激活值。图像分类模型记为f,输入图像到图片类别的映射过程记为y=f(x),其中x为输入的图像,y为图像对应的类别。分析阶段的具体过程为:将整个训练集d中的一个输入样本σ输入图像分类模型,观察到神经元n的输出值yn(σ)。形式上,其中,是第i个的激活值,m是所有输入神经元n的激活总数量。例如,如果是全连接层中的一个输入神经元n的情况下,m等于1。如果是在卷积层中一个输入神经元n的情况下,m是滤波器执行的卷积操作数。计算输入神经元n在整个训练集d上的平均激活值,表达式如下:
[0025][0026]
将平均激活值作为神经元n在训练集上的基线输出。
[0027]

在前向分析阶段,当给定一组感兴趣的输入样本d’,计算每个神经元n在整个训练集d上对特定输入样本d’的敏感性δyn,表达式如下:
[0028][0029]
其中,为输入神经元n在整个训练集d上的平均激活值;
[0030]
为输入神经元n在输入样本d’上的平均激活值,
[0031]
上述公式计算得到的δyn为每个输入神经元n在整个训练集d上的激活值差异,将其作为输入神经元n的相对激活值。
[0032]

在后向分析阶段,当给定一个在数据集d上训练的图像分类模型m,以及感兴趣的输入样本d’、感兴趣的输出神经元n作为切片标准,切片标准中的神经元即为后续切片过程计算的起点,将神经元h和神经元n之间连接的突触记为s,其中神经元h是与神经元n连接的后层神经元,设置连接权重为w
hn
,递归地计算反映每个神经元和每个突触对输出神经元n重要性的累积贡献。其中,一个神经元通常与大量突触相关联,一个突触仅连接两个神经元。计算神经元h的贡献contribh,表达式如下:
[0033]
contribh=conctribn×
δyn×whn
δyhꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0034]
其中,δyn和δyh分别表示神经元n和神经元h的相对激活值,conctribn表示神经元n的累积贡献。
[0035]
对神经元h的累积贡献的更新计算公式为:conctribh =sign(contribh),连接神经元h和n的突触s的累积贡献计算公式为:conctribs =sign(contribh)。
[0036]
得到模型切片为一组关键神经元,负责每个类的图像分类模型鲁棒性改进;其中,将具有最大累积贡献的q%个突触作为关键突触,然后它们连接的神经元作为关键神经元。累积贡献越大,突触越重要。其中,q表示所选关键突触的比率,q越大,选择的关键突触越多。
[0037]
在本步骤中,分别识别不同图像类别的关键神经元和突触,从而识别特定类别的实际负责神经元和突触以提高鲁棒性,减少训练过程中对其他类别的影响。关于切片标准,在最后一个输出层中选择与所需类别相对应的一个神经元作为感兴趣的神经元,该神经元具有针对性并包含全面的信息来主导预测结果。
[0038]
步骤1.2、进行损失函数设计;
[0039]
与原始图像分类模型相比,回归模型自然对小扰动更敏感,更适合细粒度的模型调优。
[0040]
因此,为了更好地感知较小攻击扰动并加强模型对关键输入特征的记忆,扩展了原始图像分类模型的底层结构,将其转换为具有特殊设计的新颖损失函数的同构回归模型。
[0041]
当给定一个包含r层的原始图像分类模型m,表示为m:=《l1,l2,...,lr》,进行图像分类模型m中的最后p层移除,将m转换为新的回归模型m
t
,即m
t
:=《l1,l2,...,l
r-p
》,其中0≤p《r;然后,利用模型切片的输出来构建损失函数,得到转换后回归模型m
t
的回归损失函数,表达式如下:
[0042][0043]
其中,表示对应的输入样本σ下的神经元n的黄金标准激活值,从训练历史中收集到,来表示第k个目标层lk中c类的关键神经元,r表示全部层数,l表示目标层。
[0044]
为了加强输入特征的记忆,使转换模型m
t
尽可能多地保留原始模型中输入层到目标层之间的层数。因此,将分类模型m中的倒数第二层作为转换模型m
t
的输出层,即将p的默认值设置为1。如果所采用的层没有可训练的参数,例如dropout层,将采用它的前一个层,直到到达有一组可训练参数的层。
[0045]
步骤2、保存原始图像分类模型训练过程中的全部历史模型,使用训练结果进行数据增强处理,具体包括:在提供输入样本σ时,比较预测结果,检查历史图像分类模型是否能比最终的待提升模型更好的预测输入数据,如是,则表示存在这样的最佳的图像分类模型m
best
,记录对应原始图像模型为以最高的置信度产生期望的结果,执行分析过程为输入样本σ提取目标层l中关键神经元的输出;最后,输出收集输入样本σ和相应的神经元。记录该测试输入及其在目标层的神经元激活值,神经元激活值将作为期望输出oracle应用至重新定义的损失函数中;具体来说,y
l
(σ)表示当输入σ时目标层l的输出神经元,作为黄金标准激活值用于公式(4);
[0046]
假设分类模型m在训练过程中的历史模型记录为其中mi为第i个训练迭代中的历史模型,t为训练迭代的总次数,即m=m
t
。使用mi.predict(σ)来表示历史模型mi在输入样本σ时的输出。输出一对《label,conf》标签,其中,label表示预测标签,conf表示置信度。
[0047]
步骤3、进行回归模型到原始图像分类模型同步;
[0048]
通过由步骤1得到的转换模型、关键神经元以及由步骤2得到的数据增强过程选择的数据及期望输出oracle进行模型微调,得到微调后的回归模型;将更新后的权重同步到原始图像分类模型中,得到最终调整后的图像分类模型;实现了模型调优后,转换模型m
t
中的一些连接权重将得到优化。为了使原始图像分类模型m获得调优过程的优势,将通过简单的值替换将这些优化的权重同步到原始图像分类模型m。
[0049]
为了提高图像分类模型的内在(通用)鲁棒性,应该极大地加强对关键输入特征的记忆。这需要模型能够捕获小的扰动以对该扰动进行抑制。为此,本发明共享底层网络结构,将原始分类模型转换为同构回归模型,为回归模型提供有意义和合适的训练数据,通过挖掘训练历史提出了一种新的数据增强策略。受传统增量调试的启发,给定输入样本,不同的历史模型可能会产生不同的输出,并且具有最高置信度的正确分类的模型可以被视为其他模型的“导师”,因此它的输出可以作为模型调整的黄金标准。
[0050]
以上所述仅为展示本发明技术思想和特点的较为优选的实施方式,目的在于能够使本领域内的技术人员理解发明内容并据此实施,并不用以限制本发明,即在本发明精神和原则之内所做的修饰、替代、同等变化等,均应在本发明保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献