1、文章背景
深度学习在很多深度学习和机器学习任务中都有应用,作者认为评估神经网络的安全性和鲁棒性是很重要的,文章给出了3个例子。第一个例子是在语音识别方面,研究表明可以产生一个对机器学习来讲是语音的声音,对人来讲,会被人认为是杂音。于是用户的设备可能会被控制,但是用户可能并不知情。第二个例子是有关恶意文件的分类,研究表明,在恶意文件上做小的改动,就可以让分类器认为它是良性的,但是还是恶意文件。第三个例子是自动驾驶汽车,自动驾驶汽车有可能会误判一个受污染的路牌,比如说一个停止的标识上面有一个涂鸦,而自动驾驶汽车有可能将停止的路牌看做是速度的限制,比如说100公里每小时,而这是十分危险的。
2、
根据这篇文章,作者将那些会导致神经网络误分类的输入叫做Adversarial Examples。有一个更规范的定义:给定一个输入和它的正确分类,可以找到一个作为输入,输入和很相似,但是对于深度学习的神经网络来讲,会将它分类为,而和的类别是不一样的。
3、
文章中作者提出了两个评估神经网络对抗鲁棒性的方法:第一个是证明它的下线,但是作者认为这种方式是比较难去实现的,于是就尝试另外一种方式,就是构建攻击的算法,然后去测试神经网络鲁棒性的上限。在这篇文章中,他们认为他们提出的攻击算法是比较强的,可以去作为衡量防御算法或者是评估神经网络鲁棒性的一个标准。
4、
主要有两点:第一点是作者仅将本文提出的攻击算法用在以图片分类为目的的神经网络上;第二点是衡量神经网络鲁棒性或者是攻击算法的效率的标准是,为了改变分类结果而对原图做出修改的量。
5、
在谈技术细节之前,介绍一下文章作者评估其提出的攻击算法的过程。其一是通过比较本文提出的攻击算法与其他已提出的算法的表现;其二是将本文提出的攻击算法应用于攻击一个采用了防御算法的神经网络,并将其结果与之前无防御算法的神经网络的结果做比较。
6、技术细节
用于量化对抗样本与原样本之间的相似性的量,本文中作者采用了3种Lp距离,Lp距离的定义如上图公式。第一种是L0距离,用来计算对抗样本与原样本中像素值不同的像素的量。
第二种是L2距离,标准的欧几里得距离或者均方根距离,作者提出这个距离可以保持的非常小,尽管有很多像素的像素值被改动,只要每个改动足够的小即可。
最后一种是距离,实际上就是计算两个样本中最大的像素值的差。
7、
以上是文章中提到的防御算法。算法的核心是将softmax function做一个修改,引入了一个T,T叫做蒸馏温度。提出这个算法的研究者认为引入T的话,会使softmax function得图像更平滑。
8、
防御算法最终的目的是去训练一个鲁棒性高的神经网络,过程:
首先会训练一个,这个和最终要训练的神经网络具有相同的结构。在这里,让T>1。然后用给训练集里面的图片做标识,用的是软标签。最后根据软标签训练蒸馏后的模型。
什么是软标签?
在很多训练集里面用硬标签,比如说有一个猪的照片,硬标签的话直接标识它为猪,软标签的话会给猪和其他分类打分。比如这是一个猪的图片,那么猪这一个类别的分数就很高,而其他类,比如猫,狗,手枪,飞机等会比较低。
这个算法的提出者认为会传达一些隐藏的信息给最终要训练的神经网络。
9、
文章还提及了其他攻击算法,其目的是为了比较他们提出的和这些算法的表现。
10、
为了测试他们的攻击算法,首先他们得获得神经网络,获得模型,于是他们训练了自己的两个模型,运用两个数据集,至于比较大的,他们用了已经训练好的神经网络,叫做来测试。
11、对抗样本的构建
作者希望找到一个与原样本尽可能相似的对抗样本,而这个对抗样本会被神经网络归类为
是对抗样本,而其内的元素则是图片的像素值,像素值已被归一化,所以它的区间是
。
12、
作者对他们的方程进行了修改,首先替换了方程中非线性的限制条件,即,
用一个目标函数去替换它,目标函数和非线性的限制条件满足这么一个关系:
当且仅当对抗样本被归类为的时候,目标函数的值才会。它们同时利用了双曲正切函数的值域性质,函数的值域是从,他们通过用这一项,替换,从而让对抗样本中的每一个值都是从0到1的。
13、
最终的目标是找到对抗样本,从而使方程最小化,是距离项,
是目标函数那一项。是,相当于是权重,如果大的话目标函数占的权重就大,小的话,则距离所占的权重就大,本文中的值是通过二叉搜索去决定的。本文中作者同时也研究了,不同目标函数的表现,他们最终得出,在这里展示的目标函数 拥有最好的表现。
对于目标函数,叫做logit,是softmax function的输入,softmax function只会对输入做归一化,而不改变它们之间的不等关系,意思说假设一个logits是所有logits中最大的,其对应的输出也是所有输出中最大的。减法这一项,若一个对抗样本输入到目标函数中,若它会被分类为,那么是一个负数,从而函数会返回和中的最大值。相当于调节的一个变量,换一个角度思考一下,假设对抗样本并没有被分类为,那么所有logits中的最大值,将不会是,意思是是正的,但又是正的,所以会返回一个正值。将正的值带入
可以看到方程并没有往最小化的方向去走,意思说寻找对抗样本的方向不对。
14、
作者在他们的实验中进行了3种攻击,第一个是L2的攻击,L2攻击是通过最小化方程
文中提到了采用多起点的梯度下降,从而使方程去到最小值,而不是极小值。
至于L0攻击,因为L0距离的表达式是无法微分的,于是用了另外一个算法,首先规定一个集合叫做,意思是在这个集合中的像素才能被改变。然后通过用L2攻击去寻找集合里面没那么重要的像素值,从而将这些像素踢出这个集合,并且固定它们的值。这个过程将持续进行,直到L2攻击找不到对抗样本,于是L0攻击的最佳对抗样本就生成了。
至于攻击,因为攻击的距离表达式并不是完全可以微分的,所以作者在此对其方程进行了修改,就如下所示:
15、攻击结果
和其他算法相比可以看到,应用作者提出的攻击算法,对抗样本和原样本之间的距离是最小的。这里评估的是有目标攻击的结果,意思是说,让神经网络认为,对抗样本是一个特定的类别。
16、无目标攻击
作者认为无目标攻击没那么高效,距离尽管和其他攻击算法相比尽管是相对较低的,但是相对于有目标攻击,是要高的。无目标攻击指的是,神经网络将对抗样本归类为非 x 的正确样本即可。
17、
作者还将他们提出的攻击算法用于攻击一个采用了防御算法的神经网络,相对于没有采用防御算法的神经网络,距离并没有太大的提高,意思说防御算法并没有显著提高攻击的难度。
18、
上图展示的是对抗样本与原样本距离的均值和蒸馏温度之间的关系。根据提出(防御性蒸馏)研究者的说法,随着T的增加,攻击的难度应该是增加的,实际上根据本文的实验结果,随着蒸馏温度的增加,对抗样本与样本之间距离的均值并没有显著增加,也就是说对于他们的攻击算法来讲,蒸馏温度增加并不会使攻击难度升高。
19、转移性
转移性:意思是对一个神经网络的攻击可能对另外一个神经网络也有效。作者在实验中也证明了这一点。作者首先讲用于攻击一个标准的神经网络的攻击采用在了上,它们的攻击成功突破了这一道防线。于是作者最后点明,对于一个有效的防御算法,首先要阻断,也就是转移性。
20、评价
①提出的算法是足够强的。可以作为衡量以图片分类为任务的神经网络的鲁棒性的标准。至于攻击算法在其他神经网络上的应用还有待研究。
②在解释目标函数上并没有给出特别仔细的分析。
③文章的题目叫做评估神经网络的鲁棒性,但是最后只是提出了一个评估鲁棒性上限的方式,至于下限还不太清楚。
21、参考资料