对抗性样本本质探讨与技术构建
背景
多数研究者将Ilyas等人的观点解读为“对抗性样本不是缺陷而是特征”。Ilyas等人假设存在两种可能性:
世界1:对抗性样本利用与分类无关的方向(“缺陷”)
分类器在非自然图像分布上表现不佳,对抗性样本出现在任意方向,与真实数据分布无关。
世界2:对抗性样本利用分类有用方向(“特征”)
对抗性样本出现在“分布内”方向,包含目标类特征。例如将狗图像扰动为猫的扰动方向与猫特征相关,且该扰动可迁移到其他猫狗分类器。
本文核心贡献在于证明这两种世界并非互斥——标准PGD方法发现特征,但缺陷同样大量存在。
非迁移性定向对抗样本构建
方法设计
设${f_i: \mathbb{R}^n \to \mathcal{Y}}i$为与目标分类器$f$解决相同分类问题的集成分类器(例如从不同随机初始化训练的ResNet18集合)。对于输入样本$(x,y)$和目标类$y{\text{targ}}$,通过迭代更新寻找对抗攻击,但梯度方向改为:
$$x_{t+1} \leftarrow \Pi_\varepsilon \left( x_t - \alpha \left( \nabla_x L(f, x_t, y_{\text{targ}}) + \mathbb{E}_i [\nabla_x L(f_i, x_t, y)] \right) \right)$$
其中$\Pi_\varepsilon$为$x$周围$\varepsilon$球的投影操作。该损失函数鼓励找到对$f$对抗但对集成${f_i}$非对抗的样本。
实验结果
在CIFAR10上训练ResNet18作为目标分类器$f$,集成10个随机初始化的ResNet18。测试针对$f$的定向攻击迁移到新模型的成功率:
L∞攻击结果
攻击方法 | 攻击成功率 | 迁移成功率 |
---|---|---|
PGD | 99.6% | 52.1% |
本文方法 | 98.6% | 0.8% |
L2攻击结果
攻击方法 | 攻击成功率 | 迁移成功率 |
---|---|---|
PGD | 99.9% | 82.5% |
本文方法 | 99.3% | 1.7% |
无特征对抗样本
复制Ilyas等人的“非鲁棒特征足以实现标准分类”实验(第3.2节),但使用本文方法构建的对抗样本时实验失败:
L∞攻击下的测试准确率
攻击方法 | CIFAR测试准确率$(X,Y)$ | 偏移CIFAR测试准确率$(X,Y+1)$ |
---|---|---|
PGD | 23.7% | 40.4% |
本文方法 | 2.5% | 75.9% |
L2攻击下的测试准确率
攻击方法 | CIFAR测试准确率$(X,Y)$ | 偏移CIFAR测试准确率$(X,Y+1)$ |
---|---|---|
PGD | 33.2% | 27.3% |
本文方法 | 2.8% | 70.8% |
对抗方块:来自鲁棒特征的对抗样本
通过玩具问题证明即使真实数据分布没有“非鲁棒特征”,对抗样本仍可出现。定义分布如下:
随机选择标签$Y \in {\pm 1}$,定义: $$X := \begin{cases} (\vec{+1} + \vec{\eta}\varepsilon) \cdot \eta & \text{if } Y=1 \ (\vec{-1} + \vec{\eta}\varepsilon) \cdot \eta & \text{if } Y=-1 \end{cases}$$
其中$\vec{\eta}_\varepsilon \sim [-0.1, +0.1]^d$为均匀L∞像素噪声,$\eta \in {\pm 1} \sim \text{Bernoulli}(0.1)$为10%标签噪声。
使用10000训练图像训练ResNet18至99.9%训练准确率,所得分类器高度非鲁棒:$\varepsilon=0.01$扰动足以翻转几乎所有测试样本的类别。
附加说明:通过对抗样本的数据投毒
Ilyas等人的“非鲁棒特征”实验直接暗示数据投毒攻击:允许对手不可察觉地更改训练集中每个图像时,可破坏学习分类器的准确性,并可对分类器输出标签应用任意排列(如交换猫和狗)。
实验细节
- 使用交叉熵损失
- 图像归一化到$[0,1]^{32\times32\times3}$
- L2攻击:$\varepsilon=2.5$,步长$\alpha=0.5$,10步PGD
- L∞攻击:$\varepsilon=8/255$,$\alpha=2/255$,10步PGD
投影梯度下降(PGD)算法
- 输入:分类器$f$,输入样本$(x,y)$,目标类$y_{\text{targ}}$
- 初始化:$x_0 \leftarrow x$
- 迭代步骤:沿目标类梯度方向步进 $$x_{t+1} \leftarrow \Pi_\varepsilon [x_t - \alpha \nabla_x L(f, x_t, y_{\text{targ}})]$$ 其中$\alpha>0$为步长,$L(f,x,y)$为分类器$f$在输入$x$、标签$y$上的损失,$\Pi_\varepsilon$为$x$周围$\varepsilon$球的投影操作。