对抗样本有哪些经典baselines?
摘要:扩散模型对抗样本经典baselines baselines: AdvDM(+) [30] [ICML23] AdvDM(-) [59] [ICLR24] PhotoGuard [40] [Arxiv23] Mist [29
扩散模型对抗样本经典baselines
baselines:
AdvDM(+) [30] [ICML23]
AdvDM(-) [59] [ICLR24]
PhotoGuard [40] [Arxiv23]
Mist [29] [Arxiv23]
SDS(+) [59] [ICLR24]
SDS(-) [59] [ICLR24]
SDTS(-) [59] [ICLR24]
Adversarial Example Does Good - AdvDM(+)
背景
传统对抗样本:通常针对分类器,目标是让模型把“猫”认成“狗”。
扩散模型:扩散模型不是直接分类,而是先提取特征,再基于特征生成新图像。
扩散模型的对抗样本:阻止扩散模型正确提取图像的特征。如果特征提取错了,生成的图像就会崩坏,从而保护原图的版权(风格或内容不被模仿)。
扩散模型的对抗样本
作者将针对扩散模型的对抗样本 \(x'\) 定义为:
\[x' = x + \delta
\]
其中 \(x\) 是原图,\(\delta\) 是人眼不可见的微小扰动(满足 \(\|\delta\| \le \epsilon\))。
优化目标:
我们要找到一个 \(\delta\),使得扩散模型认为 \(x'\) 是“真实数据”的概率 \(p_\theta(x')\) 最小化。
\[\delta := \arg \min_{\delta} p_\theta(x + \delta)
\]
直观理解:让这张加了扰动的图,在扩散模型眼里变得“极其不自然”、“不可能由该模型生成”。
难点:然而,在扩散模型中,\(p_{\theta}\)实际上是无法计算的。借助潜变量\(p_{\theta}(x)\),我们可以通过蒙特卡洛方法估计\(p_{\theta}(x+\delta)\)。为此,我们展开(涉及所有时间步的潜变量 \(x_{1:T}\)),无法直接计算。
\[p_\theta(x) = \int p_\theta(x_{0:T}) dx_{1:T}
\]
我们将对抗样本\(x+\delta\)记为\(x'\),通过在\(x_{1: T}\)的不同采样过程中最小化\(p_{\theta}(x_{0: T})\),我们近似地最小化了\(p_{\theta}(x')\)。
最终优化目标变成了最大化扩散模型的训练损失函数 \(\mathcal{L}_{DM}\) 的期望:
\[\max_{\delta} \mathbb{E}_{x'_{1:T} \sim u(x'_{1:T})} [\mathcal{L}_{DM}(x', \theta)]
\]
直观理解:如果能让模型在去噪过程中每一步都犯较大的错,那么这张图对模型来说就是“对抗样本”。
AdvDM 算法:基于蒙特卡洛的生成方法
算法公式
第 \(i+1\) 步的对抗样本更新公式为:
\[x^{(i+1)}_0 = x^{(i)}_0 + \alpha \cdot \text{sgn}(\nabla_{x^{(i)}_0} \mathcal{L}_{DM}(\theta))
\]
\(\alpha\):步长。
\(\text{sgn}\):符号函数(只取梯度方向,限制步长)。
算法流程(附录中的AdvDM具体实现)
初始化 \(x^{(0)}_0\) 为原图。
循环 \(N\) 次(蒙特卡洛采样次数):
从后验分布 \(q(x_{1:T}|x^{(i)}_0)\) 中采样一条噪声轨迹。
计算当前轨迹下的损失梯度。
更新图像:\(x \leftarrow x + \text{step} \times \text{gradient}\)。
裁剪扰动,确保 \(\|x - x_{original}\|_\infty \le \epsilon\)。
输出最终的对抗样本 \(x'_0\)。
评估指标
使用生成图像 \(x_g\) 与原图数据集的分布差异来衡量:
FID (Fréchet Inception Distance):FID 衡量的是两组图像在特征空间中的分布距离。将所有原图和 所有生成图分别通过 Inception-V3,得到两组特征向量集合越高越好(表示生成分布与真实分布差异大,攻击效果好)。
Precision (精确率):衡量的是生成图像中有多少比例是“高质量”且“逼真”的(即落在真实数据流形内的比例)。超球体的并集,构成了真实数据的流形区域。越低越好(表示生成的图像中,属于真实图像特征的比例低,即模型没能学到真东西)。
