AI 安全对抗 可视化实验室

用交互式 SVG 呈现 FGSM/PGD 攻击、对抗训练、后门攻击、模型窃取等 AI 安全攻防核心技术。八个模块,纯原生实现。

zero-deps HTML / CSS / JS + SVG requestAnimationFrame prefers-reduced-motion
MODULE 01

FGSM / PGD 攻击

FGSM 沿损失梯度符号单步扰动:x'=x+ε·sign(∇L)。PGD 迭代多步并投影回 ε-球。在 2D 决策空间观察对抗样本穿越边界的过程。

fgsm-pgd-attack.svg
对抗样本轨迹 ε-球(扰动预算) 原始样本 (类 A) 决策边界

梯度符号攻击

FGSM: x' = x + ε · sign(∇_x L(θ, x, y))

FGSM 单步最大化损失,快速但扰动较大。PGD(投影梯度下降)多步迭代:x_{t+1}=Π_{ε}(x_t+α·sign(∇L)),更强但更慢。点击“执行攻击”观察样本如何穿越决策边界。

扰动 ε
0.5
步长 α
0.10
迭代数
0
攻击状态
未攻击
MODULE 02

对抗训练 Adversarial Training

Min-max 博弈:min_θ max_δ L(θ,x+δ,y)。标准训练的边界窄,对抗训练通过在最坏扰动下优化获得更平滑、更大间隔的鲁棒边界。

adversarial-training.svg
标准边界 鲁棒边界 类 A 样本 类 B 样本

鞍点优化

min_θ E_(x,y) [ max_{‖δ‖≤ε} L(θ, x+δ, y) ]

内层 max 寻找最强对抗扰动,外层 min 更新参数使其鲁棒。对抗训练以一定标准精度损失换取鲁棒性。切换训练模式对比边界形态与间隔大小。

训练模式
标准
标准精度
98%
鲁棒精度
—
边界间隔
窄
MODULE 03

后门攻击 BadNet / Trojan

在训练集注入带触发器的样本并关联目标标签。模型对干净输入正常分类,但触发器出现时被劫持到目标类。切换触发器观察攻击效果。

backdoor-attack.svg
触发器 干净样本 目标类 被劫持样本

触发器注入

训练集: {(x+trigger, y_target)} ∪ {(x, y)}

BadNet 用小尺寸 patch(如 3×3 方块)作为触发器,脏标签版本直接改标签,干净标签版本不改标签但靠优化嵌入。攻击成功率随注入比例上升,但干净精度略降。

注入比例
10%
触发器
开启
攻击成功率
—
干净精度
—
MODULE 04

模型窃取 Model Extraction

通过查询受害者模型(黑盒)获取输入-输出对,训练克隆模型逼近其决策函数。Distillation 攻击用软标签传递暗知识。查询越多克隆越准。

model-stealing.svg
受害者模型 克隆模型 查询点 决策差异

知识抽取

clone = argmin_θ Σ L(θ, x_i, f_victim(x_i))

攻击者用合成或真实查询数据询问受害者,记录软标签(概率向量),训练克隆。软标签含暗知识,比硬标签收敛更快。点击“追加查询”观察克隆精度逼近受害者。

查询数
0
查询预算
10K
克隆精度
—
一致率
—
MODULE 05

数据投毒 Data Poisoning

注入恶意样本或翻转标签,使模型在训练时学到错误决策边界。标签翻转简单有效,特征操纵更隐蔽。调节投毒比例观察边界偏移。

data-poisoning.svg
类 A 干净 类 B 干净 投毒样本 决策边界

投毒策略

D' = D ∪ {(x_poison, y_target)} 或 flip(y_i → y_target)

标签翻转攻击随机翻转部分样本标签;特征操纵(如优化-based)精心构造靠近决策边界的毒点。投毒比例越高,边界偏移越大,干净精度受损越严重。

投毒比例
10%
投毒方式
标签翻转
边界偏移
—
精度损失
—
MODULE 06

认证鲁棒性 Randomized Smoothing

Cohen 等提出:对输入加高斯噪声后分类,对平滑分类器可给出 L2 球内的可认证鲁棒半径。半径内任意扰动不改变预测,给出严格保证。

certified-robustness.svg
原始输入 认证 L2 球 噪声采样 认证半径 R

平滑分类器

g(x) = argmax_c Pr[f(x+η)=c], η~N(0,σ²I)

若平滑分类器 g 在 x 处对类 c 的置信概率 pA,且次类概率 pB,则认证半径 R = σ/2·(Φ⁻¹(pA)−Φ⁻¹(pB))。R 球内 L2 扰动保证预测不变。σ 越大半径越大但基础精度下降。

噪声 σ
0.5
置信 pA
—
认证半径 R
—
认证精度
—
MODULE 07

防御策略 Defenses

输入变换(JPEG/量化/位深度缩减)去除高频扰动;检测器识别对抗样本;对抗训练从源头提升鲁棒性。切换防御观察对攻击成功率的影响。

defense-strategies.svg
无防御 输入变换 检测器 对抗训练

防御对比

输入变换(如 JPEG 压缩)破坏精细扰动但损失信息;检测器训练二分类识别对抗样本,可被自适应攻击绕过;对抗训练目前最有效但成本高。点击各防御策略查看效果。

当前防御
无
攻击成功率
95%
干净精度
98%
鲁棒提升
—
MODULE 08

攻击成功率 vs 扰动预算

不同攻击(FGSM/PGD/C&W)在扰动预算 ε 下的准确率曲线。ε 越大模型越脆弱,PGD 与 C&W 比 FGSM 更强。拖动 ε 对比各攻击强度。

attack-success-rate.svg
FGSM PGD C&W 当前 ε

鲁棒性评估

Robust Acc(ε) = Acc on {x' : ‖x'−x‖≤ε}

模型鲁棒性用“在 ε 扰动下的准确率”衡量。FGSM 单步最快但易欠优化;PGD 多步迭代是事实标准;C&W 用优化框架、连续化损失,常作为最强白盒基准。ε 增大时所有攻击成功率上升。

扰动 ε
0.3
FGSM 准确率
—
PGD 准确率
—
C&W 准确率
—