本发明属于人工智能安全领域,尤其涉及利用模型剪枝和逆向工程技术设计防御深度神经网络后门攻击方案。
背景技术:
目前,深度神经网络(deepneuralnetworks,简称dnn)在各个领域都取得了巨大的成功,特别是在识别和分类领域。然而由于深度神经网络的参数规模较大、难以训练,因此许多资源受限型用户将深度学习模型的训练过程外包给拥有强大的存储和计算资源的第三方,比如阿里云、微软云(microsoftazure)。虽然这种外包训练可以大大缩短开发周期,但也引入了许多安全风险。近年来,一种被称为后门攻击(backdoorattacks)的新型攻击引起了广泛的关注,攻击者通过使用带有后门触发器(backdoortrigger)的恶意数据训练模型之后,将生成一个带有后门的恶意模型。此类带有后门的模型在输入良性数据时能够以较高准确率将其正常分类,只有带有后门触发器的数据输入时,才会激活恶意神经元,导致错误分类(通常是分类成某一特定错误类别)。由于其具有极强的隐蔽性,检测此类攻击给用户带来了巨大的挑战。
模型压缩是提高深度神经网络存储效率的主要方法。深度神经网络所需存储空间大、计算资源消耗多,存在着大量的冗余节点,只有少部分神经元参与着主要的计算。因此可以将神经网络中不重要的节点剔除,达到压缩尺寸的作用,从而提高模型的存储效率。在模型压缩中,应用最为广泛的就是模型剪枝。模型剪枝通过将神经网络中相对不重要的神经元裁剪,以得到一个更轻量级的网络,同时不会影响神经网络的性能。当前有两种主要的剪枝方法,第一种是利用神经元权值的大小来评判神经元的重要性,具有低权值的神经元通常对神经网络的贡献较低,因此可以将每一层中权值低的神经元裁掉。第二种是利用神经元激活值的大小来评判神经元的重要性,激活值较低的神经元对神经网络的贡献较低,因此可以通过剔除深度神经网络中激活值较低的神经元来达到剪枝的目的。
逆向工程是根据已知的事实和结果,通过分析来反演出输入内容的方法。对攻击者来说,逆向工程可以帮助其分析目标模型或训练数据信息,从而达到窃取模型或数据的目的;对于防御者来说,逆向工程可以提供一种“攻击假设”,帮助防御者预知可能的攻击并实施防御手段。在神经网络后门攻击中,可以利用防御者逆向工程的思路,通过观察输出结果和激活值,反演出可能的后门触发器,来达到辅助设计防御方案的目的。
经研究发现,在被后门数据(带有后门触发器的数据)训练之后的恶意模型中,被污染的神经元只会被后门触发器激活,而在干净数据输入下它们是休眠的。换言之,当正常数据输入时,此类经后门植入污染的神经元激活值较低;当后门数据输入时,它们将会被强烈激活,从而诱导模型表现出恶意属性。因此,对用户来说,剔除这些休眠神经元可以在一定程度上防御后门攻击。模型剪枝正是删减休眠神经元的有效手段。当输入正常数据时,防御方可以记录每个神经元的激活值并排序,随后按照增序对神经元进行迭代修剪,并记录修剪后神经网络的准确性。当验证数据集的准确性下降到预定阈值以下时,剪枝操作终止。
在已有的研究中,针对后门攻击采取的剪枝策略都是基于激活值修剪神经元,这样的防御策略只对基于随机型触发器(随机选择,例如贴纸,不依赖于模型本身)的后门攻击有效,无法作用于基于模型依赖型触发器(选择模型中权重较大的神经元生成触发器、选择正常数据输入下高激活值神经元生成触发器等)的后门攻击,限制较大。
技术实现要素:
本发明针对现有技术的不足,提出了一种基于逆向工程和模型剪枝的深度学习后门防御方法,解决了传统方案难以防御基于模型依赖型的后门攻击问题,保证了防御的全面性。
本发明提供一种基于模型剪枝和逆向工程的深度学习后门防御方法,包括以下步骤,
步骤1,利用逆向工程反演出目标深度神经网络中可能存在的后门触发器,同时找到后门攻击的目标标签;
步骤2,输入带有后门触发器的恶意数据到目标深度神经网络,记录被后门触发器激活的神经元的激活值和权重值,分别筛选激活值高的和权重值高的神经元作为可能被污染的恶意神经元,形成两个数据集,从高到底排序,得到所记录的神经元的激活值排序序列
步骤3,根据步骤2所得结果,对注入后门的深度神经网络进行模型剪枝操作,实现方式如下,
分别将序列
若攻击成功率si没有明显降低,执行回退操作,恢复该神经元;
若模型预测准确率qi明显降低,执行回退操作,恢复该神经元;
若以上两个条件均不满足,即攻击成功率si降低且模型预测的准确率qi基本不变,则该神经元的修剪能够防御后门攻击;随后对神经网络进行局部微调,进行下一轮剪枝。
当第n轮剪枝完毕后,若攻击成功率sn降低至满足相应预设要求且验证数据集上模型的精度qn不低于预设阈值q0时,剪枝防御结束。
而且,步骤1的实现方式为,
针对神经网络模型中的每一个类别yt,利用逆向工程反演出目标深度神经网络中可能存在的后门触发器;在找到每个标签对应的潜在触发器后,使用离群点检测算法,寻找出这些触发器构成的分布中具有最小l1范式的触发器δ0,则触发器δ0对应的标签就是后门攻击的目标标签。
而且,所述目标深度神经网络为lenet-5网络、vgg-16网络或resnet网络。
此发明很好地填补了基于激活值剪枝的传统防御方法无法抵御基于模型依赖型触发器后门攻击的不足。同时,由于剪枝前先进行逆向工程生成可能的后门触发器,缩小了恶意神经元的搜寻范围,剪枝的效率和准确率都得到了提高。在剪枝过程中同步进行精确性和防御成功率监测,并在必要时进行局部微调,保持了神经网络原有的计算能力,又确保了防御的成功率。
附图说明
图1是本发明实施例的总流程图。
图2是本发明实施例的恢复后门触发器以及目标标签的流程图。
图3是本发明实施例的筛选后门模型中可能存在的恶意神经元流程图。
图4是本发明实施例的后门模型剪枝流程图。
具体实施方式
本发明主要基于模型剪枝和逆向工程技术设计防御深度神经网络后门攻击方案。本方法充分考虑了不同攻击者可能采用的攻击方式和攻击特征。通过本发明进行防御得到的深度学习模型更加安全可靠,对于基于模型依赖型后门触发器的后门攻击具有优良的防御效果。
本发明提供的方法能够用计算机软件技术实现流程。实施例以带有后门的深度神经网络为例对本发明的深度学习后门防御方法流程进行一个具体的阐述,各步骤原理及实现细节如下:
步骤1,利用逆向工程技术反演出目标深度神经网络(例如lenet-5网络,vgg-16,resnet等)中可能存在的后门触发器,同时找到后门攻击的目标标签。
本发明针对神经网络模型中的每一个类别yt,利用逆向工程技术反演出目标深度神经网络中可能存在的后门触发器。在找到每个标签对应的潜在触发器后,使用一个离群点检测算法,寻找出这些触发器构成的分布中具有最小l1范式的触发器δ0,则触发器δ0对应的标签就是后门攻击的目标标签。
后门攻击的根本目的是构造一个通用的后门触发器,任何一个正常数据加上这个后门触发器都将会错误分类为目标类别。此类触发器具有以下两个特点:触发器的植入能使良性输入被恶意分类到某一特定的目标标签,这是攻击必须要完成的任务;其次触发器必须足够小,从而尽可能规避防御者的检测。
针对这两点,后门触发器tt满足的数学关系符合以下两个公式:
公式中i,t分别代表模型实际分类标签和后门攻击目标标签。
结合图2所示,步骤1的具体实现步骤细节如下:
1)针对目标深度神经网络遍历标签,做潜在触发器假设,逆向分析出可能后门触发器:对于给定的标签yt,将其视为后门攻击的潜在目标标签。首先,定义后门触发器注入的通用形式:
a(x,m,δ)=x′
上式中,函数a()是后门触发器作用于原始样本的函数,其中x为原始数据,δ为触发器,m是触发器模版,它决定后门触发器的大小、形状,x′是经过后门触发器处理后产生的中毒数据。为了攻击成功,攻击者既要确保后门触发器(m,δ)能成功把良性数据分类到目标标签yt,又要使触发器的尺寸尽量小以逃避防御者的检测。
下式是生成后门触发器的目标函数:
上式中,函数f()是深度神经网络的预测函数,函数l()是测量分类误差的损失函数,也就是本发明实验中的交叉熵,x是防御者可以访问的良性数据集。m的l1范数|m|用于衡量后门触发器的大小,λ控制后门触发器大小的权重参数。当λ越小时,后门触发器的大小会相应增大,此时将数据分类到yt标签的成功率也会随之提高。具体实施例时,可以调整λ,保证有较高比例(通常在95%以上)的良性数据在加入后门触发器的时候会被错误分类为目标标签。
通过对上述公式使用adam优化器进行优化后,本发明找到了将所有样本从其他标签错误分类到目标标签yt所需的后门触发器。接下来本发明对dnn模型中的每个输出标签均进行上述内容,那么对于一个有n个标签的模型,寻找到了n个潜在后门触发器δi(i=1,2,…n),以及这些后门触发器的l1。
2)下面将通过一个离群点检测算法寻找出这些后门触发器构成的分布中具有最小l1范式的后门触发器δ0,此后门触发器则是攻击者所使用的后门触发器,同时后门触发器δ0对应的标签就是后门攻击的目标标签。该算法的具体内容满足如下三个公式:
bk=|ak-a0·5|
mad=b0·5
其中ak(k=1,2,…n)表示某一触发器δi对应的标签在逆向过程中输入的良性数据,k为数据点序号。a0.5表示这些数据的中位数。首先计算所有数据点ak和这些数据点的中位数a0.5之间的绝对偏差bk。这些绝对偏差的中位数b0.5记为mad,它提供了一种可靠的分布分散度度量。数据点的异常指数δ定义为该数据点的绝对偏差bk除以mad。当假设潜在的分布为正态分布时,使用一个常数估计量对异常指数进行正态化,异常指数δ大于某一阈值的数据点有很大概率是离群值。将异常指数δ大于这一阈值的标签标记为被可能被感染的离群值,随后关注mad值低的标签,这些标签更容易受到攻击。
上述计算过程结束后,得到了所有标签对应的mad值,保留其中mad值较低的作为可疑标签。再集中资源对这些可疑标签进行全面检查,再次估计其mad值,其中mad值明显小于其他的标签即为目标标签。
步骤2,输入带有后门触发器的恶意数据到深度神经网络,记录神经元的激活值和权重值,筛选可能被污染的恶意神经元。
为了注入后门,攻击者通常使用带有后门触发器(包括随机型和模型依赖型)的恶意数据去训练深度神经网络,导致部分神经元被后门触发器污染。这些恶意神经元会在后门触发器出现时被强烈激活,表现为激活值较高或者权重较高。
基于以上分析,当本发明向深度神经网络输入大量带有后门触发器的样本时,后门模型中的被污染的神经元的权重或激活值将会明显大于其他正常的神经元,因此本发明可以通过对神经元权重或激活值进行检测,从而找到一系列攻击者可能污染的神经元集合。
本发明提出,根据步骤1寻找到的后门触发器δ0,筛选后门模型中可能被污染的恶意神经元,具体实施时可由防御者首先向后门dnn模型中输入带有后门的数据,并记录触发器作用层layertarget(通常是第一个全链接层)中每个神经元的权重以及激活值。被后门触发器激活的神经元存在以下特点:权重较高或者激活值较高,因此需要将激活值高的和权重值高的神经元都筛选出来,形成两个数据集,将它们从高到底排序形成两个集合。这两个集合就包含攻击者所污染的恶意神经元。
结合图3所示,步骤2的具体实现细节如下:
首先,将带有后门触发器的数据输入至深度神经网络中,计算第一个全链接层中(后门触发器通常激活的就是这一层的神经元)每一个神经元的激活值以及权重值。对于神经元的激活值,假设神经网络的第l层由k个神经元组成,则l层第n个神经元的激活值
其中φl()是第l层的激活函数,
本发明实施例中记
步骤3,利用激活值以及权重值排序表,对注入后门的dnn模型进行模型剪枝。
上一步中已经得到需要进行模型剪枝的目标神经元集合,此步将要进行最后的剪枝。模型剪枝虽然可以一定程度上降低后门攻击的成功率,但是可能会影响原始深度神经网络模型的精度,在剪枝的过程中,本发明需要对剪枝结果进行监测,其监测的对象有两个:
一是剪枝后模型的预测准确率:为了完成这一步骤,本发明首先将确保无恶意的验证数据集dvalid输入未经剪枝的深度神经网络中并记录计算结果,这一结果将作为验证深度神经网络预测准确率的对照组。在每轮剪枝完成后,重新将dvalid输入剪枝后的深度神经网络并得到结果di(i=1,2,3…),记录精确性为di与dvalid的相似性,此相似性越高,则证明剪枝后的深度神经网络的预测准确率越好。剪枝过程中,应确保此值处于较高水平。若剪枝后低于预设的阈值(由发明使用者视情况决定,一般不低于97%),则进行回退,取消对相应神经元的剪枝。
二是剪枝后模型对后门攻击的攻击成功率:进行一轮剪枝后,测试带有后门触发器的数据被剪枝后的模型误分类的攻击成功率。攻击成功率下降越大,则剪枝越准确。
因此,本发明提出分别将激活值和权重已经由高到低排列的神经元系列n1*,n2*依次轮流剪枝,每次剪枝完成后输入良性测试数据记录模型预测准确率qi的变化以及输入带有后门触发器的恶意数据记录攻击成功率si的变化,进行以下判断和操作:
若攻击成功率si没有明显降低,执行回退操作,恢复该神经元;
若模型预测的准确率qi明显降低,执行回退操作,恢复该神经元;
若前两个条件均不满足,即攻击成功率si降低且模型预测的准确率qi基本不变,则该神经元的修剪可以防御后门攻击。随后对神经网络进行局部微调,进行下一轮剪枝。
当第n轮剪枝完毕后,若攻击成功率sn降低至满足预设要求(可由防御者视防御需求预设)且验证数据集上模型的精度qn不低于预先确定的阈值q0(可由防御者视防御需求预设)时,剪枝防御结束;
结合图4,实施例中步骤3具体实现方法如下:
对第二步得到的一系列神经元按照
设进行完第i轮剪枝后,得到的深度神经网络模型的预测准确率为qi,攻击成功率为si,对qi与si进行判断,进行以下操作,
若qi<97%(具体实施时相应阈值q0视防御需求而定,实施例中取97%),进行回退,将修剪掉的神经元恢复至dnn中,进入第i 1轮剪枝;
若si-1近似等于si,则此轮剪枝为无效剪枝,进行回退,将修剪掉的神经元恢复至dnn中,进入第i 1轮剪枝;
若第i轮剪枝操作已经完成且不满足回退条件,即攻击成功率si降低且模型的预测准确率qi基本不变,则该神经元的修剪可以防御后门攻击;
每轮剪枝结束后,若不需要回退(即图4中“其他两个条件均不满足”的情况),则利用最小二乘法对已经裁剪的神经网络进行局部微调,恢复部分模型精度后,进入第i 1轮剪枝;当sn<10%时(具体实施时视防御需求而定)且验证数据集上模型的精度qn不低于预先确定的阈值q0(具体实施时视防御需求而定,实施例中取97%)时,认为已经达到预设的防御效果,剪枝操作完成。
剪枝完成后,使用预先训练好的dnn权值来初始化训练剪枝后的dnn,再次进行微调。通过微调可以恢复(至少部分恢复)由剪枝引起的良性输入的分类精度下降。微调后,得到了最终的良性dnn模型。
经检测,本发明可以有效防御基于随机型触发器、基于模型依赖型触发器的后门攻击,并且不侵害模型的可用性。
最后,利用本发明的防御方法,本发明在一些典型的实际应用场景中进行了实验。
特别需要注意的是,本发明的实验中采取的阈值和判断数据仅保证对相应实验对象有良好的效果,在具体应用场合中,方法的使用者应当充分考虑实际应用情况和自身需求选择阈值和判断数据。
本发明选取了图像识别领域中的人脸识别和交通标志识别应用场景来进行实验,通过实验证明了本发明的方法对防御深度神经网络中的后门攻击是有效的。
实验具体内容如下:
在用离群点检测算法寻找出这些触发器构成的分布中具有最小l1范式的触发器δ0时,假设潜在的分布为正态分布,实验中使用1.4826这一常数估计量对异常指数δ进行正态化,异常指数δ的观察阈值设置为2。具体实验显示,异常指数δ大于阈值2的数据点有超过95%是离群值。
本发明进行了两组实验,对是否使用本发明的防御方法进行对照试验,记录了对良性输入的预测准确率(记为pa)和后门攻击成功率(记为asr)。
最终得到的实验数据如下表所示:
可以看出,本发明的防御方法,在人脸识别和交通标志识别两个不同的深度神经网络中,均能在保证模型可用性的前提下有效降低基于随机型触发器和基于模型依赖型触发器两种后门攻击的成功率。可以看到,在部分模型上,甚至可以将攻击成功率降低到0%,这说明本发明的方法具有优良的防御效果。
具体实施时,本发明技术方案提出的方法可由本领域技术人员采用计算机软件技术实现自动运行流程,实现方法的系统装置例如存储本发明技术方案相应计算机程序的计算机可读存储介质以及包括运行相应计算机程序的计算机设备,也应当在本发明的保护范围内。
在一些可能的实施例中,提供一种基于模型剪枝和逆向工程的深度学习后门防御系统,包括以下模块,
第一模块,用于利用逆向工程技术反演出目标深度神经网络中可能存在的后门触发器,同时找到后门攻击的目标标签;
第二模块,用于输入带有后门触发器的恶意数据到目标深度神经网络,记录被后门触发器激活的神经元的激活值和权重值,分别筛选激活值高的和权重值高的神经元作为可能被污染的恶意神经元,形成两个数据集,从高到底排序,得到所记录的神经元的激活值排序序列
第三模块,用于根据第二模块所得结果,对注入后门的深度神经网络进行模型剪枝操作,实现方式如下,
分别将序列
若攻击成功率si没有明显降低,执行回退操作,恢复该神经元;
若模型预测准确率qi明显降低,执行回退操作,恢复该神经元;
若以上两个条件均不满足,即攻击成功率si降低且模型预测的准确率qi基本不变,则该神经元的修剪能够防御后门攻击;随后对神经网络进行局部微调,进行下一轮剪枝。
当第n轮剪枝完毕后,若攻击成功率sn降低至满足相应预设要求且验证数据集上模型的精度qn不低于预设阈值q0时,剪枝防御结束。
在一些可能的实施例中,提供一种基于模型剪枝和逆向工程的深度学习后门防御系统,包括处理器和存储器,存储器用于存储程序指令,处理器用于调用存储器中的存储指令执行如上所述的一种基于模型剪枝和逆向工程的深度学习后门防御方法。
在一些可能的实施例中,提供一种基于模型剪枝和逆向工程的深度学习后门防御系统,包括可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序执行时,实现如上所述的一种基于模型剪枝和逆向工程的深度学习后门防御方法。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
1.一种基于模型剪枝和逆向工程的深度学习后门防御方法,其特征在于,包括以下步骤:
步骤1,利用逆向工程技术反演出目标深度神经网络中可能存在的后门触发器,同时找到后门攻击的目标标签;
步骤2,输入带有后门触发器的恶意数据到目标深度神经网络,记录被后门触发器激活的神经元的激活值和权重值,分别筛选激活值高的和权重值高的神经元作为可能被污染的恶意神经元,形成两个数据集,从高到底排序,得到所记录的神经元的激活值排序序列
步骤3,根据步骤2所得结果,对注入后门的深度神经网络进行模型剪枝操作,实现方式如下,
分别将序列
若攻击成功率si没有明显降低,执行回退操作,恢复该神经元;
若模型预测准确率qi明显降低,执行回退操作,恢复该神经元;
若以上两个条件均不满足,即攻击成功率si降低且模型预测的准确率qi基本不变,则该神经元的修剪能够防御后门攻击;随后对神经网络进行局部微调,进行下一轮剪枝。
当第n轮剪枝完毕后,若攻击成功率sn降低至满足相应预设要求且验证数据集上模型的精度qn不低于预设阈值q0时,剪枝防御结束。
2.根据权利要求书1所述基于模型剪枝和逆向工程的深度学习后门防御方法,其特征在于:步骤1的实现方式为,
针对神经网络模型中的每一个类别yt,利用逆向工程反演出目标深度神经网络中可能存在的后门触发器;在找到每个标签对应的潜在触发器后,使用离群点检测算法,寻找出这些触发器构成的分布中具有最小l1范式的触发器δ0,则触发器δ0对应的标签就是后门攻击的目标标签。
3.根据权利要求书1或2所述基于模型剪枝和逆向工程的深度学习后门防御方法,其特征在于:所述目标深度神经网络为lenet-5网络、vgg-16网络或resnet网络。
技术总结