论文-阅读理解笔记Adversary Resistant DeepNeural Networks
摘要
主要介绍在网络安全方面深度学习(DL)的应用主要存在模型会受到敌对样本的影响的缺陷,攻击者通过利用这种缺陷,可能会导致严重的结果。
深层网络结构像其他机器学习方法一样在学习的过程中会被一些不明显的潜在威胁操作所欺骗,随着特征的重要性的增加,攻击者通过微小的调整使得模型相信修正后的样本。随着DNN(Deep Neural Networks)在恶意软件检测领域的广泛应用,这个缺陷的可怕性日渐暴露。在这篇论文中,提出了一种通过在DNN模型的训练和测试阶段引入随机特征的方法,使得模型特征描述更为明显。就算攻击者可以提供关键特征和模型信息,但随机性的引入会降低攻击样本的影响力。本文中提出的随机特征去噪化的方法可以被视为随机丢弃,是在标准DNN的隐藏层次上的;提出该方法的理由主要有以下几个:首先,随机特征去噪使得攻击者利用DNN的“盲点”更困难。 其次,我们的对抗性DNN保持理想的分类性能,同时只需对现有底层体系结构进行最小限度的修改。第三,我们在理论上提出的技术保证DL对敌对样本的抵抗力。最后,虽然这项工作深度学习被证明是可以应用在其他应用,例如图像识别。
(在这里调研了对Dropout的理解:能够避免过拟合,在训练包含dropout层的神经网络中,实质是训练了多个子的神经网络,最后在测试的过程中,将这些小的子网络组合起来,类似一种投票的机制来作预测。有点集成学习的味道。)
2背景
尽管一个训练好的模型能够识别样本,但向输入样本中加入扰动还是可以欺骗深度神经网络。输入空间太大而不能全部检查是可能存在”盲点“的对象样本的,具体来讲,攻击者是通过高效的程序找到最具有影响力的盲点,然后利用该盲点生成敌对样本导致DNN模型对数据点进行分类到不正确的类别下的结果。敌对样本可以通过计算与网络输入变量相关的代价函数的导数来生成。任何输入样本的梯度表示该高维输入空间中的方向向量。(只有一个) 沿着这个方向,这个输入样本的任何小的变化都会导致DNN产生完全不同的预测结果。 这个特定的方向非常重要,因为它代表了降低DNN性能的最有效的方法。 发现这个特定的方向是通过将来自输出层的层梯度通过错误的反向传播一直传回到输入层来完成的。 然后可以将输入的梯度应用于输入样本以制作对抗性示例。
更具体的说就是定义的代价函数L(θ,X,Y),其中θ,X和Y分别表示DNN的参数,输入数据集和分别对应的标签。敌对样本是通过向真实样本中添加扰动δX而产生的。快速梯度符号法[9]被提出用于计算敌对扰动如下:
JL(X)表示成本函数L(·)相对于X的导数。 φ控制要添加的渐变的比例。
应该指出的是,δX必须控制在小范围内。 否则,添加δX将导致对于实际样本的重大的扭曲,从而使操作易于检测到。
为了抵抗敌对样本,主要有俩个方法:1.增强数据;2.增强模型的复杂性
有许多方法可以强化数据的复杂形式, 原则上,这些方法通过将知识样本与潜在盲点相结合来扩展训练集,这是一种反馈性的训练过程。主要是由于DNN通常从中输入空间通常太宽而无法充分探索这一局限,为此提出的一种称为DataGrad的正则化惩罚,通过像生成模型一样的方法对标准DNN进行处理,让对抗样本通过反向传播产生,混合到训练集中并直接整合到模型的学习方式,在大多数对抗性训练方法[9,20]中,对于特定类型的DNN,可以高效地生成敌对样本。对抗性训练已被证明能够有效防御那些强大的对手。
快速梯度符号法(The fast gradient signmethod)[9]可以快速生成大量敌对样本,而DataGrad[20]则关注每个参数并动态更新生成它们;但存在无限的敌对样本的输入,每一次遇到新的敌对样本时,我们都要重复一次对抗训练过程。DataGrad利用对抗性扰动更好的进行探索基础数据流,减少盲点但不能保证覆盖所有的可能的盲点。我们并没有通过训练解决这个问题,相反设计原则是增加敌人在找到有效对抗空间的难度(利用敌对样本)
主要的原则是提高复杂DNN模型相对于简单DNN模型生成敌对样本的抵抗性。DNN模型本身已经非常复杂,既考虑到了他们试图近似的非线性函数,也考虑到了它们的许多参数的分层组成。主要的方法是通过从另一个DNN“提取”的数据样本来训练DNN。通过使用从其他DNN传来的知识,所学习的DNN分类对敌对样本不太敏感。在这个防御策略中使用的DNN模型可以通过训练两个其他共享相同功能并具有类似性能的其他DNN模型被攻击者模仿,一旦学习了两个逼近DNN模型,攻击者就可以生成专门针对该提取增强DNN模型的敌对样本(是可以被发现的),这里提议将自动编码器和标准DNN堆叠在一起。它表明,这种自动编码器的堆叠增加了DNN对敌对样本的抵抗性。(自动编码器目标是降维,提取特征,抽取关键的特征先编码再降维还原。中间层神经元个数比较少,输入输出个数相同,让输出的神经元更具有代表性)
将神经网络的隐含层看成是一个编码器和解码器,输入数据经过隐含层的编码和解码,到达输出层时,确保输出的结果尽量与输入数据保持一致。也就是说,隐含层是尽量保证输出数据等于输入数据的。 这样做的一个好处是,隐含层能够抓住输入数据的特点,使其特征保持不变
鉴于上述的分析,除了潜在的敌对空间,我们认为还需要对抗从最佳近似值生成的敌对样本的抵抗性,鉴于此本文提出了一种新的对抗性DNN,它不仅增加了发现盲点的难度,而且还增强了自身抵抗最佳近似值生成的敌对样本的“免疫性”。
4随机特征去噪(Random Feature Nullification)
如下图说明了DNN如何用我们的随机特征去噪方法进行修改。与标准的DNN不同,该方法在输入和第一隐藏层之间引入了附加层。 这个中间层是随机的,在训练和测试阶段都是随机性的来源。 用图像识别举例,当DNN将图像样本传递通过图层时,它会随机删除图像中的一些像素,然后将部分损坏的图像提供给第一个隐藏层。由超参数μp和μp2确定像素的比例。
4.1模型说明
给定由X∈RN×M表示的输入样本,其中N和M分别表示样本和特征的数量,随机特征去噪仅仅是执行X与Ip的元素乘法。给定由X∈RN×M表示的输入样本,其中N和M分别表示样本和特征的数量,随机特征去噪仅仅是执行X与Ip的元素乘法。(注意,在执行随机去噪时,某些特征信息不可避免地会丢失,这些特征信息可能对分类很有用。为了弥补这一点,我们为每个数据样本选择不同的取消(无用)率pi。)这个过程可以导致基础数据流在训练期间有更好的探索,导致分类性能略好;虽然DNN在保留所有神经元的情况下运行良好,但测试结果比使用随机选择的神经元训练的模型产生更差的测试结果。同时最近的研究结果促使要增大随机性,在我们的训练算法中,不仅要随机选择要被取消的神经元,还要随机确定要取消的神经元的数量
在训练DNN时,对于每个输入样本xi,生成相应的Ipi,其中Ipi是二进制向量,每个元素都是0或1。 在Ipi中,由pi确定的零的总数是随机分布的。不失一般性的情况下,我们选择两个典型的随机分布,即pi的高斯分布和Ip的均匀分布。随机特征去噪可以被看作是一个专门的层简单地将去噪输入(nullified input)传递给标准DNN的过程。因此,具有随机特征的DNN的目标函数可以定义如下:
这里,yi是输入xi的标签,θ表示模型参数的集合。随机特征去噪过程由函数q(xi,Ipi)= xi ⊙Ipi表示,其中⊙表示Hadamard乘积和f(xi,Ipi;θ)= F(q(xi,I Ipi);θ)
在训练期间,方程(2)可以使用随机梯度下降(与标准DNN类似)的方式求解。 唯一不同的是每次训练样本,随机挑选的Ipi在向前和向后传播期间固定,直到下一个训练样本到达。这使得可以计算L(f(xi,Ipi;θ),yi) 关于θ的导数并相应地更新θ。在测试过程中,当模型参数固定时,为了得到稳定的测试结果,我们使用高斯分布N(μp,σp2)作为随机变量pi的替代值。 特别地,我们按照前面描述的相同过程生成向量Ip,但是p等于μp。
根据等式1,通过计算关于输入样本的DNN代价函数的导数来产生对抗性扰动。(--攻击过程)现在让我们假设一个攻击者使用相同的过程来攻击我们提出的模型。具体而言,攻击者计算L(f(~x,Ipi;θ),yi) 关于~x的偏导数,其中~x表示任意测试样本,y表示相应的标签
Ip是测试期间使用的掩模矩阵。一旦计算了上面的导数,就可以通过将φ·sign(JL(~x))加入到~x中来仿真产生对抗样本。
为了解方程(3),需要计算JL(q)和∂q(~x,Ip)/∂x。 请注意,使用错误的反向传播可以轻松解决JL(q)的求解问题。 然而,∂q(~x,Ip)/∂x带有随机变量Ip。这是乘法随机变量Ip本身,它禁止攻击者为了产生所需的敌对扰动计算导数。 如果Ip被设计成是加法的而不是乘法的,那么导数的计算就不会受到影响,因为∂q(~x,Ip)/∂〜x =∂(~x + Ip)/∂x相当于永远等于1(anall-one vector 1) 因此,~x的精确对抗扰动可以很容易地计算为JL(q)。 此外,之前的工作[11]已经证明,使用累加的高斯噪声实际上并不能提高DNN模型对敌对样本的抵抗性。
对于每个样本,Ip内的零的位置是随机分布的。 攻击者几乎不可能为Ip匹配一个与随机生成的值相匹配的值。 因此,对于这个攻击者来说,最好的做法是估计Ip的价值(value)。 为了让这个攻击者能够做出最好的逼近值,我们进一步假设p的值是已知的。 有了这个假设,我们可以随机抽样Ip并将其视为最佳逼近Ip*。 使用这个近似值,攻击者随后计算得到最强大有力的敌对扰动。 如图2顶部阴影区域所示,对于黑盒DNN,我们假设最强大的敌对扰动是δ〜x。那么,实际样本~x的敌对扰动是δ〜x ⊙Ip*。
假设攻击者使用合成敌对样本〜x +δ〜x ⊙Ip*攻击下图底部阴影区域所示的系统。
正如我们所看到的,合成样本必须通过特征去噪层才能通过 实际的DNN。我们用下面的形式描述了这种去噪:
在这里,x ⊙Ip*是一个去噪的实际样本(nullified real sample),而δ⊙Ip*⊙Ip表示添加到它的敌对扰动。 有了Ip*⊙Ip,尽管δ〜x是影响DNN的对抗性扰动,但这种高影响力的对抗性扰动仍然是扭曲的,不再是欺骗DNN的最有效的扰动。在第5节中,我们将提供经验证据来进一步验证这个结果。
简而言之,随机性自然来自Ip,它可能是对抗敌对扰动的最佳防御手段。把我们特定的drop-out层解释为“通过随机性的安全”的一种形式是很重要的。 我们的参数化特征函数输入层并不作为隐藏层模型集合的形式(或者贝叶斯平均法,在单隐层网络的情况下,drop-out层已经证明是等价的),尤其是考虑到在测试时引入了随机性。
现有的防御技术可以通常是利用各种正则表达式训练一个标准的DNN模型(甚至可以看做DataGrad=正相关)总体的目标是:
其中,第一项是标准DNN的训练目标,第二项则是一个相关项,这里γ控制相关的强度,通过加入相关项,上式惩罚攻击扰动所代表的的方向,对于制造敌对样本是最佳的。总而言之,先前的研究仅构建了对抗标准DNN的敌对样本的DNN模型,包括真实样本和敌对样本的空间太宽无法进行彻底的探索,而我们提出的这个方法是基于模型复杂度的方法,几乎不增加任何额外的参数,从而使每次迭代的运行时间不受影响。
实验:利用Anaconda在spyder下运行了一个全连接神经网络分类mnist的测试