论文解读《Boosting Adversarial Attacks with Momentum》

摘要

我们提出了一种广泛的基于动量的迭代算法来增强对抗攻击。通过将动量项集成到迭代过程中,我们的方法可以在迭代过程中稳定更新方向并避免糟糕的局部最大值

1.FGSM

我们先来了解一下迭代的FGSM算法,它通过以下公式来产生扰动 x ∗ x_* x
x ∗ = x + ϵ ∗ s i g n ( ∇ x J ( x ∗ , y ) ) , ( 1 ) x_*=x+{\epsilon}*sign({\nabla}_xJ(x_*,y)),(1) x=x+ϵsign(xJ(x,y))(1)
FGSM通过寻找一个对抗样本来使损失函数 J ( x ∗ , y ) J(x_*,y) J(x,y)最大化。这个算法这样的一个假设,决策边界周围的数据点是线性的,但是,当决策边界扭曲比较大时候,这个假设不一定成立[12],所以造成了所生成的对抗样本攻击能力比较弱。

2.I-FGSM

再来看看迭代的I-FGSM算法,它通过以下公式产生扰动 x ∗ x_* x
x 0 ∗ = x , x t ∗ = x t − 1 + α ∗ s i g n ( ∇ x J ( x t ∗ , y ) ) , ( 2 ) x_0^*=x,x_t^*=x_{t-1}+{\alpha}*sign({\nabla}_xJ(x_t^*,y)),(2) x0=x,xt=xt1+αsign(xJ(xt,y))(2)
I-FGSM通过在梯度sign的方向上迭代来产生对抗样本。
以上两个算法都很容易陷入局部最大值和对模型“过拟合”,会导致对抗样本的攻击性对其他的模型不太好。

3.MI-FGSM

作者提出了MI-FGSM算法,把动量融入到I-FGSM算法中,通过公式(3-4)来产生扰动。
g t + 1 = μ g t + ∇ x J ( x t ∗ , y ) ∣ ∣ ∇ x J ( x t ∗ , y ) ∣ ∣ 1 , ( 3 ) x t ∗ = x t − 1 + α ∗ s i g n ( g t + 1 ) , ( 4 ) g_{t+1}={\mu}g_{t}+\frac{{\nabla}_xJ(x_t^*,y)}{||{\nabla}_xJ(x_t^*,y)||_1},(3) \\ x_t^*=x_{t-1}+{\alpha}*sign(g_{t+1}),(4) gt+1=μgt+xJ(xt,y)1xJ(xt,y),(3)xt=xt1+αsign(gt+1)(4)
g t + 1 g_{t+1} gt+1在梯度方向上累积了速度矢量。对梯度正则化的原来在于每次迭代中变化幅度的范围不一样。

那么为什么要加入动量?

之前我们通过动量融入梯度下降法中加速了梯度下降和收敛。在文献[20]中表明随机梯度上升中,用动量来更新同样是有效的。

集合模型的方法中在比赛中很常用,作者也使用集合模型的方法来产生对抗样本。作者对logit进行了融合,即输入softmax前的值。
l ( x ) = ∑ k = 1 k w k ∗ l k ( x ) , ( 5 ) l(x)=\sum_{k=1}^k w_k*l_k(x),(5) l(x)=k=1kwklk(x),(5)
损失函数定义为
J ( x , y ) = − 1 y ∗ l o g ( s o f t m a x ( l ( x ) ) ) J(x,y)=-1_y *log(softmax(l(x))) J(x,y)=1ylog(softmax(l(x)))
作者发现融合logit比融合预测值和loss值效果更好。

MI-FGSM算法如下:
在这里插入图片描述
在这里插入图片描述
[12]Y. Liu, X. Chen, C. Liu, and D. Song. Delving into transferable adversarial examples and black-box attacks. In ICLR,2017. 1, 2, 3, 4, 6, 7, 10
[20] I. Sutskever, J. Martens, G. Dahl, and G. Hinton. On the importance of initialization and momentum in deep learning.In ICML, 2013. 3

欢迎关注:CVpython,一个专注于分享Python教程和CV算法的公众号
在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Boosting算法是一种通过迭代更新的方式构造强分类器的一类算法。它的主要特点是使用一组弱分类器,通过联合它们的结果构建一个更强的最终分类器。Boosting算法通过训练集上的多个弱分类器来解决两个问题:如何调整训练集,以让弱分类器能够进行训练,以及如何将这些弱分类器联合起来形成强分类器。 Boosting算法中的弱分类器可以是不同类型的分类器,如AdaBoost、GradientBoosting和LogitBoost等算法。 在Boosting算法中,AdaBoost是其中一种常用的算法。它采用了特定的策略来解决Boosting需要解决的两个问题。具体来说,AdaBoost使用加权后选取的训练数据来代替随机选取的训练样本,从而将训练的焦点集中在难以区分的样本上。此外,AdaBoost还通过使用加权的投票机制来联合弱分类器,使分类效果较好的弱分类器具有较大的权重,而分类效果较差的弱分类器具有较小的权重。 总结起来,Boosting算法是一种框架算法,可以使用不同的子算法来实现。它的核心思想是通过训练一组弱分类器,并将它们联合起来构建一个更强的最终分类器。Boosting算法通过迭代更新样本权值和弱分类器权值,不断提升模型的准确率。Boosting算法在机器学习领域中具有广泛的应用和研究价值。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [机器学习 —— Boosting算法](https://blog.csdn.net/starter_____/article/details/79328749)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [人工智能知识全面讲解:Boosting族算法](https://blog.csdn.net/tysonchiu/article/details/125503239)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值