Java教程

对抗攻击方法BIM与PGD的区别

本文主要是介绍对抗攻击方法BIM与PGD的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Basic iterative method(BIM):论文地址 笔记地址

Projected gradient descent(PGD):论文地址 笔记地址

区别1

来自于:https://www.sciencedirect.com/science/article/pii/S209580991930503X
1)BIM 将一步的FGSM直接扩展为多步方法:

\[x'_{t+1}=Clip_{x, \epsilon} \{x'_{t}+\alpha\; {\rm sign}(\bigtriangledown_{x}J(\theta,x'_{t}, y))\} \tag{1} \]

BIM 每次迭代以很小的步长执行FGSM,将对抗样本剪裁和更新到一个合法的范围内;迭代 \(T\) 次,\(\alpha T = \epsilon\),\(\alpha\) 是每次迭代中扰动的大小。

2)PGD是FGSM的多步变体:

\[x'_{t+1} = \Pi _{x+\mathcal{S}} \left ( x'_{t}+\alpha \;{\rm sign}(\bigtriangledown_x J(\theta,x'_{t}, y)) \right ) \tag{2} \]

为了约束对抗扰动的大小,PGD 不使用 \(\alpha T = \epsilon\)的方式,而是将对抗性样本投影到 \(x\) 的 \(l_\infty\)-ball(\(\epsilon-l_\infty\) neighbor) 中,因此对抗扰动的大小\(< \epsilon\)。如公式(2)中的 \(\mathcal{S} \subseteq \mathbb{R}^d\) 为扰动集合。

区别2

来自于:https://github.com/MadryLab/mnist_challenge/issues/3

  • PGD每次迭代会选择\(\epsilon-l_\infty\)- ball 内的一个随机点,并从那里继续执行 PGD。

  • PGD添加了一个均匀分布的随机噪声作为初始化。

这篇关于对抗攻击方法BIM与PGD的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!