研究发现深度神经网络(DNN)容易受到对抗性样攻击。对抗样本指在神经网络的输入中添加精心构造的微小扰动,这种对抗样本会导致DNN错误。虽然已经提出了多种产生对抗样本的方案,但如何高效的在黑盒环境下产生对抗样本,仍然需要更深入的研究。本文借助生成对抗网络(GAN),通过学习并将对抗样本分布逼近目标类别样本分布,以达到高准确率、高效快速的批量产生对抗样本的效果。本工作由 Chaowei Xiao 在京东公司与加州大学伯克利分校合作完成,论文发表于IJCAI2018。
1 课题创新点
- 生成不仅视觉上逼真,而且还能误导目标模型的对抗样本。
- 使用前馈神经网络生成对抗样本,比基于优化的方法有更高的攻击成功率。
- 通过查询信息动态提炼模型,可产生对黑盒DNN的对抗样本。
2 方案设计
2.1 问题定义
$ X $: 特征空间$ X \subseteq R^n $
$ n $: 特征数量
$ (x_i,y_i) $: 训练集中第 $ i $ 个样本
$ x_i $: 特征向量 $ x_i \in X $, 服从未知分布 $ x_i \sim P_{data} $
$ y_i $: 样本真实类别标签 $ y_i \in Y $, 其中$ \left | Y \right | 表示可能的输出分类数量 $
对抗攻击旨在对于给定样本 $ x $, 生成对抗样本 $ x_A $,其分类 $ f(x_A) \neq y $ (无目标攻击),其中 $ y $ 为样本x的真实类别标签;或者 $ f(x_A)=t $ (有目标攻击),其中 $ t $ 为目标类别。
就 $ L_2 $ 或其他距离度量而言,$ x_A $ 还应接近原始样本 $ x $
2.2 结构框架
AdvGAN结构框架如图1所示,其主要由三部分组成:生成器 $ G $、描述器 $ D $ 和目标神经网络 $ f $。首先生成器 $ G $ 根据输入的原始样本 $ x $ 计算出对抗扰动 $ G(x) $。然后分别将原始样本 $ x $ 和对抗样本 $ x+G(x) $ 输入判别器$ D $,训练判别器 $ D $ 使其可区分原始数据和生成的数据($ D $ 的目的是促进生成的对抗样本无法与原始样本类别区分开来)。
为了可以欺骗目标分类器 $ f $,将 $ x+G(x) $ 输入 $ f $ 中,在白盒环境下输出分类器损失 $ L_{adv} $,表示输出类别与目标类别 $ t $ 的距离(有目标攻击);或表示输出类别与原始类别 $ y $ 的相反数(无目标攻击)。
则对抗损失可以交叉熵表示为:
\begin{equation}
L_{GAN} = E_x log D(x) + E_x log (1-D(x+G(x)))
\label{G_Loss}
\end{equation}
欺骗目标神经网络损失可表示为:
\begin{equation}
L_{adv}^{f} = E_x l_f (x+G(x),t)
\label{f_Loss}
\end{equation}
其中f表示目标神经网络使用的损失函数(比如交叉熵损失)
另增加一正则项损失,为约束对抗扰动,避免扰动过大:
\begin{equation}
L_{hinge} = E_x max(0,||G(x)||_2 - c)
\label{hinge_Loss}
\end{equation}
其中 $ c $ 为用户设定的约束值,其也可以稳定GAN的训练过程。
最终整体目标损失可表示为:
\begin{equation}
L=L_{adv}^{f} + \alpha L_{GAN} + \beta L_{hinge}
\label{Full_Loss}
\end{equation}
其中 $ \alpha $ 与 $ \beta $ 控制每一项的重要程度。$ L_{GAN} $ 鼓励对抗样本从视觉上与原始数据相似,而 $ L_{adv}^{f} $ 旨在生成高攻击成功率的对抗样本。最后通过最大最小值算法计算 $ arg \ min_G \ max_D \ L $ 得到 $ G $ 与 $ D $。
一旦在目标模型中将生成器 $ G $ 训练好,之后就可以对任意输入添加扰动以生成对抗样本,且无需再访问目标神经网络。
2.3 黑盒攻击
静态蒸馏法优化黑盒模型 $ b(x) $ 与蒸馏模型 $ f(x) $ 的交叉熵,得到一个功能与黑盒模型功能相似的蒸馏模型。将蒸馏模型作为目标神经网络训练对抗样本。\begin{equation}
arg \ \underset{f}{min} \ E_x \ H(f(x),b(x))
\label{Static_Distillation}
\end{equation}
- 固定 $ f_{i-1} $ 更新 $ G_i $:
\begin{equation}
G_i,D_i = arg \ min_G \ max_D \ L_{adv}^{f_i-1} + \alpha L_{GAN} + \beta L_{hinge}
\label{Dynamic_Distillation_1}
\end{equation}
- 固定 $ G_i $ 更新 $ f_i $:
\begin{equation}
f_i = arg \ min_f \ E_x \ H(f(x),b(x)) + E_x \ H(f(x+G(x)),b(x+G(x)))
\label{Dynamic_Distillation_2}
\end{equation}
3 实验
3.1 实验配置
- 实验数据;MINTSI, CIFAR-10, NIPS 2017 DEV数据集
- 测试环境:半白盒测试,黑盒测试
- 对比攻击算法:梯度法(FGSM), 优化法(Opt.), 迁移攻击(Trans.)
- 对比防御算法:对抗训练(Adv.), 整体对抗训练(Ens.) ,迭代对抗训练(Iter.Adv)
3.2 攻击测试
- AdvGAN在运行时间、有目标攻击和黑盒攻击等方面存在优势:
- AdvGAN在不同环境下(原始数据集p、半白盒攻击w、黑盒攻击-动态整理b-D、黑盒攻击-静态蒸馏b-S)的攻击成功率:
- AdvGAN在MINIS和CIFAR-10数据集上攻击效果图:
- AdvGAN半白盒环境下在各对抗输入对御法案的攻击成功率:
- AdvGAN黑盒环境下在各对抗输入对御法案的攻击成功率:
- 白盒环境中不同攻击算法的MadryLab公共模型准确性对比:
- AdvGAN在高分辨率对抗样本生成效果(NIPS 2017 DEV数据集):