一种提升深度神经网络模型鲁棒性的方法及装置与流程

文档序号:20920709发布日期:2020-05-29 14:06阅读:579来源:国知局
一种提升深度神经网络模型鲁棒性的方法及装置与流程

本发明涉及一种提升深度神经网络模型鲁棒性的方法,同时涉及一种提升深度神经网络模型鲁棒性的装置,属于机器学习技术领域。



背景技术:

深度神经网络为多层神经网络结构,而且每一层都包含多个神经单元。近年来,深度神经网络已经在计算机视觉、语音识别和自然语言处理等诸多领域展示了卓越的表现。尽管深度神经网络已经取得了惊人的成就,但是包含人类不可感知的细小噪声而可以误导模型分类错误的对抗样本的出现,使得深度神经网络的可解释性受到了广泛的关注。同时,这也使得深度神经网络已经被广泛应用的领域,诸如自动驾驶和人脸识别,受到了对抗样本的潜在的安全威胁,可能会造成财产损失甚至人员伤亡。

为了避免对抗样本对现实世界应用造成潜在威胁,许多用于提升深度神经网络对抗鲁棒性的方法被相继提出。这些方法可以被分类为对抗训练(adversarialtraining)、输入转换、特殊模型架构设计和对抗样本检测。

从另一个角度看,深度神经网络由于结构复杂以及包含大量非线性操作被当做“黑盒”模型,而对抗样本对于理解深度神经网络的内部行为有着重要的价值。理解对抗样本可以找到模型的缺陷和弱点,从而有助于我们理解和训练出鲁棒的深度神经网络。有一些基于对抗扰动的模型鲁棒性分析方法被业界专家学者提出,它们中有人使用对抗样本理解深度神经网络内部表征;有人通过分析模型在面对对抗样本时,输入图像各区域的影响程度,来分析模型的弱点。

从更高层次的角度看,模型面对噪声的鲁棒性可以被视为一种全局的不敏感特质。深度神经网络可以通过学习对于对抗样本的不敏感表征,减少其在面对对抗样本时的表现退化情况。



技术实现要素:

本发明所要解决的首要技术问题在于提供一种提升深度神经网络模型鲁棒性的方法。

本发明所要解决的另一技术问题在于提供一种提升深度神经网络模型鲁棒性的装置。

为实现上述目的,本发明采用下述的技术方案:

根据本发明实施例的第一方面,提供一种提升深度神经网络模型鲁棒性的方法,包括如下步骤:

构建偶对集合;所述偶对集合由原始样本和对应对抗样本构成;

在待检测模型的各层中,选出至少一层预设层;

针对各预设层,逐层计算每个神经单元在偶对集合上的神经单元敏感度;

根据各预设层中各神经单元的神经单元敏感度,得到各预设层的敏感单元集合;

将偶对集合作为训练集,根据各预设层的敏感单元集合,针对各预设层进行训练。

其中较优地,所述构建偶对集合,具体包括:

获取原始样本;

使用基于梯度的pgd白盒攻击方法在原始样本上,针对待检测模型进行攻击,生成对应的对抗样本;

每个原始样本和唯一对应的对抗样本构成一组偶对数据;

各偶对数据构成偶对集合。

其中较优地,所述pgd白盒攻击方法为:

式中:sign(·)表示符号函数,x表示原始样本,y表示原始样本的类别标签,θ表示当前模型参数,α表示单次迭代步长值,πx+s(·)表示投影函数,表示损失函数对于x的梯度。

其中较优地,所述神经单元敏感度的计算公式为:

式中,表示神经单元在偶对集合上的神经单元敏感度,分别代表神经单元对于原始样本xi和对应的对抗样本x′i的输出。

其中较优地,所述根据各预设层中各神经单元的神经单元敏感度,得到各预设层的敏感单元集合,具体包括:

针对待检测模型的每层预设层:

将当前层中每个神经单元按神经单元敏感度,由高到低进行排序;

选出神经单元敏感度排在前k(k≥1)位的神经单元组建当前层的敏感单元集合:

ωl=top-k(fl,σ)

式中,ωl表示当前层l的敏感单元集合,top-k(·)表示基于神经单元敏感度度量下前k大的神经单元,fl表示当前层l的神经单元,σ表示神经单元敏感度。

其中较优地,所述将偶对集合作为训练集,根据各预设层的敏感单元集合,针对各预设层进行训练,具体包括:

构建对抗训练损失函数和稳定化损失函数;

根据对抗训练损失函数和稳定化损失函数,得到整体优化损失函数;

将偶对集合作为训练集,利用整体优化损失函数,对各预设层进行训练。

其中较优地,所述对抗训练损失函数为:

式中,表示交叉熵损失函数,x表示原始样本,x′表示对抗样本,y表示原始样本的类别标签,θ表示当前模型参数。

其中较优地,所述稳定化损失函数为:

式中,s表示预定的深度神经网络层编号的集合,ωl表示待检测模型的第l层的敏感单元集合,分别代表神经单元对于原始样本x和对应的对抗样本x′的输出。

其中较优地,所述整体优化损失函数为:

式中,λ为损失函数系数。

根据本发明实施例的第二方面,提供一种提升深度神经网络模型鲁棒性的装置,包括处理器和存储器,所述处理器读取所述存储器中的计算机程序,用于执行以下操作:

构建偶对集合;所述偶对集合由原始样本和对应对抗样本构成;

在待检测模型的各层中,选出至少一层预设层;

针对各预设层,逐层计算每个神经单元在偶对集合上的神经单元敏感度;

根据各预设层中各神经单元的神经单元敏感度,得到各预设层的敏感单元集合;

将偶对集合作为训练集,根据各预设层的敏感单元集合,针对各预设层进行训练。

与现有技术相比较,本发明首先提出了神经单元敏感度的指标,用于度量深度神经网络模型中各神经单元在面对原始样本和对抗样本的表现差异;其次,本发明进一步找出深度神经网络模型中的敏感单元,它们对于模型的分类错误有着重要的贡献,即为深度神经网络的弱点;然后根据各敏感单元组成敏感单元集合,作为训练集,针对待检测模型中预定的至少一层进行训练。由此,本发明可以有效找到深度神经网络模型的弱点,并进行针对性的修复,提高深度神经网络模型对于对抗样本的鲁棒性。

附图说明

图1为本发明所提供的整体方法流程图;

图2为本发明中,使用pgd白盒攻击方法实现敏感单元稳定化的流程图;

图3为本发明中,选取敏感单元集合的示意图;

图4为本发明所提供的装置结构图。

具体实施方式

下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。

在机器学习领域中,对抗样本(adversarialexamples)是指在数据集中通过故意添加细微的干扰所形成的输入样本,会导致模型以高置信度给出一个错误的输出。在精度达到人类水平的神经网络上通过优化过程故意构造数据点,其上的误差率接近100%,模型在这个输入点的输出与附近的数据点非常不同。在许多情况下,两个输入点非常近似,人类观察者不会察觉原始样本和对抗样本之间的差异,但是网络会作出非常不同的预测。

深度神经网络模型(简称模型)面对噪声的鲁棒性可以看作是一种全局不敏感行为,在包含噪声的条件下损失小,和原样本预测情况一致。深度神经网络模型在噪声设定下的鲁棒性的定义为:

其中,xi和xj是从数据集d中随机挑选的样本;表示损失函数。同时,||·||是用于度量两个样本距离的度量指标,e表示一个很小的值。该定义的想法为:如果两个示例很相似,那么它们的测试损失应该也接近。

这种定义对于原始样本x∈d和对抗样本x′∈d′同样应该适用。然而,在实践中,对抗样本可以误导不鲁棒的分类器进行错误的预测,公式表示为:

f(x')≠ys.t.||x-x'||<∈.

从直觉上看,当一个模型对对抗样本不敏感时,原始样本x和对抗样本x′在该模型的各个隐层中有着相似的表征,从而导致了相似最终预测结果。因此,本发明通过关注原始样本和对应的对抗样本在模型各隐藏层的表征偏离情况,提升深度神经网络模型的对抗鲁棒性。

如图1所示,本发明实施例提供一种提升深度神经网络模型鲁棒性的方法,包括如下步骤:

101、构建偶对集合;所述偶对集合由原始样本和对应对抗样本构成;

所述构建偶对集合,具体包括:

1011、获取原始样本;

针对待检测的深度神经网络模型,给定一个原始样本数据集d={xi|i=1,...,n};

1012、使用基于梯度的pgd白盒攻击方法在原始样本上,针对待检测模型进行攻击,生成对应的对抗样本;

所述pgd白盒攻击方法为:

式中:sign(·)表示符号函数,x表示原始样本,y表示原始样本的类别标签,θ表示当前模型参数,α表示单次迭代步长值,iix+s(·)表示投影函数,表示损失函数对于x的梯度。

因此,生成的对抗样本集d'={x′i|i=1,...,n}。

1013、每个原始样本和唯一对应的对抗样本构成一组偶对数据;

1014、各偶对数据构成偶对集合:

102、在待检测模型的各层中,选出至少一层预设层;

根据实验数据可知,选择少量的预设层进行训练,相对于针对深度神经网络模型的所有层进行训练,不但训练效率高,而且最后得到的修正效果好。因此在本发明中,对于提升整个深度神经网络模型的鲁棒性,是通过针对少量的层进行训练达到的。

根据实验数据,在本发明实施例中,各预设层选取待检测模型的最后五层,最后得到的提升鲁棒性效果最好。

103、针对各预设层,逐层计算每个神经单元在偶对集合上的神经单元敏感度;所述神经单元敏感度的计算公式为:

式中,表示神经单元在偶对集合上的神经单元敏感度,分别代表神经单元对于原始样本xi和对应的对抗样本x′i的输出。

104、根据各预设层中各神经单元的神经单元敏感度,得到各预设层的敏感单元集合;具体地:

1041、针对待检测模型的每层预设层:

1042、将当前层中每个神经单元按神经单元敏感度,由高到低进行排序;

1043、选出神经单元敏感度排在前k(k≥1)位的神经单元组建当前层的敏感单元集合:

ωl=top-k(fl,σ)(3)

式中,ωl表示当前层l的敏感单元集合,top-k(·)表示基于神经单元敏感度度量下前k大的神经单元,fl表示当前层l的神经单元,σ表示神经单元敏感度。

105、将偶对集合作为训练集,根据各预设层的敏感单元集合,针对各预设层进行训练;具体地:

1051、构建对抗训练损失函数和稳定化损失函数;

所述对抗训练损失函数为:

式中,表示交叉熵损失函数,x表示原始样本,x′表示对抗样本,y表示原始样本的类别标签,θ表示当前模型参数。

所述稳定化损失函数为:

式中,s表示预定的深度神经网络层编号的集合,ωl表示待检测模型的第l层的敏感单元集合,分别代表神经单元对于原始样本x和对应的对抗样本x′的输出。在本发明实施例中s表示最后五层。

1052、根据对抗训练损失函数和稳定化损失函数,得到整体优化损失函数;

所述整体优化损失函数为:

式中,λ为损失函数系数。

1053、将偶对集合作为训练集,利用整体优化损失函数,对各预设层进行训练。

上述方法首先针对模型中各神经单元在面对原始样本和对抗样本的表现差异定义了神经单元敏感度的指标,进一步将模型中面对对抗样本最敏感的一部分神经单元定义为敏感单元,它们对于模型的分类错误有着重要的贡献,即为深度神经网络的缺陷;在分析得到模型缺陷后,使用敏感单元稳定化方法进行训练,该方法通过在训练过程中将模型敏感单元面对对抗样本的内部表征和原始样本相似,使得模型学习到对于对抗样本不敏感的表征。该方法可以有效地找到模型的弱点,并进行针对性的修复,提高深度神经网络模型对于对抗样本的鲁棒性。

如图2所示,使用pgd白盒攻击方法实现敏感单元稳定化的方法,进一步包括如下步骤:

步骤1、使用pgd白盒攻击方法生成对抗样本d′={x′i|i=1,...,n},并组合得到偶对集合

步骤2、对深度神经网络逐层逐神经单元计算其在偶对集合上的敏感度;计算神经单元敏感度的公式如下:

式中,表示神经单元在偶对集合上的神经单元敏感度,分别代表神经单元对于原始样本xi和对应的对抗样本x′i的输出。

步骤3、判断敏感度是否低于阈值;

如图3所示,对于深度神经网络模型的第1至k层,计算每一层的各神经单元的敏感度。设定一个敏感度阈值;针对每一层,判断各神经单元的敏感度是否低于该阈值。

在图3中,以第二层为例,表中的虚线代表阈值,虚线以下的为敏感度低于阈值的神经单元,这些神经单元将被舍弃;虚线以上的为敏感度大于等于阈值的神经单元,这些神经单元为第二层的敏感单元。

步骤4、得到深度神经网络每个神经单元的敏感度结果,逐层选取敏感单元;

步骤5、选取若干层使用敏感单元稳定化方法进行针对性修复;

在深度神经网络模型的第1至k层的所有敏感单元都被选出后,从第1至k层中选取若干层作为被修复的层(也就是上述实施例中的预设层)。

将偶对集合作为训练集,使用敏感单元稳定化方法,对被修复的层进行训练。该敏感单元稳定化方法利用如下的整体优化损失函数实现:

式中,λ为损失函数系数,为整体优化损失函数,为稳定化损失函数。

进一步地,本发明还提供一种提升深度神经网络模型鲁棒性的装置。如图4所示,该装置包括处理器和存储器,还可以根据实际需要进一步包括通信组件、传感器组件、电源组件、多媒体组件及输入/输出接口。其中,存储器、通信组件、传感器组件、电源组件、多媒体组件及输入/输出接口均与该处理器连接。前已述及,节点设备中的存储器可以是静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、快闪存储器等,处理器可以是中央处理器(cpu)、图形处理器(gpu)、现场可编程逻辑门阵列(fpga)、专用集成电路(asic)、数字信号处理(dsp)芯片等。其它通信组件、传感器组件、电源组件、多媒体组件等均可以采用现有智能手机中的通用部件实现,在此就不具体说明了。

另一方面,在该提升深度神经网络模型鲁棒性的装置中,所述处理器读取所述存储器中的计算机程序,用于执行以下操作:构建偶对集合;所述偶对集合由原始样本和对应对抗样本构成;针对待检测模型,逐层计算每个神经单元在偶对集合上的神经单元敏感度;根据各神经单元的神经单元敏感度,选取每层的敏感单元集合;将各层的敏感单元集合组成待检测模型的敏感单元集合,针对待检测模型中预定的至少一层进行训练。

与现有技术相比较,本发明首先提出了神经单元敏感度的指标,用于度量模型中各神经单元在面对原始样本和对抗样本的表现差异;其次,本发明进一步将模型中面对对抗样本最敏感的一部分神经单元定义为敏感单元,它们对于模型的分类错误有着重要的贡献,即为深度神经网络的弱点;同时,本发明提出了提升模型鲁棒性的方法—敏感单元稳定化,该方法通过在训练过程中将模型敏感单元面对对抗样本的内部表征和原始样本相似,使得模型学习到对于对抗样本不敏感的表征。该方法可以有效地找到模型的弱点,并进行针对性的修复,提高深度神经网络模型对于对抗样本的鲁棒性。

上面对本发明所提供的提升深度神经网络模型鲁棒性的方法及装置进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质内容的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1