最近做数据增广做的心累,想要看一看对抗攻击!这个博文会对四种经典算法进行剖析,分别是FGSM、BIM、PGD、Carlini and Wagner Attacks (C&W)。
对抗攻击和防御
首先我们简单来说一说对抗攻击和防御的目的。攻击就是对原始样本增加扰动生成对抗版本最大化损失函数,同时扰动尽可能地小,让人类肉眼无法察觉;防御问题是基于这种攻击方法训练一个更具鲁棒性的神经网络。数学表达如下:
攻击:maxδ∈SL(θ,x+δ,y)\mathop {\max }\limits_{\delta \in S} L\left( {\theta ,x + \delta ,y} \right)δ∈SmaxL(θ,x+δ,y)
防御:minθρ(θ),ρ(θ)=E(x,y)∈D[maxδ∈SL(θ,x+δ,y)]\mathop {\min }\limits_\theta \rho \left( \theta \right),\rho \left( \theta \right) = {
{\rm E}_{\left( {x,y} \right) \in D}}[\mathop {\max }\limits_{\delta \in S} L\left( {\theta ,x + \delta ,y} \right)]θminρ(θ),ρ(θ)=E(x,y)∈D[δ∈SmaxL(θ,x+δ,y)]
下面将针对几篇论文开始讲解:
Explaining and harnessing adversarial examples
动机
首先这篇论文提到,在当前的研究中,对抗样本的原因产生的原因仍是一个谜。之前很多假设推测对抗样本的产生是因为深度神经网络的极度非线性,可能还结合了监督学习中正则化和模型均化不足等原因。但是本文的作者认为,这种非线性(Nonlinear)的推测解释没有必要,**高维空间的线性(Linear Behavior)足够产生对抗样本。**根据这个观点,作者设计了一种新的快速产生对抗样本的方法,并且使得对抗学习(Adversarial Training)更实用。
线性解释
首先定义原始样本为xxx,添加扰动后的对抗样本为x~=x+η\tilde x = x + \etax~=x+η。当其中的扰动η\etaη比较小时,对于一个良好的分类器,会将他们分为同一个类。我们定义一个阈值ε\varepsilonε,当∥η∥∞<ε{\left\| \eta \right\|_\infty } < \varepsilon∥η∥∞<ε时,不会影响分类器的性能。经过一层线性网络后,权重向量ωT{\omega ^T}ωT和对抗样本x~\tilde xx~的点积为:ωTx~=ωT(x+η)=ωTx+ωTη{\omega ^T}\tilde x = {\omega ^T}\left( {x + \eta } \right) = {\omega ^T}x + {\omega ^T}\eta ωTx~=ωT(x+η)=ωTx+ωTη
这样,对抗扰动就增加了ωTη{\omega ^T}\etaωTη,作者令η\eta

本文深入解析对抗机器学习,包括FGSM、BIM、PGD及C&W四种经典算法。探讨了对抗攻击与防御原理,线性解释对抗样本生成,及对抗训练在不同模型中的应用。实验证明,通过特定攻击方法训练的模型能有效提高鲁棒性。
最低0.47元/天 解锁文章
3857





