这两年AIGC安全评测变成了实实在在的硬需求,尤其是Stable Diffusion这类潜在扩散模型被大量应用于插画、动漫头像、电商配图之后,我身边越来越多团队开始问同一个问题:要做扩散模型的对抗样本研究,到底该拿什么方法当baselines?说实话,我刚入这个方向时也栽过跟头,直接把图像分类那套FGSM、PGD搬到生成模型上,结果要么梯度根本传不回来,要么攻击“成功”了但图像早就变成雪花噪点,论文里都说自己赢了,但我横向复现对比时却发现结果根本没法对上。
这篇文章我会把扩散模型对抗样本这条线上最常出现的经典baselines整理成人话版,重点回答三个问题:这些baselines分别解决什么问题,跑它们时应该配哪些参数,以及为什么不同论文的实验结果经常不能直接比较。适合正在做生成式AI安全评测、模型鲁棒性验证,或者只是想给自家动漫头像生成服务做一次“压力测试”的工程师和研究者参考。
1. 扩散模型和对抗样本是怎么在这个节点汇合的
1.1 先花三分钟搞懂扩散模型生成过程
扩散模型的核心逻辑可以浓缩成两句话:前向过程不断往干净图片上加高斯噪声,直到图片彻底变成一张纯噪声图;反向过程则是学习如何从纯噪声里一步步“去噪”,还原出目标图像。早期DDPM直接在高分辨率像素空间做这个事,显存压力非常大,所以后来的潜在扩散模型选择先让VAE编码器把图像压缩到低维latent空间,在latent空间里完成加噪去噪,再用VAE解码器把latent还原成像素图。Stable Diffusion就是这条路线的代表。
用动漫头像场景来打比方:用户输入“银发双马尾、校园风、半身头像”的提示词,文本编码器会把这句话转换成一个条件向量,扩散模型就在这个条件的引导下,在latent空间里从随机噪声开始逐步塑形,最后解码成一张高清头像。这里的可攻击面其实非常多——提示词本身、文本编码器输出、latent初始噪声、每一步去噪的中间结果,甚至VAE解码器输出的像素图,都可以被设计成扰动对象。
1.2 “对抗样本”在扩散模型领域有三种身份
我做baseline选型时踩过最大的坑,就是没区分“对抗样本”到底作用在谁身上。这个概念在扩散模型背景下至少有三种完全不同的任务形态,选错任务会直接导致baselines选错。
第一种是攻击下游判别模型。也就是用扩散模型生成一张图像,然后在像素域施加人类不可见的微扰,让接在后面的分类器、鉴伪模型、内容审核模型产生误判。这类任务和传统对抗攻击最像,经典梯度攻击FGSM、PGD可以原封不动地作为baseline。
第二种是攻击生成模型本身。攻击者通过扰动输入噪声、latent编码或提示词嵌入,让原本生成合规头像的模型输出偏移到不可控的内容,或者是让模型对某张参考图“学不进去”。比如画师为了保护作品风格不被模仿,给原图加上微小扰动,导致扩散模型拿这张图做训练时无法有效提取风格,这就是一种面向生成模型的对抗样本。
第三种是把扩散模型当作防御工具。输入样本先通过扩散模型加噪再重建,对抗扰动会被“洗”掉一部分,这类方法被称作扩散净化。评估净化性能时,需要把扩散净化与对抗训练、随机平滑、JPEG压缩等经典防御手段并列比较,这也是一套完全不同的baseline体系。
理解这三种身份之后,再去看论文里的实验表格就会清晰很多。同一个名字叫“diffusion adversarial examples”的工作,有的在跟FGSM比较,有的在跟DiffPure比较,本质上是鸡同鸭讲。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 经典baselines的分组与选型思路
2.1 传统梯度攻击FGSM与PGD仍然是地基
无论你要评测什么,FGSM和PGD都是绕不开的第一组baseline。FGSM的核心公式是给图像加上损失函数梯度符号方向的一步扰动,扰动幅度由预算ε控制。它只走一步,速度快,经常用来做快速验证,但攻击强度偏低。PGD则可以理解为FGSM的“多步迭代版”,每步走一个较小步长α,走完一步就把扰动投影回ε球内,循环N次。
选择它们的理由不只是“大家都在用”,而是它们给出了一个稳定的参照系:如果某个防御方法连PGD-20都扛不住,那基本不用测更强的自适应攻击了;反过来,如果PGD-20都攻不破,再上复杂攻击也只是锦上添花。在扩散模型场景里我建议优先跑PGD而不是FGSM,因为扩散模型的采样器本身就带随机性,单步攻击很容易受到噪声干扰,产生不稳定的假阴性结果。
关于参数配置,我见过不少人直接把图像分类里的ε=8/255搬过来用,
