李宏毅ML+DL学习记录:attack ML model

从attack和defense两方面进行记录,但是主要是attack

一.attack

1.目标:找到x

       假设我们已经训练好了一个猫分类器(要么是猫,要么不是猫),如果将一张猫的照片(即下图中的original image,设为x0)放到这个分类器中,它基本上会已很大的概率判断出这是一只猫(我们假设这个分类器的效果是比较好的)。
       那么我们现在想找到一个x(即下图中的attacked image),这个x和x0很接近(即至少在我们看来,这还是猫的照片),但是它能迷惑分类器,使分类器给出错误的判断结果(sth else)。
在这里插入图片描述
在这里插入图片描述

2.如何找到x?

1) 总体思路:

       设L表示loss function。
       在训练网络时,x是给定的,那么L就可以看成参数θ的函数,即𝐿𝑡𝑟𝑎𝑖𝑛 (𝜃)=𝐶(𝑦0, 𝑦true)。而在attack时,我们的网络是已经训练好的了,即θ已经是固定的了,我们要找的是某个x,所以此时的L应该是x的函数。
       attack时,情况也分为两类:无目标和有目标。
       无目标的L为:𝐿(𝑥)=−𝐶(𝑦,𝑦true );
       有目标的L为:𝐿(𝑥)=−𝐶(𝑦,𝑦true )+𝐶(𝑦,𝑦false )。
       并且,我们之前就说过,x是和x0接近的,所以应该还有一个限制:𝑑(𝑥0,𝑥)≤𝜀
      这里的d是如何定义的呢?也是两种方式:L2-norm(2-范数,也就是欧几里何距离)和L-infinity(∞-范数,𝑑(𝑥0,𝑥)=‖𝑥−𝑥 = 𝑚𝑎𝑥{∆𝑥1,∆𝑥2,∆𝑥3,⋯} )。

2)具体步骤:

       既然已经有loss function了,那我们还是按照gradient descent的方式来,只是这次算的是L对x的偏微分,而不是对θ的,但是不是多了一个d的限制吗?看下面的图:
在这里插入图片描述
在这里插入图片描述
       即对于每次迭代,先按常规的步骤算出xt,然后判断是否满足d的限制,如果满足,那么就用这个xt,如果不满足,那么就用fix(xt)函数的值来代替xt
对于fix函数的解释:
在这里插入图片描述
       L2-norm:圆圈包含的范围是所有满足d限制的x的取值,如果你算出来的xt不在这个范围内,那么就用圆圈内离xt最近的点(橘色的那个点)来代替xt
       L-infinity:正方形包含的范围是所有满足d限制的x的取值,如果你算出来的xt不在这个范围内,那么就用正方形内离xt最近的点(橘色的那个点)来代替xt

3)发生attack的原因

在这里插入图片描述
       红色代表虎斑猫的概率密度,其他两条线是错误种类的概率密度。从上面的图可以看出,在很多维度上,由x0移动到x,仍然是虎斑猫的概率是最大的,所以分类器仍然会把x判定为虎斑猫。但是在某一个特定的方向上(即下面那幅图),x0只要移动一点点(满足d限制),虎斑猫的概率密度就会骤减,而其他错误种类的概率密度会增加,所以分类器就会给出错误答案。(也就是说,如果你是任意给x0增加一些随机扰动项,分类器基本上不会判别错误,但是如果你给的是某些特定的扰动项,那么只需要改变一点点,就会使分类器判别错误。)

4)attack approaches

在这里插入图片描述
       如上图所示,不同的attack方法,基本就是不同优化方法和不同的d的限制的方法的组合。
在这里插入图片描述
       这里主要介绍了一下FGSM的方法。
在这里插入图片描述
       即若偏微分大于0,则△x为1,小于0,则为-1.

5) black box attack

       前面我们所讲的attack,是固定θ去找x,这种称为‘white box’,因为我们已经提前知道了θ,如果提前不知道θ,那么就称为‘black box’。那么‘black box’又是如何attack的呢?
       第一种:你知道训练该分类器的原始training data。使用这些training data自己训练一个网络,称为‘proxy network’,然后用这个‘proxy network’去找x’.通过这种方式找到的x’一般都能成功地攻击你的目标分类器。
如下图所示,如果目标分类器是ResNet-152,你的proxy network也是resnet-152的话,将找到的x’放到目标分类器中,目标分类器只有4%的正确率(正确率越低,说明attack越成功);如果目标分类器是ResNet-152,你的proxy network是resnet-101的话,正确率是19% 。
在这里插入图片描述
       第二种:你连该分类器的原始training data都没有,那么你只有先自己找一些图片,然后放到该分类器中,得到分类器给出的结果,然后把这些input-output pair当做训练该分类器的原始training data,然后再按照第一种方式操作。

二.defense

       defense分两种:passive defense(被动防御) and proactive defense(主动防御)

1.passive

       在原来的network前,加入一个filter,这个filter的功能就是减少attack signal的影响。举个例子,比如你这个filter的功能是smooth,那么对于x’来说,它和x0的区别就是在某个特定的方向上有些许差异,如果对x’进行平滑,那么x’的所有方向都会有改动(但是这种改动很小),那么在这个特定方向上的这一小小改动,就很有可能是x’回到 tiger cat概率很大的区域,那么attack signal的影响就减小了。
在这里插入图片描述
       不足:filter其实就相当于在原始的network前面加了一层layer,如果对方知道你的filter结构,仍然可以进行有效的attack。

2.proactive

在这里插入图片描述
       先用原始数据训练得到原始的network,然后对每一张照片,用这个原始的network找出𝑥 ̃n,把每一个𝑥 ̃n及其正确的标签(注意是正确的标签,也是就是xn对应的标签)看做一个input-output pair,X’表示这些pair的集合,最后用这个X’去更新原始的network。

       不足:假设你用算法A来找漏洞,进而得到更新过后的network,如果对方用算法B来attack你更新后的network,那么也很有可能会攻击成功。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值