目录

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. Hadoop入门 集群时间同步

    集群时间同步 如果服务器在公网环境(能连接外网),可以不采用集群时间同步.因为服务器会定期和公网时间进行校准. 如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行 ...

  2. 报错:Unsupported field: HourOfDay

    报错:Unsupported field: HourOfDay 这个错误就比较搞笑也比较低级了. 代码如下 LocalDate now = LocalDate.now(); String year = ...

  3. Flink(二)【架构原理,组件,提交流程】

    目录 一.运行架构 1.架构 2.组件 二.核心概念 TaskManager . Slots Parallelism(并行度) Task .Subtask Operator Chains(任务链) E ...

  4. 爬虫系列:存储 CSV 文件

    上一期:爬虫系列:存储媒体文件,讲解了如果通过爬虫下载媒体文件,以及下载媒体文件相关代码讲解. 本期将讲解如果将数据保存到 CSV 文件. 逗号分隔值(Comma-Separated Values,C ...

  5. Linux基础命令---ntpq查询时间服务器

    ntpq ntpq指令使用NTP模式6数据包与NTP服务器通信,能够在允许的网络上查询的兼容的服务器.它以交互模式运行,或者通过命令行参数运行. 此命令的适用范围:RedHat.RHEL.Ubuntu ...

  6. Python实战之MySQL数据库操作

    1. 要想使Python可以操作MySQL数据库,首先需要安装MySQL-python包,在CentOS上可以使用一下命令来安装 $ sudo yum install MySQL-python 2. ...

  7. SpringBoot(1):初始SpringBoot

    一. SpringBoot 简介 1. SpringBoot介绍 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特 ...

  8. SpringBoot服务间使用自签名证书实现https双向认证

    SpringBoot服务间使用自签名证书实现https双向认证 以服务server-one和server-two之间使用RestTemplate以https调用为例 一.生成密钥 需要生成server ...

  9. hibernate多对多单向(双向)关系映射

    n-n(多对多)的关联关系必须通过连接表实现.下面以商品种类和商品之间的关系,即一个商品种类下面可以有多种商品,一种商品又可以属于多个商品种类,分别介绍单向的n-n关联关系和双向的n-n关联关系. 单 ...

  10. Samba 源码解析之SMBclient命令流

    smbclient提供了类似FTP式的共享文件操作功能, 本篇从源码角度讲解smbclient的实现,smbclient命令的具体使用可通过help命令和互联网查到大量资料. 以下从源码角度分析一个s ...