对抗训练+FGSM, FGM理解与详解

本文深入解析了对抗样本的概念,探讨了其在现实中的应用,以及产生对抗样本问题的原因,重点介绍了FGSM和FGM两种制造对抗样本的方法。通过线性模型的视角,解释了为何小扰动会导致大影响,同时提供了解决方案以增强模型的防御能力。
摘要由CSDN通过智能技术生成

简介

本文旨在收集对抗训练相关的内容,并作出比较详细的理解和讲解。

一些基本概念的收集

本部分收集对抗训练相关的一些基本概念,并结合写下自己的理解。

对抗样本

我们对数据集中的数据,做一些比较小的、但却能带来很大杀伤力的改动。改动后的数据可能会让模型以较高的confidence输出一个错误的预测。1
很多模型面对这种样本的时候,是很容易出错的。2
也就是说,对抗样本应该是一些只加入了轻微扰动,却给模型带来较大负面影响的样本。

现实中的对抗样本

设原样本为 x x x
设引入扰动后的样本为 x ~ \tilde{x} x~:
x ~ = x + η \tilde{x} = x + \eta x~=x+η
(此处的 η \eta η为引入的扰动)

现实中我们怕的是,两个样本 x x x x ~ \tilde{x} x~在本质上没有区别,但模型觉得它俩不一样。
比如说, x x x x ~ \tilde{x} x~是两张我们看起来长得一毛一样的图片,但实际上它们每一个像素的颜色上有无比轻微的、我们观察不太出来的区别,但就因为这些区别,模型认为这俩图片所在的class不一样,那这种情况是不能被我们人类接受的。

当然,"观察不太出来"是从人的角度出发、比较主观的。
我们还是用比较数字化的方式1来定义一下这种区别:
很多储存图片的设备,每个像素只存8个bit,也就是说,在设备储存精度之外的一些信息,对储存图片的设备来说是不重要的。
那我们就可以这样规定:只要 η \eta η满足 ∥ η ∥ ∞ < = ϵ \Vert \eta \Vert_\infty<=\epsilon η<=ϵ (也就是说 η \eta η这个向量里每个元素的绝对值中最大的也小于 ϵ \epsilon ϵ), 我们就规定 x x x x ~ \tilde{x} x~的class是一样的。此处的 ϵ \epsilon ϵ小到对我们的储存或者传感设备来说, x x x x ~ \tilde{x} x~是一样的。
再换句话说,扰动 η \eta η足够小,小到我们的储存或者传感设备感受不到。

产生"对抗样本问题"的原因

Goodfellow et al.1提出,模型的线性就可能足够让这类问题产生。
为什么模型的线性会让"对抗样本问题"产生?也就是说,为什么由于模型的线性,当我们对某些数据引入较小的扰动的时候,会带来较大的负面影响?
Goodfellow et al.1是这样解释的:
假如我们把 x x x扔进一个线性模型,那我们就得到:
w T x w^Tx wTx
假如我们把 x ~ \tilde{x} x~扔进一个线性模型,那我们就得到:
w T x ~ = w T x + w T η w^T\tilde{x} = w^Tx + w^T\eta wTx~=wTx+wTη
也就是说,对于这两个样本,线性模型出来的结果之间就只差一个 w T η w^T\eta wTη。假设 w w w中一共有 n n n个元素,每个元素平均值是 m m m,那么这个 w T η w^T\eta wTη的算出来的就会是在 n m ϵ nm\epsilon nmϵ这个水平(因为是点乘)。
那也就是说,我们的原始样本 x x x和对抗样本 x ~ \tilde{x} x~分别输入模型之后,得到的输出之间会相差约 n m ϵ nm\epsilon nmϵ。这个差距,是会随着 w w w的维数( n n n)来线性增加的。也就是说,如果我们的问题是一个高维问题,就算加入的干扰不多,也会由于维数较多而给模型输出带来很大的影响。
这就是Goodfellow et al.1解释线性模型能让"对抗样本问题"产生的逻辑。

制造对抗样本的方式

那么如何让模型面对对抗样本时也能有能力识别正确?我们可以制造对抗样本来攻击模型,以此提升它的防御能力。

FGSM

FGSM的全称是Fast Gradient Sign Method. 如果用FGSM来制造扰动 η \eta η,可以使用如下的式子:
η = ϵ s i g n ( ∇ x J ( θ , x , y ) ) \eta = \epsilon sign(\nabla_xJ(\theta, x, y)) η=ϵsign(xJ(θ,x,y))
其中 x x x是输入, y y y x x x的标签, θ \theta θ是模型的参数, J ( ) J() J()是损失函数。

我们来看一下这个式子里各部分的寓意和用意。
首先, ∇ x J ( θ , x , y ) \nabla_xJ(\theta, x, y) xJ(θ,x,y)这部分是损失函数关于输入 x x x求导得到的梯度,也就是说,如果我们让 x x x的值往这个方向走,损失函数是上升得最快的。它解决的问题是:让 x x x往哪个方向走(即我们要如何扰动这个 x x x),才能让模型在面对正确的标签 y y y的时候,反而高效地把损失函数拉得很大?从而让模型倾向于认为 y y y并不是正确的标签。

其次,我们来说一下这个式子剩下的部分,这部分主要是为了使得 ∥ η ∥ ∞ < = ϵ \Vert \eta \Vert_\infty<=\epsilon η<=ϵ
ϵ \epsilon ϵ就是我们一开始提到的,扰动 η \eta η的无限范数不能超过的值。那我们是如何做到这一点的呢,答案是靠 s i g n ( ) sign() sign() s i g n ( ) sign() sign()的函数图像3是这样的:
在这里插入图片描述
也就是说:
s i g n ( a ) = { 1 , a > 0 0 , a = 0 − 1 , a < 0 sign(a)=\left\{ \begin{aligned} 1 \qquad ,a>0 \\ 0 \qquad ,a=0 \\ -1 \qquad ,a<0 \end{aligned} \right. sign(a)=1,a>00,a=01,a<0
如果这里的 a a a是一个向量的话,就会对它的每个维度分别做这样的操作。4

由于 s i g n ( ) sign() sign()函数的输出在{-1,0,1}之间,那么简单地, ϵ s i g n ( ) \epsilon sign() ϵsign()的输出就在 { − ϵ , 0 , ϵ } \{-\epsilon,0,\epsilon\} {ϵ,0,ϵ}之间了,从而,我们就成功使得 ∥ η ∥ ∞ < = ϵ \Vert \eta \Vert_\infty<=\epsilon η<=ϵ了。

总结: ∇ x J ( θ , x , y ) \nabla_xJ(\theta, x, y) xJ(θ,x,y)给我们提供了扰动 x x x的高效方向, ϵ s i g n ( ) \epsilon sign() ϵsign()帮助我们使得扰动大小被限制在某个范围内。

FGM

FGM的全称是Fast Gradient Method, 一般指的是这样的扰动(出现于Adversarial Training Methods for Semi-supervised Text Classification这篇论文):
η = ϵ g ∥ g ∥ 2 其 中 , g = ∇ x J ( θ , x , y ) \eta = \epsilon \frac{g}{\Vert g \Vert_2}\\ \quad\\ 其中,g = \nabla_xJ(\theta, x, y) η=ϵg2gg=xJ(θ,x,y)
也就是说比起FGSM中 s i g n ( ) sign() sign()的方式,这里做了一个L2范数归一化。
g g g的第 i i i维是 g i g_i gi,那么就有:
g ∥ g ∥ 2 = ( g 1 ∥ g ∥ 2 , g 2 ∥ g ∥ 2 , . . . , g n ∥ g ∥ 2 ) = ( g 1 g 1 2 + g 2 2 + . . . + g n 2 , g 2 g 1 2 + g 2 2 + . . . + g n 2 , . . . , g n g 1 2 + g 2 2 + . . . + g n 2 ) \begin{aligned} \frac{g}{\Vert g \Vert_2} &= (\frac{g_1}{\Vert g\Vert_2}, \frac{g_2}{\Vert g\Vert_2}, ...,\frac{g_n}{\Vert g\Vert_2})\\ &=(\frac{g_1}{\sqrt{g_1^2+g_2^2+...+g_n^2}},\frac{g_2}{\sqrt{g_1^2+g_2^2+...+g_n^2}},...,\frac{g_n}{\sqrt{g_1^2+g_2^2+...+g_n^2}}) \end{aligned} g2g=(g2g1,g2g2,...,g2gn)=(g12+g22+...+gn2 g1,g12+g22+...+gn2 g2,...,g12+g22+...+gn2 gn)
通过这样归一化的话,还能保留每个维度之间的相对大小,不像FGSM直接用了一个把每个维度转成-1,1或0的 s i g n ( ) sign() sign()函数。


  1. EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. Intriguing properties of neural networks ↩︎

  3. https://baike.baidu.com/item/sign/115763?fr=aladdin ↩︎

  4. https://ww2.mathworks.cn/help/releases/R2017a/matlab/ref/sign.html ↩︎

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值