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

基于敏感神经元的深度学习模型蒸馏中毒防御方法与装置与流程

2022-04-02 03:19:26 来源:中国专利 TAG:


1.本发明属于面向深度学习模型的安全问题领域,具体涉及一种基于敏感神经元的深度学习模型蒸馏中毒防御方法与装置。


背景技术:

2.深度学习(dl,deep learning)是机器学习(ml,machine learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。随着深度学习的发展,使得深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。
3.但于此同时,性能的提升也导致了深度学习模型的复杂度越来越高,带来了高额的存储空间、计算资源消耗,使其很难落实到各个硬件平台。为了解决问题,人们使用了模型压缩技术来最大限度地减小模型对于计算空间和时间的消耗。
4.深度学习模型的压缩主要分为剪枝(在预训练好的大型模型的基础上,将权重矩阵中相对不重要的权值剔除,然后再重新精修(finetune)网络进行微调),量化(较低位宽表示典型的32位浮点网络参数,网络参数包括权重、激活值、梯度和误差等),低秩分解(通过合并维数和施加低秩约束的方式稀疏化卷积核矩阵)和知识蒸馏(教师模型指导学生模型训练,采用预训练好的复杂模型的输出作为监督信号去训练另外一个简单的网络。将知识迁移到学生模型中,使学生模型达到与教师模型相当的性能)。其中由于知识蒸馏的可迁移性好,所以神经网络的知识蒸馏被广泛运用于降低模型的计算和存储成本上,从而促进模型在边缘端的高效部署。
5.随着模型的日益发展,针对模型的中毒攻击也在发展。中毒攻击发生在模型训练阶段,攻击者将中毒样本注入训练数据集,从而在训练完成的深度学习模型中嵌入后门触发器,在测试阶段输入毒药样本,则触发攻击爆发。
6.然而现有的神经网络知识蒸馏的方法专注于模型的识别精度以及可迁移性,忽略了模型在应用于边缘端时存在中毒的风险。一个被植入后门的模型在蒸馏之后仍然会保留中毒效果。当知识蒸馏被应用于现实场景的边缘设备中,例如自动驾驶,模型的错误识别导致行车大脑的决策失误会带来重大的安全隐患,所以这种潜在的风险不容忽视。
7.因此,我们在拿到一个模型做知识蒸馏之前,首先要对此模型进行祛毒操作。具体来说,我们拿一张干净样本以及对应的中毒样本输入到模型中,寻找全连接层输出的差异的top-k的神经元摘除,这样可以达到在保证主任务分类准确率的基础上去除中毒的效果。我们发现中毒攻击都是攻击睡眠神经元(主任务分类上不激活的神经元),那么被下毒的这些神经元就会变成相对于中毒样本的敏感神经元,利用这些神经元对中毒样本的敏感性去反向生成中毒样本。我们利用干净的测试样本x输入到模型中,将输出中激活值最大的top-k神经元进行累加,构成损失函数,通过对损失函数梯度上升作为导向对原始图像的像素值
进行改变去更新这张样本x,再进行下一轮迭代,直到激活值最大的top-k神经元稳定下来,迭代结束。此时,测试样本被更新成了中毒样本。利用生成的中毒样本以及原始样本去寻找全连接层的差异top-k神经元并摘除即可。


技术实现要素:

8.为了保证在常用的模型压缩方法蒸馏之后模型具有无毒性,本发明提供了一种基于敏感神经元的深度学习模型蒸馏中毒防御方法与装置。利用敏感神经元梯度反向传播去还原中毒样本,在利用干净/中毒样本对在模型中正向传播寻找全连接层的差异神经元top-k并摘除,即可达到模型祛毒的效果。
9.本发明的技术方案如下:一种基于敏感神经元的深度学习模型蒸馏中毒防御方法,包括以下步骤:
10.(1)选择图像数据集作为干净样本,构建深度学习网络;
11.(2)选取中毒方法,对步骤(1)获取的图像数据集进行中毒操作,得到中毒样本并训练深度学习网络得到中毒模型;
12.(3)将步骤(1)获取的干净样本输入步骤(2)训练好的中毒模型中,构建损失函数,通过对损失函数梯度上升作为导向对图像数据集的像素值进行改变,经过s轮迭代生成中毒样本;
13.(4)将步骤(1)得到的干净样本和步骤(3)迭代得到的中毒样本组成样本对,将该样本对输入步骤(2)训练得到中毒模型;统计每一样本对的全连接层的差异神经元top-k,再计算全连接层上的神经元的统计频率top-k,即统计异常神经元nk;
14.(5)构建学生模型s和教师模型t,摘除中毒模型中的异常神经元,计算干净样本在学生模型s和教师模型t的全连接层的输出,构建学生模型s的损失函数,调整教师模型t,再对调整后的教师模型t进行蒸馏。
15.本发明的技术构思为:基于现有的模型蒸馏方法不具备防御中毒攻击本发明首先提出一种基于敏感神经元的深度学习模型蒸馏中毒防御方法。本发明利用中毒模型中的敏感神经元的梯度反向传播去更新输入样本从而生成中毒样本,再利用中毒样本与原始样本在模型中前向传播时激活神经元的差异,找到top-k的异常神经元并调整再进行蒸馏操作,从而达到模型蒸馏中毒防御的效果。
16.本发明的有益效果主要表现在:对于现有模型蒸馏方法会保留中毒后门,提出了一种基于敏感神经元的深度学习模型蒸馏中毒防御方法。在真实深度学习模型上的实验结果表明,本发明方法具有良好的适用性,能够有效的防御中毒攻击,并且不影响模型蒸馏后正常样本的正确率。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
18.图1是本发明的实施例中基于敏感神经元的模型蒸馏中毒防御方法框图;
19.图2为本发明实施例的alexnet网络结构图;
20.图3是本发明的实施例中基于敏感神经元的模型蒸馏中毒防御装置的示意图。
具体实施方式
21.下面结合说明书附图对本发明的具体实施方式作进一步详细描述。参照图1~图2,本发明提出了一种基于敏感神经元的深度学习模型蒸馏中毒防御方法,步骤如下:
22.(1)选择mnist,cifar10,imagenet,gtsrb,casia等图像数据集,本发明实施例以cifar10数据集为例,这是一个图片大小为32*32的10分类的图片数据集。
23.(2)中毒模型准备:选取中毒方法,对步骤(1)获取的图像数据集进行中毒操作,得到中毒样本并训练深度学习网络得到中毒模型;
24.所述中毒方法选择badnets,poisonfrog,trojannn,feature collision attack等中毒攻击方法,本发明实施例以badnets中毒方法为例。
25.所述深度学习网络选择lenet,alexnet,vgg11,resnet34等网络,本发明实施例以alexnet网络为例,其网络结构图如图2所示,alexnet网络结构主要由五个卷积层,三个全连接层组成。
26.所述模型中毒操作:本发明实施例以在mnist数据集上badnets中毒为例,取label是“0”的训练样本的10%在左上角打上直角型patch,再把label改为“1”添加到训练数据集中去,然后开始训练模型,打了patch的样本即为中毒样本,我们训练的中毒模型在测试集上干净样本的准确率为98.37%,在测试集上中毒样本的准确率为100%。该模型即为实施例中的中毒模型m。
27.(3)还原中毒样本:将步骤(1)获取的干净样本输入步骤(2)训练好的中毒模型中,构建损失函数,通过对损失函数梯度上升作为导向对图像数据集的像素值进行改变,经过s轮迭代生成中毒样本;具体包括以下步骤:
28.(3.1)构建损失函数:将测试图像数据集x输入到训练好的中毒模型m中,并计算样本在模型m的全连接层的输出m
fc
(xi),其中xi∈x,i=1,2,...。将输出中激活值最大的top-k神经元进行累加,构成损失函数:
29.tk_fc(x)=σmaxk(m
fc
(xi))
[0030][0031]
其中,λ表示平衡参数,可人为调节,默认为常数1;maxk(
·
)表示该层激活值最大的k个输出。
[0032]
(3.2)更新输入样本:通过对损失函数梯度上升作为导向对原始图像的像素值进行改变,此时冻结模型,不更新模型参数:
[0033][0034]
x'=x s*grad
[0035]
其中s为迭代步长。
[0036]
在更新图像的像素值时需满足:
[0037]
[0038]
其中,x表示原始图像;x’表示改变像素值后的图像;l0表示已更改像素的最大数量;l∞表示像素更改的最大值;size(x)是图像中0《x的像素数量;0《α,β《1。
[0039]
(4)统计异常神经元:选取的测试样本集x以及更新得到的中毒样本集x

同时输入到模型m中,统计每一对样本的全连接层的差异神经元top-k,再计算全连接层上的神经元的统计频率top-k,即为选取的异常神经元nk。
[0040]
(5)模型蒸馏:构建学生模型s和教师模型t,摘除中毒模型中的异常神经元,计算干净样本在学生模型s和教师模型t的全连接层的输出,构建学生模型s的损失函数,调整教师模型t,再对调整后的教师模型t进行蒸馏。具体包括以下子步骤:
[0041]
(5.1)构建教师模型t和学生模型s;
[0042]
(5.2)摘除异常神经元:对中毒模型m中查找的异常神经元nk对应的模型weights、bias进行调整:所述调整为置零或者降为原来的一半,以此来调整中毒模型最后的logits,使得蒸馏的学生模型s带有的毒性降低甚至清除。
[0043]
(5.3)构建学生模型s的损失函数:将测试图像数据集x同时输入到教师模型t和学生模型s中,调整教师模型t,并计算样本在教师模型t和在学生模型s的全连接层的输出,由此构建损失函数:
[0044]
l=αl
soft
βl
hard
[0045]
其中,
[0046]
其中,
[0047]
其中:vi为教师模型t的logits;zi为学生模型s的logits;p
it
为教师模型t在温度等于t下的softmax输出在第i类上的值;q
it
为学生模型s在温度等于t下的softmax输出在第i类上的值;cj为在第i类上的ground truth值,正标签取1,负标签取0;n为总标签数量;α,β为超参数。
[0048]
(5.3)再对调整后的教师模型t进行蒸馏。
[0049]
与前述基于敏感神经元的深度学习模型蒸馏中毒防御方法的实施例相对应,本发明还提供了基于敏感神经元的深度学习模型蒸馏中毒防御装置的实施例。
[0050]
参见图3,本发明实施例提供的一种基于敏感神经元的深度学习模型蒸馏中毒防御装置,包括一个或多个处理器,用于实现上述实施例中的基于敏感神经元的深度学习模型蒸馏中毒防御方法。
[0051]
本发明基于基于敏感神经元的深度学习模型蒸馏中毒防御装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本发明基于敏感神经元的深度学习模型蒸馏中毒防御装置所在
任意具备数据处理能力的设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0052]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0053]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0054]
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于敏感神经元的深度学习模型蒸馏中毒防御方法。
[0055]
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0056]
上述实施提供的基于敏感神经元的深度学习模型蒸馏中毒防御方法,具有以下优点:本发明方法解决了现有常用的模型压缩方法蒸馏对中毒攻击没有防御作用的问题,并且模型在主任务上仍保留很高的准确率。本发明方法只需要用到少量的测试样本即可获得不错的效果,适用性较好。
[0057]
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施实例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献