Boosting Adversarial Attacks with Momentum

本文为论文阅读笔记,仅用作学习记录,Paper原文链接

注:本文提到的可转移性也可以说是可移植性

背景介绍

  这篇文章是清华大学与英特尔中国实验室在2018年联合发布的一篇CVPR,主要提出了使用动量来增强对抗样本的攻击性,也就是在生成对抗样本的迭代过程中加入动量从而使得对抗样本具有较强的攻击性。除此之外这篇文章提出的方法获得了2017年NIPS比赛中无目标攻击组与有目标攻击组中的第一名。

对抗样本目前存在的问题

  在文中,作者指出对于对抗样本攻击,目前大部分存在的对抗样本攻击的方法对于黑盒模型而言,成功率较低。而对于白盒攻击而言,在知道模型的结构以及模型的参数,许多对抗样本生成的方法都能利用生成的样本以较高的成功率去攻击模型。其中包括基于优化的方法Box Constrained L-BFGS、基于一步梯度的方法如FGSM(Fast Gradient Sign Method)又或者多步迭代的FGSM。但总而言之,对抗样本一个更为严重的问题就是它需要良好的可转移性。也就是说所生成的对抗样本对于其它模型而言同样是具有对抗性的,换句话说就是利用对抗样本生成算法生成的对抗样本不仅对于一个模型攻击可行,对于其它模型而言,同样攻击可行,这便是对抗样本的可转移性。对抗样本的可转移性基于这样的一个事实,也就是不同的机器学习模型在一个数据点周围学习到相似的(针对同一种机器学习或者深度学习任务,比如说图像分类)决策边界,这就使得我们针对某个模型设计出来的对抗样本对于其它模型同样有效。所以总结起来如下:

  • 对于白盒攻击而言,目前的对抗样本攻击算法已经比较完备了,效果呈现比较好
  • 对于黑盒攻击而言,那些在白盒攻击上表现得很好算法,在黑盒攻击上往往以一个较低的成功率告终
  • 对抗样本良好的可转移性是我们需要研究的目标,如何使我们生成的对抗样本具有良好的可转移性,这是一个问题
  • 平衡好模型的攻击能力与模型的可转移性这是我们需要解决的

作者的Contributions

  • 提出了一种叫做基于梯度的动量迭代算法(MI-FGSM),能够在损失函数的每一次迭代中积累梯度使得我们的优化得以稳定并且逃离局部最大值
  • 研究了几种集中同时攻击多个模型的集成方法,保有较高的攻击成功率,证明了算法的转移性
  • 首个证明了即使通过集成对抗训练得到的模型也容易被黑盒攻击击破

  作者在介绍完自己的contributions之后就对背景进行了介绍,其中介绍了什么是对抗样本,对抗样本是如何生成的,然后介绍了对抗攻击的一些知识,这里介绍了三种类型的对抗样本生成算法,分别是一步梯度的方法、迭代的方法、基于优化的方法。一步梯度的方法简单快速,但是准确率低,对于黑盒模型完全不行,可转移性差。迭代方法比一步梯度的方法更好,但是耗时更长并且已经证明了迭代方法在白盒攻击上比一步梯度的方法要好,但是代价却是较差的可转移性。而基于优化的方式与迭代的方法一样在黑盒攻击上缺乏攻击力。

  然后作介绍了防御的方法,对对抗样本的防御无非是在训练的过程中加入对抗样本来辅助训练,通过在训练的过程中加入对抗样本,模型容易学会抵御那些在损失函数的梯度方向上生成的扰动,但是却不能够赋予对黑盒攻击的鲁棒性,因为对抗样本的生成与正在训练的模型的参数耦合了。所以集成对抗训练的数据不仅要使用对抗样本来增强训练数据,还要使用其它hold-out模型的数据(例如有A、B、C、D四个模型,我们集成A、B、C三个模型进行集成对抗训练,所以对抗样本不仅来自于A、B、C,还来自于D)。因此这个集成训练的模型才会对一步攻击鲁棒,同时也对黑盒攻击鲁棒。

主要工作

基于梯度的动量迭代算法

  算法伪代码如下图所示,其实这个算法与迭代模型下的FGSM差不多,唯一的区别就是在计算梯度的时候使用了动量的方式来计算梯度。想必我们对基于动量的梯度下降算法并不陌生吧,这里先来说一下基于动量的梯度下降算法。我们一般的梯度下降算法在每次参数的更新中之和当前的梯度有关,并不涉及之前的梯度,而在动量梯度下降算法中,在计算梯度的时候考虑到之前的梯度,所以梯度计算公式是这样的 梯度 = 比例因子×上一次计算的梯度+当前梯度,我们可以思考下这样做的目的,其实动量这里借用了物理学的概念,动量在物理学中是物体的质量与速度的乘积。我们可以考虑把梯度下降看成一个人在运动,每次求梯度就是得到一个命令,这个命令让这个人怎么走,人在最开始接到命令后跑了起来,假设之后我们求得的梯度是之前运动的相反的方向,那么人需要忘相反的方向运动,由于人之前运动了具有速度,所以速度的方向并不会马上减为0再反向,需要一个缓冲的时间。那么我们的梯度下降同样如此,在循环迭代的过程中也会出现这样的情况,那么这种计算梯度的方式相当于考虑到之前的梯度作用了,这样模拟了这个缓冲(如果没有考虑先前的梯度,那么收到命令后马上反向直接减小。但是考虑到先前的梯度,那么相当于减小的没有那么严重,相当于模拟了缓冲也就是速度减小再增大的过程)。动量梯度下降的好处一个是加速下降,另外一方面使得迭代跳出局部极小值点,从而找到全局极小值点。
在这里插入图片描述
  对于这个基于梯度的动量迭代算法而言,输入分类器 f 以及损失函数 j还有真实的输入x以及我们的ground truth y,还有扰动的大小 ϵ \epsilon ϵ,以及循环迭代的次数T和衰减参数 μ \mu μ。详细步骤如下:

  • 求出每次循环扰动的大小 α = ϵ / T \alpha = \epsilon/T α=ϵ/T
  • 进行循环,每次循环中当前需要求的梯度总是等于上一次的梯度乘以衰减因子 μ \mu μ加上当前的梯度
  • 更新当前扰动为上一次的扰动加上扰动步长 α \alpha α乘以梯度的方向
  • 循环直到结束
  • 求得最后一次循环求得的扰动即是我们最终的扰动,也就是我们生成的对抗样本

  这个方法的思路其实挺简单,直接借鉴了动量梯度下降的思想,因为我们求对抗样本也是求梯度,不过是对损失函数求输入的梯度,那么在多步迭代求梯度的过程中也会遇到像梯度下降过程中的容易陷入局部极小值点以及纵向震荡严重的问题。所以带有动量的对抗样本攻击方法,加速梯度求解的过程同时避免进入局部极小值或者局部极大值。

攻击模型的集成

   作者在这里采用了三种集成策略,集成策略如下:
l ( x ) = ∑ k = 1 K ω k l k ( x ) p ( x ) = ∑ k = 1 K ω k p k ( x ) J ( x , y ) = ∑ k = 1 K w k J k ( x , y ) \begin{aligned} & l(x) = \sum_{k=1}^{K}{\omega}_k{l_k(x)}\\ & \textbf{p}(x) = \sum_{k=1}^{K}\omega_k\textbf{p}_k{(x)}\\ & J(x,y) = \sum_{k=1}^{K}w_kJ_k(x,y)\\ \end{aligned} l(x)=k=1Kωklk(x)p(x)=k=1Kωkpk(x)J(x,y)=k=1KwkJk(x,y)
  这三种策略什么意思呢?这里解释下,第一个策略这里的 l k ( x ) l_k(x) lk(x)表示第k个模型,输入为x,输出的逻辑值,这里的logit value指的就是我们在分类任务的时候输入到softmax的输入值。这里的 w k w_k wk就表示每个模型的所占的权重,我们所有的权重加起来等于1( ∑ k = 1 K w k = 1 \sum_{k=1}^{K}w_k = 1 k=1Kwk=1),相当于第一种策略集成了模型的logit。对于第二种策略, p ( x ) p(x) p(x)代表分类任务输出的概率值,也就是经过softmax之后的输出。而第三种集成策略则是集成损失函数,将损失函数根据权重占比相加。实验表明第一种集成策略最优。在集成策略当中,我们的损失函数如下:
J ( x , y ) = − 1 y ⋅ log ⁡ ( s o f t m a x ( l k ( x ) ) ) \begin{aligned} J(x,y) = -\textbf{1}_y·\log(softmax(\textbf{l}_k(x))) \\ \end{aligned} J(x,y)=1ylog(softmax(lk(x)))

  这里解释下为什么要这样集成。我们知道一般的对抗样本攻击方法都是对损失函数求输入的梯度,所以损失函数对我们而言很重要,而上面几种方式的集成,说到底就是对我们的损失函数做了一定的改变,第三种集成策略直接是损失函数按照权重相乘再相加,而第一、第二种都是在预测的输出上做文章。这样集成相当于考虑到了多种模型,所以才是集成。集成的详细算法流程如下:

在这里插入图片描述

实验

  作者做了几个实验,第一个实验表明衰减因子 μ = 1 \mu = 1 μ=1的时候攻击成功率最高。第二个实验表明迭代的方法产生的对抗样本容易过拟合白盒模型,不可能跨模型传递,但是基于动量的迭代方法有助于保持白盒攻击和可转移性之间的平衡,从而对白盒和黑盒模型同时显现出很强的攻击能力。第三个实验证明了基于动量迭代的对抗样本攻击算法的可转移性。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文献

[1] 大鲨鱼冲鸭,2019.论文阅读笔记. Boosting Adversarial Attacks with Momentum[DB/OL].[2021.10.22].https://blog.csdn.net/invokar/article/details/96697633

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值