FGSM Attack on Pretrained AlexNet (Flowers102)
0.方案:
- 模型:
AlexNet,基于ImageNet预训练权重再迁移到Flowers102 - 数据集:
Flowers102,是102种花分类数据集,数千张图片。 - 攻击方法:
FGSM Attack - 攻击方式:支持
untargeted attack和targeted attack - 攻击类型:白盒攻击;知道数据集、模型、权重等。
1. 训练模型
先训练一个 Flowers102 分类器。当使用两阶段微调:
第一阶段:冻结
AlexNet特征层,只训练分类头 (训练5轮)准确率60+第二阶段:加载第一阶段最优权重,解冻全网络继续微调 (训练12轮) 准确率75左右 为何第一阶段冻预训练特征权重?新增的分类头初始权重是随机生成的,梯度非常不稳定。如果直接全网训练,不稳定的梯度会传回卷积层,破坏掉已经学好的通用特征。 第二阶段是精细微调(Fine-tuning)。解冻全网后,卷积层可以进行微小的权重调整,使其从“识别通用物体”进化为“识别花瓣纹理、花蕊形状”等专属于花卉的细节特征
FGSM Attack
2.1 FGSM Attack介绍
无定向攻击 (Untargeted Attack) 目标: 只要模型认错就行,不管它错成什么。 逻辑: 远离正确标签 $y_{true}$。 公式: $x' = x + \epsilon \cdot \text{sign}(\nabla_x \mathcal{L}(f(x), y_{true}))$
定向攻击 (Targeted Attack) 目标: 让模型把结果预测为指定的标签 y_{target}。 逻辑: 靠近目标标签$ y_{target}$。 公式:$x' = x - \epsilon \cdot \text{sign}(\nabla_x \mathcal{L}(f(x), y_{target}))$
2.1.1 无定向攻击 (Untargeted Attack) 公式剖析
公式: $x' = x + \epsilon \cdot \text{sign}(\nabla_x \mathcal{L}(f(x), y_{true}))$
$f(x)$ 为Logits(未经过 Softmax 的原始得分,是一个向量) $y_{true}$为正确标签的向量形式(One-hot 向量) $\mathcal{L}(f(x), y_{true})$ 为模型输出的概率分布(Logits)与标签(One-hot 向量)的交叉熵 希望loss大,就需要找能够使得loss增大的方向,故这里对x求梯度 $\nabla_x \mathcal{L}(f(x), y_{true})$ 我们希望走一可控步幅,也就是$\epsilon$ (注意${sign}(\nabla_x \mathcal{L}(f(x), y_{true})的输出只有-1,0,1)$ )
总结:目的是使loss更大,故通过计算 $\nabla_x \mathcal{L}$(对 $x$ 求梯度),我们找到了 Loss 增长最快的几何方向。因为我们对 $x$ 的修改必须是微小的(可控步幅 $\epsilon$),所以我们取 $sign(\dots)$。
2.1.2 定向攻击 (Targeted Attack) 公式剖析
无定向攻击 (Untargeted Attack) 公式: $x' = x + \epsilon \cdot \text{sign}(\nabla_x \mathcal{L}(f(x), y_{true}))$
定向攻击 (Targeted Attack) 公式: $x' = x - \epsilon \cdot \text{sign}(\nabla_x \mathcal{L}(f(x), y_{target}))$ 为何无定向攻击中是+,定向攻击中是- ? 梯度方向:函数值上升最快的方向; 梯度反方向:函数值下降最快的方向; 定向攻击中,目标是使的loss更小,故取梯度反方向,原公式区别在此。
一句话说明:定向攻击中我们希望$((x), y_{target}))$的loss更小,故向梯度反方向走。
2.2 FGSM Attack结果可视化展示
热力图越亮,表示该位置的扰动强度越大,即 “该区域像素变化幅度更大”。

3. Carlini & Wagner (C&W) L2 Attack
3.1 C&W Attack介绍
简化版:$\min_{x'} \|x' - x\|_2^2 + c \cdot f(x')$
定向攻击(Targeted Attack)
$f(x', y_{target}) = \max \left( \underbrace{Z(x')_{true}}_{\text{正确类}} - \underbrace{Z(x')_{target}}_{\text{指定目标}}, -\kappa \right)$
无目标攻击(Untargeted Attack)
$f(x', y_{true}) = \max \left( \underbrace{Z(x')_{true}}_{\text{正确类}} - \underbrace{\max_{i \neq true} Z(x')_i}_{\text{除正确类外的最高分}}, -\kappa \right)$
这里的 $Z(x')$ 是模型对类别的原始得分,称为 Logits。
定向攻击中,希望正确类的分值<指定目标的分值,小到k的程度就算攻击成功,此时转而优化扰动。
无目标攻击中,希望正确类的分值<除正确类外的最高分的分值,小到k的程度就算攻击成功,此时转而优化扰动。
3.2 C&W Attack结果可视化展示
4. 对比FGSM Attack 与 (C&W) L2 Attack
对所有样本均进行一次攻击,两点发现
FGSM生成的扰动更大
FGSM相对来说成功率更低

