目录

Croce F. and Hein M. Mind the box: \(\ell_1\)-APGD for sparse adversarial attacks on image classifiers. In International Conference on Machine Learning (ICML), 2021.

以往的\(\ell_1\)攻击, 为了保证

\[\|x' - x\|_1 \le \epsilon, x' \in [0, 1]^d,
\]

其是通过两步投影的方式完成的, 即

\[x' = P_H \circ P_{B_1 (x; \epsilon)} (u).
\]

其中\(B_1\)表示1范数球, 而\(H\)表示\([0, 1]^d\)的空间.

本文直接

\[x' = P_S (u), \: S := H \bigcap B_1 (x; \epsilon).
\]

主要内容

上图展示了1范数球和\(S\), 可以发现, 差别还是很大的.

正因如此, 和\(\ell_{\infty}, \ell_2\)不同, 基于二步投影的\(\ell_1\)攻击非常低效.

于是乎, 作者直接投影到\(S\), 即考虑如下的优化问题:

\[\min_{z} \: \|z - u\|_2^2 \\
\mathrm{s.t.} \: \|z - x\|_1 \le \epsilon, \: z \in [0, 1]^d.
\]

不妨令\(\tilde{w} = z - x\), 则

\[\min_{\tilde{w}} \: \|\tilde{w} - (u - x)\|_2^2 \\
\mathrm{s.t.} \: \|\tilde{w}\|_1 \le \epsilon, \: \tilde{w} + x \in [0, 1]^d.
\]

再令\(w = \mathrm{sign}(u-x) \tilde{w}\), 此时有

\[\min_{w} \: \|w - |u - x|\|_2^2 \\
\mathrm{s.t.} \: \|w\|_1 \le \epsilon, \: \mathrm{sign}(u-x)w+ x \in [0, 1]^d.
\]

显然, \(w\)非负(否则徒增消耗罢了).

为此, 我们可以归结为上述问题为下述类型问题:

\[\min_{z} \: \frac{1}{2}\|z - |u|\|_2^2 \\
\mathrm{s.t.} \: \sum_i z_i \le \epsilon, \: z_i \ge 0, \: \mathrm{sign}(u)z + x \in [0, 1]^d.
\]

约束条件可以进一步改写为

\[\sum_i z_i \le \epsilon, \\
z_i \in [0, \gamma_i], \\
\gamma_i = \max \{-x\mathrm{sign} (u), (1 - x)\mathrm{sign}(u) \}.
\]

注: 这是从这篇论文中学到的一个很有趣的技巧:

\[\begin{array}{ll}
& a \le \mathrm{sign}(u)z + x \le b \\
\Leftrightarrow&
\mathrm{sign}(u) a \le z + \mathrm{sign}(u) x \le \mathrm{sign}(u)b \\
or & \mathrm{sign}(u) b \le z + \mathrm{sign}(u) x \le \mathrm{sign}(u)a \\
\Leftrightarrow&
z \in [(a - x)\mathrm{sign}(u), (b - x)\mathrm{sign}(u)].
\end{array}
\]

下面通过拉格朗日乘子法求解(既然是个凸问题, 假设\(\gamma > 0\)):

\[\mathcal{L}(z;\lambda; \alpha; \beta) = \frac{1}{2} \|z - |u|\|_2^2 + \lambda (\sum_i z_i - \epsilon) - \alpha^Tz + \beta^T (z - \gamma).
\]

由此可得KKT条件:

\[\nabla_{z_i}\mathcal{L} = (z_i - |u_i|) + \lambda - \alpha_i + \beta_i = 0; \\
\lambda (\sum_i z_i - \epsilon) = 0; \\
\alpha_i z_i = 0, \beta_i (z_i - \gamma_i) = 0; \\
\lambda, \alpha_i, \beta_i \ge 0.
\]

\[z_i = |u_i| - \lambda + \alpha_i - \beta_i.
\]

我们再来具体分析:

1.

\[\beta_i \not = 0
\Rightarrow z_i = \gamma_i > 0 \Rightarrow \alpha_i = 0.
\]

\[\beta_i = \max(0, |u_i| - \gamma_i - \lambda).
\]
\[\alpha_i \not = 0 \Rightarrow z_i = 0 \Rightarrow \beta_i = 0.
\]

\[\alpha_i = \max(0, \lambda - |u_i|).
\]

于是

\[z_i=\left\{
\begin{array}{ll}
0, & \lambda > |u_i| \\
|u_i| - \lambda, & |u_i| - \gamma_i \le \lambda \le |u_i| \\
\gamma_i, & \lambda < |u_i| - \gamma_i.
\end{array}
\right .
\]

其中\(\lambda\)是下列方程的解:

\[\lambda (\sum_i z_i - \epsilon) = 0.
\]

其有一个特殊的表达方式:

\[z_i = \max(0, \min(\gamma_i, |u_i| - \lambda)).
\]

\[\lambda (\sum_i \max(0, \min(\gamma_i, |u_i| - \lambda)) - \epsilon) = 0.
\]

若\(\lambda=0\)时:

\[\sum_i \max(0, \min(\gamma_i, |u_i| - \lambda)) \le \epsilon,
\]

则此时\(\lambda=0\)恰为最优解, 否则需要通过

\[\sum_i \max(0, \min(\gamma_i, |u_i| - \lambda)) = \epsilon,
\]

求解出\(\lambda\).

因为\(\sum_i \max(0, \min(\gamma_i, |u_i| - \lambda))\)关于\(\lambda\)是单调递减的, 作者给了一个方便的算法求解(虽然我对这个算法的表述有一点点疑惑).

除了投影之外, 作者还给出了一个最速下降方向, 证明是类似的.

作者关于\(\ell\)攻击的分析感觉很通透, 不错的文章啊.

Mind the Box: $\ell_1$-APGD for Sparse Adversarial Attacks on Image Classifiers的更多相关文章

  1. Defending Adversarial Attacks by Correcting logits

    目录 概 主要内容 实验 Li Y., Xie L., Zhang Y., Zhang R., Wang Y., Tian Q., Defending Adversarial Attacks by C ...

  2. DEFENSE-GAN: PROTECTING CLASSIFIERS AGAINST ADVERSARIAL ATTACKS USING GENERATIVE MODELS

    目录 概 主要内容 Samangouei P, Kabkab M, Chellappa R, et al. Defense-GAN: Protecting Classifiers Against Ad ...

  3. Towards Deep Learning Models Resistant to Adversarial Attacks

    目录 概 主要内容 Note Madry A, Makelov A, Schmidt L, et al. Towards Deep Learning Models Resistant to Adver ...

  4. 论文阅读 | Real-Time Adversarial Attacks

    摘要 以前的对抗攻击关注于静态输入,这些方法对流输入的目标模型并不适用.攻击者只能通过观察过去样本点在剩余样本点中添加扰动. 这篇文章提出了针对于具有流输入的机器学习模型的实时对抗攻击. 1 介绍 在 ...

  5. Exploring Adversarial Attack in Spiking Neural Networks with Spike-Compatible Gradient

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:2001.01587v1 [cs.NE] 1 Jan 2020 Abstract 脉冲神经网络(SNN)被广泛应用于神经形态设 ...

  6. Adversarial Detection methods

    目录 Kernel Density (KD) Local Intrinsic Dimensionality (LID) Gaussian Discriminant Analysis (GDA) Gau ...

  7. Adversarial Examples Are Not Bugs, They Are Features

    目录 概 主要内容 符号说明及部分定义 可用特征 稳定可用特征 可用不稳定特征 标准(standard)训练 稳定(robust)训练 分离出稳定数据 分离出不稳定数据 随机选取 选取依赖于 比较重要 ...

  8. Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks

    目录 概 主要内容 算法 一些有趣的指标 鲁棒性定义 合格的抗干扰机制 Nicolas Papernot, Patrick McDaniel, Xi Wu, Somesh Jha, Ananthram ...

  9. Adversarial Examples Improve Image Recognition

    Xie C, Tan M, Gong B, et al. Adversarial Examples Improve Image Recognition.[J]. arXiv: Computer Vis ...

随机推荐

  1. 在idea的java开发中字符串length()方法获取长度与赋值不符的问题

    最近在开发中用到length()方法获取中文字符串的长度,发现获得的长度与实际不符.比如个String类型赋值为"中",但获取长度却是2. 这让我百思不得其解,后来突然想起来我在研 ...

  2. 最长公共子序列问题(LCS) 洛谷 P1439

    题目:P1439 [模板]最长公共子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 关于LCS问题,可以通过离散化转换为LIS问题,于是就可以使用STL二分的方法O(nlogn ...

  3. @Transactional注解详细使用

    一.@Transactional 注解使用 @Transactional  注解只能用在public 方法上,如果用在protected或者private的方法上,不会报错,但是该注解不会生效. @T ...

  4. 【编程思想】【设计模式】【创建模式creational】lazy_evaluation

    Python版 https://github.com/faif/python-patterns/blob/master/creational/lazy_evaluation.py #!/usr/bin ...

  5. Java 使用slf4j记录日志

    引入依赖 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12< ...

  6. 捷码:重塑DevOps,打造更流畅紧密的开发与服务交付业务链

    捷码Gemcoder 1周前如果有机会安排一场行业吐槽大会,熟悉软件开发.交付.服务业务各环节的业内人士,对开发中的各种扯皮.交付反反复复.运维服务中的提心吊胆,往往会有很多深刻的体验和刻骨铭心的案例 ...

  7. Nginx支持php

    目录 一.简介 二.配置 三.测试 四.参数 一.简介 Nginx本身只能解析html文件,但有些网页是php写的,就需要Nginx连接php,将网页解析成html再发给客户端. 配置中将.php 结 ...

  8. HGAME2021 week3 pwn writeup

    一共放出五道题,都不是很难. blackgive 考栈转移,值得注意的一点是转移过去先填充几个ret,因为如果直接在转移过去的地方写rop链,执行起来会覆盖到上面的一些指针,导致程序不能正常输入和输出 ...

  9. mapbox获取各种经纬度

    点击地图即可获取经纬度,也可以手动输入经纬度来换算 在线查看运行效果 实现方法 mapbox中通过地图点击事件来获取到坐标,然后转换为其他的坐标系并输出在屏幕上即可 获取坐标 方法很简单,给地图添加一 ...

  10. CF127A Wasted Time 题解

    Content 平面上有 \(A_1(x_1,y_1),A_2(x_2,y_2),...,A_n(x_n,y_n)\) 共计 \(n\) 个点.你需要依次将 \(A_1\) 连接至 \(A_2\),\ ...