FGSM文章第五节公式推导

本文是对Goodfellow的经典文章《EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES》的第五节进行公式推导,网上解读很多,不再通篇赘述,第五节不是太好懂,做一些数学推导,帮助理解。

该节的标题是ADVERSARIAL TRAINING OF LINEAR MODELS VERSUS WEIGHT DECAY,对抗训练和权重衰减的比较

1、场景描述

We can use this case to gain some intuition for how adversarial examples are generated in a simple setting.

通过一个例子(logistic regression),理解在简单的设置下,对抗样本是如何生成的,文中举了一个二分类问题,给出了两个式子如下:

y\in (-1,1), P(y=1)=\sigma(\omega^Tx+b)          (1)

J(\theta)=E_{x,y\sim p_{data}}\zeta (-y(\omega^Tx+b))            (2)

其中,激活函数\sigma(x) =\frac{1}{1+exp(-x)},   \zeta (x)=log(1+exp(x))是一个softplus函数,在此推导一下从(1)到(2)的过程

 

2、概率归一化

二分类问题服从bernoulli分布,概率分布如下:

\begin{cases} & P(\hat{y}=1) = \frac{1}{1+exp(-z)} =\sigma (1\cdot z)\\ & P(\hat{y}=-1) =1-P(\hat{y}=1)= \frac{exp(-z)}{1+exp(-z)}=\frac{1}{1+exp(z)} =\sigma ((-1)\cdot z)\\ \end{cases}       其中,z=\omega^Tx+b

为了将两种情况合并,用统一多项式来表示z的系数,令P(\hat{y})=\sigma ((a\hat{y}+b)z),两种情况中,z的系数+1和-1是一次多项式a\hat{y}+b\hat{y}=1,-1时候的取值,求解得a=1,b=0,得到:

P(\hat{y})=\sigma (\hat{y}z)      (3)

在Goodfellow的《深度学习》的6.2.2.2节有类似的计算,只不过y的取值是0和1,可以用上述方法求得书上的结果。

 

3、损失函数

损失函数是用的交叉熵,并且带入公式(3),有:

J(\theta,x,y)=-\sum_{x\in R_{input}}ylog(P(Y|X))=-E_{x,y\sim p_{data}}log(\sigma (\hat{y}z))         (4)

其中log(\sigma (\hat{y}z))=log(\frac{1}{1+exp(-\hat{y}z)})=-log(1+exp(-\hat{y}z))=-\zeta (-\hat{y}z),带入(4)有:

J(\theta,x,y) = E_{x,y\sim p_{data}}\zeta(-\hat{y}(\omega^Tx+b)),和文中给出的公式一样。

 

4、对抗训练

在训练过程中一边产生对抗样本,一边把对抗样本作为输入进行训练

         \eta = \epsilon sign(\bigtriangledown_x J(\theta,x,y)) \\ \\ \bigtriangledown_x J(\theta,x,y)=\bigtriangledown_xE_{x,y\sim p_{data}}log[1+exp(-\hat{y}(\omega^Tx+b))]\\ =E_{x,y\sim p_{data}} \frac{exp(...)}{1+exp(...)} \hat{y}(-\bigtriangledown_x\omega)     (5)

从公式(5)没法看出这句话Note that the sign of the gradient is just -sign(w) ,换另外一个方法来求梯度:

\bigtriangledown_x J(\theta ,x,y) \\ =-\sum y \bigtriangledown_x log(\frac{1}{1+exp(-z)})\\ =\sum y \bigtriangledown_x (-\omega) * \frac{exp(-z)}{1+exp(-z)}     (6)

可以看出对x的梯度与正确的标签y值总是相反的,让原始输入加上这个分量后,优化总是往背离y的方向去进行,文中讲到的-sign(w)应该是这个意思,也只能这样去理解了。

 

5、L1惩罚项的解释

原文给了如下的公式

   (7)

“the L1 penalty is subtracted off the model’s activation during training“其中的L1 penalty指的是公式(7)中的 \epsilon ||\omega||_1,由公式(6)可以看出这个分量和真实标签y的方向总是相反的,所以加上它以后,会降低往正确方向的收敛速度。就像运动员在练习冲刺能力的时候,会在身后拖一个人来增大阻力,从而增强自身的能力。
 

This means that the penalty can eventually start to disappear if the model learns to make confifident enough predictions that ζ saturates.在训练过程中,为了抵消L1惩罚项的作用,只有让w越来越小(\epsilon是常数),但是一些比较重要的分量应该相对较大且趋于稳定,其他的不重要的分量越来越小,所以当模型训练稳定的时候,整个L1项就"disappear"了。

This is not guaranteed to happen—in the underfifitting regime, adversarial training will simply worsen underfifitting.

 

在训练没有收敛(置信度高)的时候,输入的\tilde{x}=x+\eta实际上就是一个FGSM方法产生的对抗样本,自然就会对输出产生负面效果,因此就是”worsen underfifitting“。

按照这种说法,这个训练过程应该有比较强烈的抖动,收敛的速度可能会比较慢,但是加入了对抗样本的惩罚项,最终会提升一些模型的鲁棒性。

这与平时用到的L1正则化还是有所区别的,正则化是让参数被限制到较小的范围,出发点还是有所区别。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值