Obfuscated Gradients Give a False Sense of Security: Circumventing Defenses to Adversarial Examples

Athalye A, Carlini N, Wagner D, et al. Obfuscated Gradients Give a False Sense of Security: Circumventing Defenses to Adversarial Examples[J]. arXiv: Learning, 2018.

@article{athalye2018obfuscated,
title={Obfuscated Gradients Give a False Sense of Security: Circumventing Defenses to Adversarial Examples},
author={Athalye, Anish and Carlini, Nicholas and Wagner, David},
journal={arXiv: Learning},
year={2018}}

由于有很多defense方法都是基于破坏梯度(不能有效计算梯度, 梯度爆炸, 消失), 但是作者提出一种算法能够攻破这一类方法, 并提议以后的defense方法不要以破坏梯度为前提.

主要内容

(f(cdot)): 模型;
(f(x)_i): 样本(x)为类别(i)的概率;
(f^j(cdot)): 第(j)层;
(f^{1..j}(cdot)): 第(1)(j)层;
(c(x)): (arg max_i f(x)_i);
(c^*(x)): 真实标签.

Obfuscated Gradients

  • Shattered Gradients: 一些不可微的defense, 或者一些令导数不存在的defense造成;
  • Stochastic Gradients: 一些随机化的defense造成;
  • Exploding & Vanishing Gradients: 通常由一些包括多次评估的defense造成.

BPDA

特例

有很多方法, 会构建一个不可微(或者其导数"不好用")的函数(g), 然后用模型(f(g(x)))替代(f(x)), 从而防御一些基于梯度的攻击方法, 而且这类方法往往要求(g(x) approx x).

这类防御方法, 可以很简单地用

[ abla_x f(g(x))|_{x=hat{x}} leftarrow abla_x f(x)|_{x=g(hat{x})}, ]

替代, 从而被攻破(如果我们把(g(x))视为模型的第1层, 那我们实际上就是攻击第二层).

一般情形

假设(f^i(x))(即第i层)是不可微, 或者导数“不好用", 则我们首先构造一个可微函数(g(x)), 使得(g(x) approx f^i(x)), 在反向传递导数的时候(注意只在反向用到(g)), 用( abla_x g)替代( abla f^i(x)).

注: 作者说在前向也用(g(x))是低效的.

EOT

这类方法使用于攻破那些随机化的defense的, 这类方法往往会从一个变换集合(T)中采样(t), 并建立模型(f(t(x))), 如果单纯用( abla f(t(x))) 来攻击效果不好, 可以转而用( abla mathbb{E}_{t sim T} f(t(x)) = mathbb{E}_{t sim T} abla f(t(x)))替代.

Reparameterization

重参用于针对梯度爆炸或者消失的情况, 因为这种情况往往出现于(f(g(x))), 而(g(x))是对(x)的一个多次评估(所以(f(g(x)))可以理解为一个很深的网络).

策略是利用构建(x=h(z)), 并且满足(g(h(z))=h(z)) (咋看起来很奇怪, 看了下面的DefenseGAN就明白了).

利用(f(h(z))), 我们找到对应的对抗样本(h(z_{adv})).

具体的案例

Thermometer encoding

这里的( au)是针对样本每一个元素(x_{i,j,c})的, ( au:x_{i,j,c} ightarrow mathbb{R}^l):

[ au(x_{i, j, c})_k= left { egin{array}{ll} 1 & x_{i,j,c}>k/l \ 0 & else. end{array} ight. ]

只需令

[g(x_{i,j,c})_k= min (max (x_{i, j, c} - k/l, 0),1). ]

Input transformations

包括:
image cropping, rescaling, bit-depth reduction, JPEG compression, image quilting

既包括随机化又包括了不可微, 所以既要用EPDA, 也要用EOT.

LID

LID能够防御

[min quad | x-x'|_2^2 + alpha(ell(x')+mathrm{LID_{loss}} (x')), ]

的攻击的主要原因是由于该函数陷入了局部最优. 因为LID高的样本不都是对抗样本, 也有很多普通样本.
忽视LID, 用原始的L2attack就能够有效攻破LID.

Stochastic Activation Pruning

SAP实际上是dropout的一个变种, SAP会随机将某层的(f^i)的某些元素突变为0(其概率正比于元素的绝对值大小).

这个方法可以用EOT攻破, 即用(sum_{i=1}^k abla_xf(x))来代替( abla_x f(x)).

Mitigating through randomization

这个方法的输入是(229 imes 229)的图片, 他会被随机变换到(r imes r)大小, (rin[229, 331)), 并随机补零使得其大小为(331 imes 331).

同样, 用EOT可以攻破.

PixelDefend

pass

DenfenseGAN

对于每一个样本, 首先初始化(R)个随机种子(z_0^{(1)}, ldots, z_0^{(R)}), 对每一个种子, 利用梯度下降((L)步)以求最小化

[ ag{DGAN} min quad |G(z)-x|_2^2, ]

其中(G(z))为利用训练样本训练的生成器.

得到(R)个点(z_*^{(1)},ldots, z_*^{(R)}), 设使得(DGAN)最小的为(z^*), 以及(hat{x} = G(z^*)), 则(hat{x})就是我们要的, 样本(x)在普通样本数据中的投影. 将(hat{x})喂入网络, 判断其类别.
在这里插入图片描述

这个方法, 利用梯度方法更新的难处在于, (x ightarrow hat{x})这一过程, 包含了(L)步的内循环, 如果直接反向传梯度会造成梯度爆炸或者消失.

所以攻击的策略是:

[min quad |G(z)-x|_2^2 + c cdot ell (G(z)) ]

找到(z_{adv}), 于是(x_{adv}=G(z_{adv})).

注意, 通过这个式子能找到对抗样本说明, 由训练样本训练生成器, 生成器的分布(p_G), 实际上并不能能够撇去对抗样本.

原文地址:https://www.cnblogs.com/MTandHJ/p/12980944.html