Adversarial Attack

一 Attack

 

        一个已经被训练好的神经网络用于现实世界中时,该神经网络可能会被攻击。例如当一个输入图像增加一些非常小的变化,神经网络的输出会发生变化,不再是目标结果。根据神经网络输出的结果可分为以下两种类型:

  • Non-targeted:输出的结果可以是任意不同于原来的结果。
  • Targeted:输出的结果是特定的类型

        对于Non-targeted的攻击类型,我们需要神经网络输出的结果与真实值越远越好;对于Targeted的攻击类型,神经网络的输出除了与真实值越远,还需要使其与目标值尽可能的接近。对于这两种攻击,都需要保证输入与原始值尽可能接近,目的是为了确保攻击不易被察觉。

Adversarial Attack_第1张图片

        为了尽可能缩小攻击的图像与原始图像的差距,我们希望两者之间的差距小于一个值。这里有两种定义该差距的方式。一种方式定义的差距是对每一个特征的差值取平方并相加,另外一种方式定义的差距是取所有特征差值绝对值的最大值。后一种定义比起前一种定义更能不易被人察觉,一般采取后者。

        与一般的梯度下降不同,这里优化方式是有限制的,必须确保update的x满足d(x0,x)<=e,一种办法是一旦x不满足这个限制,就把它固定回来;另外一种方式是使用FGSM,这里对计算的梯度取了一个sign,从而确保g只取-1和+1,这样就保证了x一定满足约束条件。

Adversarial Attack_第2张图片

        上述所讲的攻击都是基于神经网络的参数是已知的情况下,一般称这种神经网络为White Box,与之对应的不知道参数的模型称之为Black Box。针对黑箱攻击,如果知道目标神经网络的训练集,那么可以训练一个proxy的神经网络,使用这个proxy的神经网络去产生被攻击的对象。或者可以使用Ensemble Attack,将一个图像去攻击多个White Box的模型,获得较好的攻击效果,再拿这个图像去攻击一个黑箱模型。

二 Defense

        为了抵御攻击,模型也有一些防御的方式。神经网络的防御方式主要有两种,一种是被动防御,另一种是主动防御。

        被动防御是对输入的数据做一个Filter后,再扔到神经网络中。一种Filter的方式是对图像进行smoothing,将攻击对象smoothing后,可以获得图像的正确类别,但是这种方式存在一个副作用,对于一个正常的图像,经过smoothing后可能会使得其信心分数下降。另外还可以使用图像压缩或者生成器的方式进行Filter。然而如果攻击方知道使用的防御策略,仍然可能会攻破模型,因此提出了一种Randomization的方式,对图像做一个随机的处理。

        主动防御是在训练模型的时候就把模型训练的更加稳健。这种做法是先用原始数据对模型进行训练,然后再考虑可能的对数据的攻击方式,再把生成的新的训练集交给模型去训练。这种主动防御的策略也被称为数据增强。但是这种方式仍然存在一个问题,如果模型在训练的时候没有考虑到攻击的方式,那么模型仍然存在被攻破的可能。

你可能感兴趣的:(深度学习,人工智能,机器学习)