李宏毅机器学习笔记33
目录
摘要
Abstract
1.adversarial attack概念
2.如何做到adversarial attack
3.Attack approach
Fast gradient sign method(FGSM)
4.Black Box attack
摘要
本篇文章继续学习李宏毅老师2025春季机器学习课程,学习内容是adversarial attack的相关概念以及进行白盒,黑盒攻击的相关原理及方法。
1.adversarial attack概念
在实际应用中,network不仅仅需要正确率高,还需要能够应付人类故意骗过network的行为。举一个例子,我们有一个影像辨识系统,给他一张照片begin image,可以告诉我们这张照片属于什么类别,下图示例中begin image属于猫的类别。现在我们在照片上加入非常小的杂讯,即一张照片可以看作是一个非常长的向量,我们在向量的每一个维度上加入一点小小的杂讯。加入杂讯的照片(attacked image)一般用肉眼无法辨别,我们期待attacked image丢入network输出不是猫。攻击可以分为两种攻击,一种是无目标攻击,只要让network输出不是猫就算成功。

另一种更困难的攻击是有目标的攻击,此时我们需要network输出不是猫而是别的东西,比如说加入杂讯后希望network输出海星,把猫误判为海星才算成功。在一个50层的ResNet中,输入begin image,输出是tiger cat,信心分数为0.64。在加入杂讯后在让ResNet判断,输出是Star Fish,且信心分数为1。

将两张照片相减并将差距放大50倍会得到下图的结果。

2.如何做到adversarial attack
输入是一张图片X0,network是一个function称为f,输出是一个distribution成为value。假设network参数是固定的,我们要找出无目标攻击的杂讯,需要一张新的图片X,作为输入时它的输出为y,我们希望y与正确答案的差距越大越好。定义一个loss function为L,L是y与正确答案的差距取一个负号,这样得到最小的L就是y与正确答案的差距最大值。如果是有目标的攻击,就不仅需要y与正确答案的差距越大越好,还需要y与目标答案越近越好,此时的L就可以写为y与正确答案的差距的负值与y与目标答案的差距相加。

除此之外还有一个限制,就是X与X0之间的差距要小到人眼无法察觉。如何计算两张图片的差距呢?两张图片都视为一个很长的向量,X与X0相减得到。一种L2-norm是将
的每一个数值拿出来取平方在做加法的和作为距离。另一种L-infinity,是取
中绝对值最大的数值作为距离。

对于人类的感知来说,我们选择L-infinity更好。举一个例子,下图中的四色方块,一个是四个颜色都做了一点微小的改变,一个是集中改变绿色的小块,他们的L2-norm是相同的,但是集中改变颜色的L-infinity更大,从这个例子中L-infinity更接近人类的感知,更适合做攻击。

3.Attack approach
我们首先要找一个X去minimize loss的值,先去除掉X的限制,这就普通的训练模型没有差别,只是从调整参数变为调整输入(加色参数是固定的),用的一样是gradient descent。初始化的值为X0,之后就和普通的gradient相同,只是gradient不是network的参数,而是输入的图片对loss的gradient,输入的图片视为向量也就是去计算向量X中每一个数值对L的偏微分,然后用gradient去更新image就结束了。
接下来我们将X的限制加入。方法很简单,我们更新完image之后,发现X与X0的差距过大,我们就把X更改为符合限制的Xt。举例来说,如下图中右侧,方框为最大差距,更新完之后处于方框外,将点拉回到方框内即可。

Fast gradient sign method(FGSM)
FGSM是一种最简单的attack的方法,它只更新一次。在g这边做了一个特别的设计,它不直接使用gradient descent的值而是取一个sign,sign()的意思是如果括号内的值小于0就输出-1,括号内的值大于0就输出1,最后得到的效果就是,一定会落在蓝色方框内的四个角落。

4.Black Box attack
知道模型参数的叫做白箱攻击,不知道模型参数的叫做黑箱攻击。黑箱攻击如何实现?假设知道是用什么资料训练的,我们就可以训练一个proxy network去模拟我们要攻击的对象,可以成功攻击proxy network也许就能攻击我们不知到的black network。

如果没有训练资料的情况下,就可以自己输入一堆图片,获得输出,用这些当作训练资料去训练一个proxy network进行攻击。Black Box attack的成功率还是很高的,下图所示的数据中,非对角线的表示黑箱攻击,数据表示模型正确的概率,概率越低表示攻击越成功。在黑箱攻击时,无目标攻击的成功率还是很高的。

另一种攻击方法成功率更高,行代表被攻击的模型,列代表5个模型中被去除的模型,即对角线为黑箱攻击。不难看出,当一个image可以同时骗过多个network时,骗过一个不知道参数的黑箱network也很容易成功。

