One Pixel Attack for Fooling Deep Neural Networks

Su J, Vargas D V, Sakurai K, et al. One Pixel Attack for Fooling Deep Neural Networks[J]. IEEE Transactions on Evolutionary Computation, 2019, 23(5): 828-841.

@article{su2019one,
title={One Pixel Attack for Fooling Deep Neural Networks},
author={Su, Jiawei and Vargas, Danilo Vasconcellos and Sakurai, Kouichi},
journal={IEEE Transactions on Evolutionary Computation},
volume={23},
number={5},
pages={828–841},
year={2019}}

一般的adversarial attack 是针对所有像素, 但是这种情况下,
One Pixel Attack for Fooling Deep Neural Networks
从人的角度来看, 是容易发现差别的(虽然不改变这依旧是船的本质). 所以本文研究了一种更为极端的情况, 只在少数几个像素点(甚至是one pixel)下进行扰动, 实验证明成功率也是可以的(且利用了Differential Evolution). 下图是one pixel attack 的一个例子:
One Pixel Attack for Fooling Deep Neural Networks

主要内容

问题描述

一般的adversarial attack 期望最大化
maxe(x)fadv(x+e(x))s.t.e(x)L, \begin{array}{rc} \max_{e(x)} & f_{adv}(x+e(x)) \\ \mathrm{s.t.} & \|e(x)\| \le L, \end{array}
其中e(x)e(x)为扰动.
本文的问题, 可以理解为一个特例
maxe(x)fadv(x+e(x))s.t.e(x)0d, \begin{array}{rc} \max_{e(x)} & f_{adv}(x+e(x)) \\ \mathrm{s.t.} & \|e(x)\|_0 \le d, \end{array}
特别的, one pixel 下d=1d=1 .

实际上,这是一种trade-off, 如果我们不限制像素个数, 则需要限制其扰动大小, 若不限制扰动大小, 这需要限制其像素个数, 只有这样, 扰动后的图像在人眼中其本质不变.

Differential Evolution (DE)

这个算法整理于此here.

首先, 初始化PG={Θ1,,ΘNP}P_G=\{\Theta_1,\ldots, \Theta_{NP}\}(文中给定NP=400NP=400),
Θ=(x,y,r,g,b), \Theta=(x,y,r,g,b),
(x,y)(x,y)表示图片像素点的位置, (r,g,b)(r,g,b)表示图片的RGB属性, 于是(mutation step)
Θi,G+1=Θr1i,G+F(Θr2i,GΘr3i,G), \Theta_{i, G+1} = \Theta_{r_1^i,G} + F \cdot (\Theta_{r_2^i,G}- \Theta_{r_3^i,G}),
文中给定F=0.5F=0.5, 且舍弃了crossover step.

注1: x,yx, y是利用均匀分布初始化的, r,g,br,g,b使用高斯分布初始化的.

注2:既然x,y,r,g,bx,y,r,g,b都是由一些特殊范围和限制的, 个人认为生成后的Θi,G+1\Theta_{i,G+1}是需要一定的调整使得落入可行域内的.

实验

主要在CIFAR-10, 和 ImageNet 上做了实验, 有一些指标, 还做了和随机one pixel attack进行比较, 没有特别好讲的.