找回密码
 立即注册
首页 业界区 业界 扩散模型对抗样本经典baselines

扩散模型对抗样本经典baselines

叟澡帅 5 小时前
扩散模型对抗样本经典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 (精确率):衡量的是生成图像中有多少比例是“高质量”且“逼真”的(即落在真实数据流形内的比例)。超球体的并集,构成了真实数据的流形区域。越低越好(表示生成的图像中,属于真实图像特征的比例低,即模型没能学到真东西)。
  • Recall (召回率)
Raising the Cost of Malicious AI-Powered Image Editing (PhotoGuard)

方法一:编码器攻击 (Encoder Attack)

让编码器 \(E\) 把被攻击的图像 \(x+\delta\) 映射后接近到一个特定的、无意义的目标潜向量 \(z_{targ}\)(例如一张全灰图的潜向量)。

\[\delta_{encoder} = \underset{\|\delta\|_\infty \leq \epsilon}{\text{arg min}} \| E(x + \delta) - z_{targ} \|_2^2 \]

  • \(x\): 原始图像。
  • \(\delta\): 我们要找的对抗扰动(噪声)。
  • \(\|\delta\|_\infty \leq \epsilon\): 约束条件,保证扰动足够小,人眼看不见。
  • \(z_{targ}\): 目标潜向量。论文中通常选一张灰色图片的编码值,代表“无信息”。
  • \(\| \cdot \|_2^2\): 均方误差 (MSE)。
方法二:扩散攻击 (Diffusion Attack)

无论用户输入什么提示词 \(c\),经过完整的扩散模型 \(f\) 处理后,生成的最终图像 \(\tilde{x}\) 接近一张特定的目标图片 \(x_{targ}\)(例如全灰图或纯噪声图)。
这意味着攻击要同时抵消原图的信息和文本提示词的引导作用。

\[\delta_{diffusion} = \underset{\|\delta\|_\infty \leq \epsilon}{\text{arg min}} \| f(x + \delta, c) - x_{targ} \|_2^2 \]

  • \(f(x + \delta, c)\): 完整的 LDM 生成函数。输入是带扰动的图和提示词,输出是生成图。
  • 难点:公式中的 \(f\) 包含了整个扩散过程(通常 50-100 步去噪)。如果要计算 \(\nabla_\delta \| f(x) - x_{targ} \|^2\),需要反向传播通过这几十步去噪网络。这会消耗巨大的显存。
  • 论文中的 Trick

    • 作者没有反向传播通过完整的 \(T\) 步。
    • 他们只反向传播通过部分去噪步骤,但实验证明这样生成的 \(\delta\) 依然能有效破坏整个过程。

Mist: Towards Improved Adversarial Examples for Diffusion Models

SEMANTIC LOSS

让去噪器的预测误差最大

\[\begin{aligned} & \delta:=arg min _{\delta} \mathbb{E}_{x_{1: T}' \sim u\left(x_{1: T}'\right)} \mathcal{L}_{D M}\left(x', \theta\right), \\ & where x \sim q(x), x'=x+\delta . \end{aligned}\]

\[\mathbb{E}_{t, \epsilon \sim \mathcal{N}(0,1)} \mathbb{E}_{x_{t}' \sim u\left(x_{t}'\right)}\left[\left\| \epsilon-\epsilon_{\theta}\left(x_{t}', t\right)\right\| _{2}^{2}\right]\]
其中,期望通过蒙特卡洛方法估计。直观地说,这种损失试图将图像x的表示从扩散模型的语义空间中拉出来。我们的经验观察表明,这种损失的最大化会导致基于对抗样本生成的图像中出现混乱内容。因此,我们将这种损失称为语义损失。
TEXTUAL LOSS

把图在潜空间中的表示“推”向一个错误的方向

\[\begin{aligned} \delta: & =arg min _{\delta} \mathcal{L}_{\mathcal{E}}(x, \delta, y) \\ & =arg min _{\delta}\| \mathcal{E}(y)-\mathcal{E}(x+\delta)\| _{2}, \end{aligned}\]
其中,ε表示潜在扩散模型的图像编码器,x代表输入图像,y是给定的目标图像。为了优化这一损失,我们采用了投影梯度下降(PGD)攻击。由此产生的扰动具有类似于背景上嵌入水印的特征。因此,我们将这种损失称为纹理损失。
JOINT LOSS


\[\begin{gathered} \delta:=arg max _{\delta}\left(w \mathbb{E}_{x_{1: T}' \sim u\left(x_{1: T}'\right)} \mathcal{L}_{D M}\left(x', \theta\right)-\mathcal{L}_{\mathcal{E}}(x, \delta, y)\right), \\ where x \sim q(x), x'=x+\delta . \end{gathered}\]

\[\begin{array} {c}\mathbb {E}_{t,\epsilon \sim \mathcal {N}(0,1)}\mathbb {E}_{x_{t}^{\prime }\sim u\left(x_{t}^{\prime }\right) }\left[ w\left\| \epsilon -\epsilon _{\theta }\left( x_{t}', t\right) \| _{2}^{2}\right. \right. \\ \left.-\| \mathcal {E}(y)-\mathcal {E}(x+\delta )\| _{2}\right] \end{array}\]
通过分数蒸馏有效防范基于扩散模型的模仿攻击 (AdvDM- SDS+-)

TOWARD EFFECTIVE PROTECTION AGAINST DIFFUSION BASED MIMICRY THROUGH SCORE DISTILLATION
1.jpg

在防范基于扩散的模仿攻击时,我们应关注哪些方面?(a)为潜在扩散模型(LDMs)生成对抗样本的成本很高,需要对去噪器\(\epsilon_{\theta}\)进行100多步反向传播。与攻击编码器时的强梯度相比,去噪器的梯度往往非常微弱且不稳定,这表明\(\epsilon_{\theta}\)比编码器\(E_{\phi}\)稳健得多。(b)经过投影梯度下降(PGD)迭代后,潜在2空间的扰动比x空间大得多,这表明\(E_{\phi}\)是攻击有效的原因所在。(c、d)我们提出的设计空间,在应对三种模仿攻击时具有更高的效率和灵活性。
现有的防御方法损失函数

现有的防御方法(如 AdvDM, PhotoGuard, Mist)主要通过优化以下两种损失函数来生成对抗样本(即给原图加扰动),目的是让扩散模型生成的结果崩坏或偏离原意。
(1) 语义损失 (Semantic Loss, \(\mathcal{L}_S\))


  • 针对模块去噪器 (Denoiser, \(\epsilon_\theta\))
    \[\mathcal{L}_S(x) = \mathbb{E}_{t, \epsilon} \mathbb{E}_{z_t \sim q_t(E_\phi(x))} \| \epsilon_\theta(z_t, t) - \epsilon \|_2^2 \]
LDM 训练时的标准损失函数(预测噪声与真实噪声的均方误差)防御者一般希望最大化这个损失。通过投影梯度上升 (PGD),寻找一个扰动 \(\delta\),使得加扰后的图像 \(x_{adv}\) 在经过编码和加噪后,让去噪器的预测误差最大。
(2) 纹理损失 (Textural Loss, \(\mathcal{L}_T\))


  • 针对模块编码器 (Encoder, \(E_\phi\))

    \[\mathcal{L}_T(x) = - \| E_\phi(x) - E_\phi(y) \|_2^2 \]
把图在潜空间中的表示“推”向一个错误的方向(目标 \(y\) 的方向)。当扩散模型基于这个被篡改的潜变量进行生成时,生成的图像会带有目标图像 \(y\) 的特征(例如奇怪的纹理、特定的风格),从而破坏原图的真实性或版权风格。
(3) 组合损失 (Combined Loss)

同时使用 \(\mathcal{L}_S\) 和 \(\mathcal{L}_T\)。
  1. $$ \mathcal{L}_{adv} = \mathcal{L}_S + \lambda \mathcal{L}_T $$
复制代码
优化过程:投影梯度上升 (PGD)

无论使用哪种 Loss,生成对抗样本的过程都是通过迭代优化完成的。文中给出了通用的更新公式:

\[x^{t+1} = \mathcal{P}_{B_\infty(x, \delta)} [ x^t + \eta \cdot \text{sign}(\nabla_{x^t} \mathcal{L}_{adv}(x^t)) ] \]

  • \(\nabla_{x^t} \mathcal{L}_{adv}\):计算损失函数对输入图像 \(x\) 的梯度。
  • \(\text{sign}(...)\):取梯度符号,只关心扰动方向。
  • \(\eta\):步长。
  • \(\mathcal{P}_{B_\infty}\):投影操作,确保扰动后的图像 \(x^{t+1}\) 与原图 \(x\) 的差异不超过预设的预算 \(\delta\)(保证人眼不可见,通常使用 \(\ell_\infty\) 范数)。
  • 方向:因为是攻击,所以是 Gradient Ascent (梯度上升),即沿着让 Loss 变大的方向走。
基于分数蒸馏的更快语义损失

语义损失\(L_{S}\)被定义为每个时间步长噪声估计误差的期望值。然而,在审视公式1和公式4时,一个显著的挑战显而易见:项\(\nabla_{x} L_{S}(x)\)的计算被证明是计算密集型的,特别是当我们需要为更新过程执行100多次迭代时。另一个问题是大量的GPU内存使用,这给个人用户带来了沉重负担。为了解决这些问题,我们采用了一种近似方法

\[\nabla_{x} \mathcal{L}_{S}(x)=\mathbb{E}_{t, \epsilon} \mathbb{E}_{z_{t}}\left[\lambda(t)\left(\epsilon_{\theta}\left(z_{t}, t\right)-\epsilon\right) \frac{\partial \epsilon_{\theta}\left(z_{t}, t\right)}{\partial z_{t}} \frac{\partial z_{t}}{\partial x_{t}}\right] \approx \mathbb{E}_{t, \epsilon} \mathbb{E}_{z_{t}}\left[\lambda(t)\left(\epsilon_{\theta}\left(z_{t}, t\right)-\epsilon\right) \frac{\partial z_{t}}{\partial x_{t}}\right]\]
<blockquote>
DreamFusion通过使用预训练的二维文本到图像扩散模型来实现文本到三维的综合,寻找一组 3D 场景参数
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册