荦确 發表於 2026-4-21 17:04:00

方差在扩散模型保护中的作用

<h1 id="variance-in-adversarial-attack-for-customized-diffusion-models">Variance in Adversarial Attack for Customized Diffusion Models</h1>
<h2 id="idprotector一种对抗性噪声编码器用于防范保留身份的图像生成">IDProtector:一种对抗性噪声编码器,用于防范保留身份的图像生成</h2>
<h3 id="related-works">Related Works</h3>
<h4 id="tuning-based-customized-generation">Tuning-based Customized Generation</h4>
<p>DreamBooth, Custom Diffusion, LoRA and Textual Inversion</p>
<p>需要多图像微调,它们需要大量的计算资源和时间</p>
<h4 id="encoder-based-id-preserving-generation">Encoder-based ID-Preserving Generation</h4>
<p>基于编码器的定制生成方法利用预训练编码器提取外观特征,促进实时的零样本生成。这些方法从领域无关的编码器发展到了领域特定的编码器。</p>
<p>InstantID包含三个关键组件:<br>
(1)一个捕获鲁棒语义面部信息的ID嵌入;(工业级预训练人脸识别模型作为 ID 嵌入的提取基础,论文中明确使用的是antelopev2)<br>
(2)一个具有解耦交叉注意力的轻量级适配模块,便于将图像用作视觉提示;<br>
(3)一个IdentityNet,通过额外的空间控制对参考面部图像的细节特征进行编码。<br>
<img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170340213-1076853241.png" class="lazyload"></p>
<h3 id="problem-definition">Problem Definition</h3>
<p>研究目标:给定一幅包含人像的图像x,我们的目标是生成对抗性扰动δ,以防止身份保留生成。我们旨在最大化未受扰动的生成图像<span class="math inline">\(g(x)\)</span>与受扰动的生成图像<span class="math inline">\(g(x+\delta)\)</span>之间的身份一致性差异,其中g是身份保留生成器。为了统一对不同模型的保护,我们可以找到一个能同时干扰多个特征空间的δ,降低相似度值的总和。因此,我们训练了一个噪声编码器网络<span class="math inline">\(E_{\theta}\)</span>,求解</p>
<p></p><div class="math display">\[min _{\theta }S\left\{ g_{i}(x),g_{i}(x+\delta )\right\} , \delta =E_{\theta }(x)
\]</div><p></p><p>,约束条件为<span class="math inline">\(\|\delta\|_{\infty}&lt;\epsilon\)</span>。这里,S表示身份相似性度量,我们使用ArcFace和CLIP特征空间中的余弦相似度进行评估。</p>
<h3 id="method">Method</h3>
<p><img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170342660-617712219.png" class="lazyload"><br>
我们方法的整体示意图。我们方法的关键设计包括噪声编码器、损失函数以及允许反向传播的梯度优化路径。</p>
<h4 id="noise-encoder">Noise Encoder</h4>
<p>该网络以224×224的RGB图像作为输入,输出三通道的对抗性扰动。这些扰动被投射到[-1, 1]范围内,然后进行反归一化处理(<span class="math inline">\([-\epsilon, \epsilon]\)</span>),调整为原始图像的尺寸后添加到图像中。我们使用<strong>视觉Transformer(ViT)来生成对抗性噪声</strong>,其输入和输出维度均设置为224×224。</p>
<p>从经验来看,我们发现添加一个额外的先验掩码通道(用于指示人脸位置)有助于训练。这个人脸定位掩码是由InsightFace管道基于面部特征点生成的,这些特征点指定了图像中人脸的区域。该掩码作为第四个输入通道与图像拼接,省去了网络从零开始学习人脸定位能力的过程,从而降低了训练难度。</p>
<h4 id="adversarial-id-protection">Adversarial ID Protection</h4>
<p>为了实现身份保护,我们可以使从受保护图像中提取的特征与原始特征有显著差异,从而阻止生成模型获取正确的面部特征。基于这一原理,我们分析了InstantID、IP-Adapter、IP-Adapter-Plus和PhotoMaker的具体流程,以设计有针对性的攻击目标和损失函数。</p>
<p>InstantID通过两个步骤获取面部特征,如图2所示。首先,它将人脸对齐到预定义的位置,然后将对齐后的人脸输入ArcFace特征提取器以获取面部信息。我们选择<strong>欺骗ArcFace模型</strong>,最小化原始图像与受保护图像的ArcFace特征之间的余弦相似度。</p>
<p>IP-Adapter、IP-Adapter-Plus和PhotoMaker均依赖于<strong>CLIP</strong>视觉编码器提取的面部特征,尽管它们使用的CLIP视觉版本不同。IP-Adapter和PhotoMaker利用CLIP视觉的输出,而IP-Adapter-Plus则采用CLIP视觉倒数第二层之前的特征。如图2所示,来自不同层的嵌入提供了不同的攻击面。我们根据三个原则选择用于攻击的目标嵌入:<br>
(1)阻断所有潜在路径,确保任何从左到右的信息流都至少经过一个目标嵌入,以保证所有信息流都会被中断;<br>
(2)在网络中尽早选择特征(图2中越靠左的位置),以缩短反向传播路径长度,从而简化优化过程;<br>
(3)以具有密集语义信息的嵌入为目标,以便更有效地进行操控。</p>
<p>最终,我们选择图2中标记为红色的嵌入作为主要攻击目标。与InstantID类似,其目标是最大化受扰动嵌入与原始嵌入之间的余弦相似度,从而在攻击后有效地使它们对齐。因此,最终的对抗损失是所有损失的加权平均值,</p>
<p></p><div class="math display">\[L_{adv }=\sum_{Custom Model i} \alpha_{i} \cdot cossim\left(e_{i}, e_{i}'\right)
\]</div><p></p><p>给出,其中<span class="math inline">\(e_{i}\)</span>和<span class="math inline">\(e_{i}'\)</span>分别表示干净图像和受保护图像的人脸嵌入。</p>
<h4 id="imperceptibility-不可感知性">Imperceptibility (不可感知性)</h4>
<p>为了将对图像质量的视觉影响降至最低,我们对预测的对抗性噪声δ施加了<span class="math inline">\(\ell_{1}\)</span>正则化。我们进一步对任何超过ϵ球边界的噪声值引入了辅助惩罚。这些项共同构成了我们的正则化损失,如下所示:</p>
<p></p><div class="math display">\[L_{reg }=\beta_{1} \cdot\| \delta\| _{1}+\beta_{2} \cdot\left\| \delta-clip_{ \pm \epsilon}(\delta)\right\| _{1}
\]</div><p></p><p>因此,最终损失是对抗性损失和正则化的总和,具体如下:</p>
<p></p><div class="math display">\[L=L_{adv }+L_{reg }
\]</div><p></p><ol>
<li>第一项:<span class="math inline">\(\beta_1 \cdot \|\delta\|_1\)</span> 是标准的 <strong>L1 正则化</strong>。它惩罚噪声 <span class="math inline">\(\delta\)</span> 的绝对值之和。</li>
</ol>
<blockquote>
<table>
<thead>
<tr>
<th style="text-align: left">特性</th>
<th style="text-align: left">L1 正则化</th>
<th style="text-align: left">L2 正则化</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">效果</td>
<td style="text-align: left">稀疏性(很多像素=0)</td>
<td style="text-align: left">平滑性(所有像素都小)</td>
</tr>
<tr>
<td style="text-align: left">几何形状</td>
<td style="text-align: left">菱形(有尖角)</td>
<td style="text-align: left">圆形(光滑)</td>
</tr>
<tr>
<td style="text-align: left">视觉表现</td>
<td style="text-align: left">局部集中噪声</td>
<td style="text-align: left">全局均匀噪声</td>
</tr>
</tbody>
</table>
<p>L1 正则化倾向于让大部分像素点的噪声为 0 或接近 0,只在关键区域(如面部特征边缘)产生噪声。这比 L2 正则化更能保持图像的原始纹理,减少“雾状”模糊感。<br>
人眼特性:人眼对全局均匀的微弱噪声比局部稀疏的噪声更敏感</p>
</blockquote>
<ol>
<li>第二项:<span class="math inline">\(\beta_2 \cdot \|\delta - \text{clip}_{\pm\epsilon}(\delta)\|_1\)</span> (硬边界软约束)
<ul>
<li>
<p><span class="math inline">\(\text{clip}_{\pm\epsilon}(\delta)\)</span> 表示将噪声值强制截断在 <span class="math inline">\([-\epsilon, \epsilon]\)</span> 范围内</p>
</li>
<li>
<p><span class="math inline">\(\delta - \text{clip}_{\pm\epsilon}(\delta)\)</span> 计算的是<strong>超出边界的那部分噪声</strong>。</p>
</li>
<li>
<p>允许网络在训练时“试探”边界,但一旦越界就会受到惩罚,从而引导网络主动学习生成始终在 <span class="math inline">\(\epsilon\)</span> 范围内的噪声。</p>
</li>
</ul>
</li>
</ol>
<h4 id="robustness-鲁棒性">Robustness (鲁棒性)</h4>
<p>InstantID 等模型在提取特征前,会先进行 <strong>人脸对齐 (Face Alignment)</strong>。这是一个仿射变换(Affine Transformation),会根据关键点计算一个矩阵 <span class="math inline">\(A\)</span> 把脸“摆正”。如果在训练时假设矩阵 <span class="math inline">\(A\)</span> 是固定的,但在实际推理时,由于添加了噪声 <span class="math inline">\(\delta\)</span>,人脸关键点检测可能会发生微小偏移,导致实际使用的对齐矩阵 <span class="math inline">\(A'\)</span> 与训练时的 <span class="math inline">\(A\)</span> 不同。这种错位会导致精心设计的噪声失效。</p>
<p></p><div class="math display">\[\tilde{p}' = (A + \mathcal{N}(0, \sigma I)) \tilde{p} \quad (5)
\]</div><p></p><ol>
<li>
<p><strong><span class="math inline">\((A + \mathcal{N}(0, \sigma I))\)</span> (带噪声的仿射矩阵)</strong></p>
<ul>
<li><span class="math inline">\(A\)</span>:原始计算出的标准仿射变换矩阵。</li>
<li><span class="math inline">\(\mathcal{N}(0, \sigma I)\)</span>:添加到矩阵上的高斯噪声(均值为 0,方差为 <span class="math inline">\(\sigma\)</span>,文中设定 <span class="math inline">\(\sigma=0.003\)</span>)。</li>
<li>模拟“关键点检测不准”或“图像轻微变形”的情况。</li>
</ul>
</li>
<li>
<p><strong><span class="math inline">\(\tilde{p}'\)</span> (模拟的对齐后坐标)</strong></p>
<ul>
<li>使用这个“被污染”的矩阵去变换人脸关键点 <span class="math inline">\(\tilde{p}\)</span>,得到新的坐标 <span class="math inline">\(\tilde{p}'\)</span>。</li>
<li>这意味着网络在训练时看到的“对齐后的人脸”是带有轻微几何形变的。</li>
</ul>
</li>
</ol>
<h3 id="实验设置">实验设置</h3>
<h4 id="数据集">数据集</h4>
<ul>
<li><strong>训练集</strong>:<strong>CelebA</strong> (190,000 张未裁剪图像),包含任意尺寸和长宽比的人脸。</li>
<li><strong>测试集</strong>:
<ul>
<li><strong>CelebA</strong> (50 张未见过的图像)。</li>
<li><strong>VGG Face</strong> (50 张图像),用于评估跨数据集泛化能力。</li>
</ul>
</li>
</ul>
<h4 id="模型架构">模型架构</h4>
<ul>
<li><strong>核心网络</strong>:<strong>ViT-S/8</strong> (Vision Transformer Small, patch size 8)。</li>
<li><strong>输入</strong>:224×224 RGB 图像 + 1 通道人脸掩码 (Face Mask) (由 InsightFace 生成,辅助定位)。</li>
<li><strong>输出</strong>:3 通道对抗噪声 <span class="math inline">\(\delta\)</span>,范围限制在 <span class="math inline">\([-\epsilon, \epsilon]\)</span>。</li>
</ul>
<h4 id="训练策略">训练策略</h4>
<ul>
<li>分 <strong>3 个阶段</strong> 训练,逐步缩小噪声允许范围 (<span class="math inline">\(\epsilon\)</span>) 并调整损失权重。
<ul>
<li><strong>Stage 1</strong>: <span class="math inline">\(\epsilon=0.05\)</span>, 120 epochs.</li>
<li><strong>Stage 2</strong>: <span class="math inline">\(\epsilon=0.04\)</span>, 20 epochs.</li>
<li><strong>Stage 3</strong>: <span class="math inline">\(\epsilon=0.035\)</span> (即 9/255), 20 epochs.</li>
</ul>
</li>
<li><strong>优化器设置</strong>:
<ul>
<li><strong>Warm-up</strong>: 前 2,500 步线性预热。</li>
<li><strong>梯度裁剪</strong>: L2 范数最大值为 10。</li>
<li><strong>Batch Size</strong>: 112。</li>
<li><strong>硬件</strong>: 4 × NVIDIA H100 (80GB),训练耗时约10 天。</li>
</ul>
</li>
<li><strong>鲁棒性增强</strong>:在 InstantID 分支的仿射变换矩阵 <span class="math inline">\(A\)</span> 中加入高斯噪声 (<span class="math inline">\(\sigma=0.003\)</span>) 进行数据增强。</li>
</ul>
<h4 id="评估指标">评估指标</h4>
<ul>
<li><strong>保护效果</strong>:
<ul>
<li><strong>ISM (Identity Score Matching)</strong>: 原始图与生成图的 ArcFace 特征余弦相似度 (<strong>越低越好</strong>)。</li>
<li><strong>FDR (Face Detection Rate)</strong>: 生成图中检测到人脸的比例 (<strong>越低越好</strong>,反映是否导致无法生成人脸)。</li>
</ul>
</li>
<li><strong>图像质量</strong>:
<ul>
<li><strong>PSNR / SSIM</strong>: 原始图与保护后图像的相似度 (<strong>越高越好</strong>)。</li>
<li><strong>SER-FIQ</strong>: 生成图像的质量评分。</li>
</ul>
</li>
<li><strong>效率</strong>:单张图像保护耗时 (秒)。</li>
</ul>
<h4 id="对比基线">对比基线</h4>
<ul>
<li>ACE, AdvDM, Anti-DreamBooth, PhotoGuard, SimAC。</li>
<li>以及作者方法的 PGD 变体 (Ours-PGD,用于验证上限但速度慢)。</li>
</ul>
<h2 id="pid-prompt-independent-data-protection-against-latent-diffusion-models">PID: Prompt-Independent Data Protection Against Latent Diffusion Models</h2>
<h3 id="related-work">Related Work</h3>
<h4 id="1-基于代理模型的对抗样本生成">1. 基于代理模型的对抗样本生成</h4>
<p>这类方法的核心思想是“以攻代守”,通过模拟攻击者的训练过程来生成能够干扰模型学习的对抗性图像。</p>
<ol>
<li><strong>构建代理模型</strong>:防御者首先使用干净的原始数据微调一个<strong>代理模型</strong>(surrogate model, <span class="math inline">\(\theta_{sur}\)</span>),使其模拟潜在的攻击者模型。<br>
<span class="math inline">\(\theta_{sur} = \arg\min_{\theta} \mathcal{L}_{cond}(\theta, c, \mathcal{E}(x))\)</span></li>
<li><strong>最大化损失</strong>:在获得代理模型后,防御者在原始图像 <span class="math inline">\(x\)</span> 上添加扰动,生成对抗样本 <span class="math inline">\(x^*\)</span>,最大化该代理模型在扰动数据上的训练损失。<br>
<span class="math inline">\(x^* = \arg\max_{||x' - x||_p \leq \epsilon} \mathcal{L}_{cond}(\theta_{sur}, c, \mathcal{E}(x'))\)</span><br>
其中,<span class="math inline">\(\mathcal{L}_{cond}\)</span> 是条件扩散模型的训练损失,<span class="math inline">\(c\)</span> 是文本提示词,<span class="math inline">\(\mathcal{E}\)</span> 是视觉编码器,<span class="math inline">\(\epsilon\)</span> 限制扰动的不可见性。</li>
</ol>
<h4 id="2-基于双层优化的不可学习样本生成">2. 基于双层优化的不可学习样本生成</h4>
<blockquote>
<p>这类方法借鉴了经典“不可学习样本”(Unlearnable Examples)的思想,旨在生成一种特殊的数据,使得模型即使在上面进行训练,也无法学到任何有用的概念。</p>
<table>
<thead>
<tr>
<th style="text-align: left">特性</th>
<th style="text-align: left">对抗样本 (Adversarial Examples)</th>
<th style="text-align: left">不可学习样本 (Unlearnable Examples)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">主要目标</td>
<td style="text-align: left">欺骗推理 (Inference)</td>
<td style="text-align: left">破坏训练 (Training)</td>
</tr>
<tr>
<td style="text-align: left">应用场景</td>
<td style="text-align: left">模型已训练好,输入扰动图片让模型预测错误。</td>
<td style="text-align: left">模型正在训练中,输入扰动图片让模型学不到特征。</td>
</tr>
</tbody>
</table>
</blockquote>
<p>采用最小 - 最大(Min-Max)的双层优化策略。<br>
<strong>内层优化</strong>(Min):模拟攻击者,试图找到最优的模型参数 <span class="math inline">\(\theta\)</span> 以最小化训练损失。<br>
<strong>外层优化</strong>(Max):防御者寻找最优的扰动图像 <span class="math inline">\(x^*\)</span>,使得即使攻击者找到了最优模型,其训练损失依然尽可能大。</p>
<p></p><div class="math display">\[x^* = \arg\max_{||x' - x||_p \leq \epsilon} \left( \arg\min_{\theta} \mathcal{L}_{cond}(\theta, c, \mathcal{E}(x')) \right)
\]</div><p></p><p><img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170343666-1996776534.png" class="lazyload"><br>
Anti-DreamBooth的两种变体,即全训练替代模型引导(FSMG)和交替替代与扰动学习(ASPL)。这两种方法都使用投影梯度下降(PGD)来生成对抗性噪声δ,以最大化替代模型的重建损失<span class="math inline">\(L_{cond }\)</span>。左图:FSMG使用在小型干净图像集<span class="math inline">\(x_{A}\)</span>上完全微调的固定替代模型<span class="math inline">\(\theta_{clean }\)</span>来指导PGD优化。右图:ASPL在以下两个步骤之间交替进行:(i)在干净图像<span class="math inline">\(x_{A}\)</span>上微调克隆替代模型<span class="math inline">\(\theta'\)</span>;(ii)使用该克隆模型通过PGD为当前图像集<span class="math inline">\(X_{B}^{i}\)</span>生成δ。然后,在下次迭代之前,在扰动图像<span class="math inline">\(X_{B}^{i+1}\)</span>上微调实际的替代模型θ。</p>
<h4 id="问题">问题</h4>
<ol>
<li>
<p><strong>提示词依赖性</strong>(Prompt Dependency):<br>
两类方法在生成扰动时都需要一个预设的文本提示词 <span class="math inline">\(c\)</span>。 这导致扰动是针对该特定提示词优化的。在实际场景中,防御者无法预知攻击者会使用什么提示词进行微调。一旦提示词不匹配,防御效果会显著降低。</p>
</li>
<li>
<p><strong>计算资源昂贵</strong>:<br>
通过大型UNet进行反向传播会消耗大量的GPU显存(不使用额外技巧的情况下约为24GB)。</p>
</li>
</ol>
<h3 id="与提示词相关的防御对不同的提示词是否稳健">与提示词相关的防御对不同的提示词是否稳健?</h3>
<blockquote>
<p>研究问题1:保护阶段和攻击阶段所使用的提示词之间的不匹配是否会影响现有防御算法的效果?</p>
</blockquote>
<h4 id="实验设置-1">实验设置</h4>
<ul>
<li><strong>数据集</strong>: <strong>CelebA-HQ</strong>:随机选取 10 位名人,每人 4 张图片。</li>
<li><strong>基础模型</strong>:Stable Diffusion v1.5</li>
<li><strong>微调方法</strong>:DreamBooth</li>
<li><strong>防御方法</strong>:
<ul>
<li><strong>FSGM</strong> (基于代理模型的对抗样本)。</li>
<li><strong>ASPL</strong> (基于双层优化的不可学习样本)。</li>
<li><strong>参数设置</strong>:扰动预算 <span class="math inline">\(\epsilon = 0.05\)</span></li>
</ul>
</li>
</ul>
<h4 id="评估指标-1">评估指标</h4>
<p>实验使用四个指标来量化防御效果:</p>
<ol>
<li><strong>FDS (Face Detection Score)</strong> <span class="math inline">\(\downarrow\)</span>:衡量生成图像与训练图像的面部相似度(越低越好,表示没学会脸)。</li>
<li><strong>FID (Fréchet Inception Distance)</strong> <span class="math inline">\(\uparrow\)</span>:衡量生成分布与训练分布的距离(越高越好,表示分布差异大,没学会概念)。</li>
<li><strong>IQS (Image Quality Score)</strong> <span class="math inline">\(\downarrow\)</span>:基于 CLIP 的图像质量评分(越低表示质量越差,噪声越多)。</li>
<li><strong>BRISQUE</strong> <span class="math inline">\(\uparrow\)</span>:无参考图像质量评价(越高表示图像失真/噪声越严重)。</li>
</ol>
<p>对于每位名人选定的4张图像,我们采用FSGM和ASPL防御方法,并使用保护提示<span class="math inline">\(c_{prot }\)</span>来生成相应的受保护版本。然后,这些受保护图像被用于通过微调提示<span class="math inline">\(C_{explo }\)</span>对模型进行微调,从而得到不同的微调模型。在测试阶段,我们使用任意提示生成一组图像,随后利用上述四个指标对其进行评估。不同微调模型的平均结果如图2所示。我们可以发现,当保护提示与微调提示不同时,保护性能会受到显著影响。</p>
<p><img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170344360-2081541815.png" class="lazyload"></p>
<h3 id="4-扰动视觉编码器会影响微调吗">4. 扰动视觉编码器会影响微调吗?</h3>
<blockquote>
<p>研究问题2:像素空间中的扰动如何影响潜在扩散模型(LDMs)中视觉编码器的输出,进而影响微调过程?</p>
</blockquote>
<p>回想一下,潜在分布是通过基于KL的变分自编码器建模为多项式高斯分布,<span class="math inline">\(N(\mu_{E}(x), \sigma_{E}^{2}(x))\)</span>,它<strong>与提示无关</strong>。当存在提示不匹配时,这一特性可用于解决防御性能下降的问题。既然视觉编码器不受文本提示词影响,那么通过扰动像素空间来改变视觉编码器输出的潜在分布(Latent Distribution)(即均值 <span class="math inline">\(\mu\)</span> 和方差 <span class="math inline">\(\sigma^2\)</span>),是否能够有效地破坏模型的微调过程,且这种破坏不依赖于攻击者使用的具体提示词?</p>
<p>作者定义了两种主要的损失函数来最大化扰动后的图像与原始干净图像在潜在分布统计量上的差异:</p>
<ul>
<li><strong>针对均值的扰动 (<span class="math inline">\(L_{mean}\)</span>)</strong>:
<ul>
<li><strong>公式</strong>:<span class="math inline">\(L_{mean}(x, \delta) = ||\mu_E(x + \delta) - \mu_E(x)||_2^2\)</span></li>
<li><strong>目的</strong>:最大化扰动后图像与干净图像在潜在空间<strong>均值</strong>之间的距离。</li>
</ul>
</li>
<li><strong>针对方差的扰动 (<span class="math inline">\(L_{var}\)</span>)</strong>:
<ul>
<li><strong>公式</strong>:<span class="math inline">\(L_{var}(x, \delta) = ||\sigma_E(x + \delta) - \sigma_E(x)||_2^2\)</span></li>
<li><strong>目的</strong>:最大化扰动后图像与干净图像在潜在空间<strong>方差</strong>之间的距离。</li>
</ul>
</li>
</ul>
<p><strong>实验设置</strong>:</p>
<ul>
<li>使用 <span class="math inline">\(\ell_\infty\)</span>-PGD 进行优化。</li>
<li>扰动预算约束为 <span class="math inline">\(\|\delta\|_\infty \leq \epsilon = 0.05\)</span>。</li>
<li>使用扰动后的图像对 Stable Diffusion v1.5 进行微调(DreamBooth),然后评估生成效果。</li>
</ul>
<h4 id="结果">结果</h4>
<ul>
<li>
<p><strong>均值扰动 (<span class="math inline">\(L_{mean}\)</span>) 的影响</strong>:</p>
<ul>
<li>主要影响生成图像的<strong>纹理(Texture)</strong>。</li>
<li>低IQS和高BRISQUE</li>
</ul>
</li>
<li>
<p><strong>方差扰动 (<span class="math inline">\(L_{var}\)</span>) 的影响</strong>:</p>
<ul>
<li>主要阻止模型掌握图像的<strong>核心概念(Core Concepts)</strong>。</li>
<li>低FDS和高FID。</li>
</ul>
</li>
<li>
<p><strong>像素微小扰动引发潜在空间巨变</strong></p>
<ul>
<li>即使在像素空间只添加了微小的扰动(<span class="math inline">\(\epsilon=0.05\)</span>),也能导致潜在分布发生剧烈变化。</li>
<li>方差的变化尤为剧烈,干净图像与扰动图像的方差差距范围从约 <span class="math inline">\(2^{-15}\)</span> 扩大到 <span class="math inline">\(2^{12}\)</span>。</li>
<li><strong>非相关性</strong>:均值和方差的变化并不完全相关。一个发生显著波动,而另一个没有表现出实质性变化,这表明它们对微调结果的影响不同。因此需要设计一个复杂的目标来更有效地操控潜在分布的可能性,该目标能利用同时影响均值和方差的优势。</li>
</ul>
</li>
</ul>
<p><img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170344813-735959005.png" class="lazyload"></p>
<h3 id="我们如何更好地利用视觉编码器来进行数据保护">我们如何更好地利用视觉编码器来进行数据保护?</h3>
<blockquote>
<p>研究问题3:如果研究问题1的答案是肯定的,我们能否通过更好地利用与提示无关的视觉编码器来提高保护的鲁棒性?</p>
</blockquote>
<h4 id="proposed-prompt-independent-defense-pid">Proposed Prompt-Independent Defense (PID)</h4>
<h5 id="1基于采样的潜在表示扰动">(1)<span class="math inline">\(L_{sample}\)</span>:基于采样的潜在表示扰动</h5>
<p>沿用Adversarial example does good的方法,直接扰动从潜在分布中采样的表示<span class="math inline">\(z=\mathcal{E}(x,\varepsilon)\)</span>,通过期望最大化干净/加扰图像采样表示的<span class="math inline">\(\ell_2\)</span>距离:</p>
<p></p><div class="math display">\[L_{sample }(x, \delta)=\mathbb{E}_{\varepsilon_{1}, \varepsilon_{2}}\left\| \mathcal{E}\left(x+\delta, \varepsilon_{1}\right)-\mathcal{E}\left(x, \varepsilon_{2}\right)\right\| _{2}^{2}
\]</div><p></p><p>为了减少优化过程中不必要的随机性,我们随后尝试从<span class="math inline">\(L_{sample }\)</span>中排除ε,得到损失函数<span class="math inline">\(L_{add }\)</span>。考虑到在图4中观察到的均值和方差大小存在显著差异,我们提出了<span class="math inline">\(L_{add-log }\)</span>,它联合优化方差的对数和均值。此外,我们探索了对均值<span class="math inline">\(x_{target }\)</span>的有针对性操作。</p>
<h5 id="2均值方差损失直接相加">(2)<span class="math inline">\(L_{add}\)</span>:均值+方差损失直接相加</h5>
<p></p><div class="math display">\[L_{add}(x, \delta)=L_{mean }+L_{v a r}
\]</div><p></p><p>其中<span class="math inline">\(L_{mean}=\left\| \mu_{\mathcal{E}}(x+\delta)-\mu_{\mathcal{E}}(x)\right\| _{2}^{2}\)</span>,<span class="math inline">\(L_{var}=\left\| \sigma_{\mathcal{E}}(x+\delta)-\sigma_{\mathcal{E}}(x)\right\| _{2}^{2}\)</span>。</p>
<h5 id="3均值对数方差的联合损失最终pid采用">(3)<span class="math inline">\(L_{add-log}\)</span>:均值+对数方差的联合损失(最终PID采用)</h5>
<p>针对<span class="math inline">\(L_{add}\)</span>的数量级问题,对潜方差做<strong>对数变换</strong>,消除均值与方差的尺度差异,实现二者的<strong>均衡联合优化</strong>,也是论文的核心设计:</p>
<p></p><div class="math display">\[L_{add-log }(x, \delta)=L_{mean }+log \frac{\sigma_{\mathcal{E}}(x+\delta)^{2}}{\sigma_{\mathcal{E}}(x)^{2}}
\]</div><p></p><h5 id="4目标导向的均值扰动">(4)<span class="math inline">\(L_{mean }^T\)</span>:目标导向的均值扰动</h5>
<p>将加扰图像的潜均值定向推至预设目标图像<span class="math inline">\(x_{target}\)</span>的潜均值,通过负距离实现定向操纵:</p>
<p></p><div class="math display">\[L_{mean }^{T}(x, \delta)=-\left\| \mu_{\mathcal{E}}(x+\delta)-\mu_{\mathcal{E}}\left(x_{target }\right)\right\| _{2}^{2}
\]</div><p></p><blockquote>
<p>仅针对潜均值优化,忽略方差的防御作用。<br>
<strong>为什么只有均值能推,方差推不了吗?</strong><br>
LDM的视觉编码器(KL-VAE)对图像的潜分布建模为<span class="math inline">\(N(\mu_{\mathcal{E}}(x),\sigma_{\mathcal{E}}^2(x))\)</span></p>
<ul>
<li><strong>潜均值<span class="math inline">\(\mu_{\mathcal{E}}(x)\)</span></strong>:是图像的确定性信息,对应像素空间的图像内容、纹理、语义等核心信息。</li>
<li><strong>潜方差<span class="math inline">\(\sigma_{\mathcal{E}}(x)\)</span></strong>:表征的是编码器对图像特征的建模不确定性,而非图像的具体内容,其取值是相对的、无固定语义的。<br>
高方差区域:通常对应图像中复杂、高频、难以预测的区域(如复杂的纹理、头发丝、噪点、模糊边缘)。编码器在这里表示不确定这里的具体像素是什么,所以保留较大的随机性范围。<br>
低方差区域:通常对应图像中平滑、简单、确定性强的区域(如纯色背景、大块物体表面)。编码器表示确定这里是什么,随机性很小。</li>
</ul>
<h5 id="textual-loss">TEXTUAL LOSS</h5>
<p></p><div class="math display">\[\begin{aligned} \delta: &amp; =arg min _{\delta} \mathcal{L}_{\mathcal{E}}(x, \delta, y) \\ &amp; =arg min _{\delta}\| \mathcal{E}(y)-\mathcal{E}(x+\delta)\| _{2}, \end{aligned}
\]</div><p></p><p>在大多数针对 LDM 的对抗攻击中,为了计算的确定性和稳定性, E(x) 往往直接指代 <span class="math inline">\(μ_E(x)\)</span>,因为方差σ是一个范围/不确定性度量,不适合直接用于计算两个图像表示之间的“点对点”欧几里得距离。<br>
σ (方差):承载了重建的不确定性。它通常是为了满足 KL 散度约束而存在的,或者是为了覆盖那些难以重建的高频细节。优化器自然会把所有火力集中在修改μ上。</p>
<p>PID 的损失函数专门有一项 <span class="math inline">\(L_{var}=\left\| \sigma_{\mathcal{E}}(x+\delta)-\sigma_{\mathcal{E}}(x)\right\| _{2}^{2}\)</span>如果没有这一项,优化器自然会偷懒,只动μ。</p>
</blockquote>
<p><img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170345236-1805772897.png" class="lazyload"></p>
<h4 id="将pid与现有防御措施集成">将PID与现有防御措施集成</h4>
<p>我们继续探索利用PID改进当前防御措施的可能性。为了结合两种不同类型的防御,即基于编码器的防御和针对训练损失函数的防御,我们采用了一种联合优化方法,该方法涉及对这两个防御目标进行加权组合,这与Liang等人(2023)以及Liang和Wu(2023)的研究类似。具体而言,给定一个包含潜在扩散模型(LDMs)训练损失的防御目标T,以及一个旨在操纵潜在分布的防御目标L,我们定义了一个权衡系数λ来平衡这两个目标。组合防御的表达式如下:</p>
<p></p><div class="math display">\[L_{combo}(\theta ,c,x)=T(\theta ,c,x)+\lambda L(x)
\]</div><p></p><p>我们让<span class="math inline">\(L=L_{a d d-log }\)</span>,<span class="math inline">\(T \in{ ASPL, FSGM }\)</span>。我们通过实证确定<span class="math inline">\(\lambda=0.05\)</span>是默认设置下的最佳参数。</p>
<h3 id="实验">实验</h3>
<h4 id="实验设置-2">实验设置</h4>
<ol>
<li><strong>prompt匹配与否</strong>:
<ul>
<li>控制场景:保护阶段提示词 <span class="math inline">\(c_{prot}\)</span> 与攻击阶段提示词 <span class="math inline">\(c_{explo}\)</span> 一致(<span class="math inline">\(c_{prot}=c_{explo}\)</span>);</li>
<li>真实场景:提示词不匹配(<span class="math inline">\(c_{prot}≠c_{explo}\)</span>),模拟攻击者故意使用不同提示词绕过防御的情况。</li>
</ul>
</li>
<li><strong>文本编码器状态</strong>:
<ul>
<li>冻结文本编码器(Freeze-TE):微调时仅更新UNet参数;</li>
<li>不冻结文本编码器(Unfrozen-TE):微调时同时更新UNet和文本编码器参数。</li>
</ul>
</li>
<li><strong>基础配置</strong>:
<ul>
<li>数据集:CelebA-HQ(默认)、VGGFACE(额外验证);</li>
<li>基础模型:Stable Diffusion v1.5、Stable Diffusion v2.1;</li>
<li>扰动预算:<span class="math inline">\(\varepsilon_{\infty}=0.05\)</span>(默认)、<span class="math inline">\(\varepsilon_{\infty}=8/255\)</span>(更严格约束,额外验证);</li>
<li>优化器:<span class="math inline">\(\ell_{\infty}\)</span>-PGD₁₀₀₀;</li>
<li>评估指标:FDS(语义相似度)、FID(分布差异)、IQS(图像质量)、BRISQUE(无参考质量)。</li>
</ul>
</li>
</ol>
<h4 id="算法对比实验">算法对比实验</h4>
<ol>
<li>baseline
<ul>
<li>AdvDM:基于对抗样本的防御;</li>
<li>FSGM:快速梯度符号攻击防御;</li>
<li>ASPL:双层优化生成不可学习样本。</li>
</ul>
</li>
<li>对比维度
<ul>
<li>防御效果:相同配置下4项指标的优劣;</li>
<li>计算成本:GPU显存占用(PID约5G,对比算法约24G)。</li>
</ul>
</li>
</ol>
<h4 id="融合现有防御实验">融合现有防御实验</h4>
<ol>
<li><strong>融合方式</strong>:加权联合优化(<span class="math inline">\(L_{combo}=T(\theta,c,x)+\lambda L_{add-log}\)</span>)
<ul>
<li>核心参数:权衡系数 <span class="math inline">\(\lambda=0.05\)</span>;</li>
<li>融合对象:FSGM、ASPL(两类典型提示词依赖防御)。</li>
</ul>
</li>
<li><strong>实验条件</strong>:仅在 <span class="math inline">\(c_{prot}≠c_{explo}\)</span> 场景下验证,对比融合前后防御的鲁棒性提升。</li>
</ol>
<h4 id="跨模型迁移性实验">跨模型迁移性实验</h4>
<ol>
<li><strong>迁移场景</strong>:保护阶段与攻击阶段使用不同版本Stable Diffusion模型
<ul>
<li>迁移方向1:源模型SD v2.1 → 目标模型SD v1.5;</li>
<li>迁移方向2:源模型SD v1.5 → 目标模型SD v2.1。</li>
</ul>
</li>
<li><strong>约束条件</strong>:微调时冻结文本编码器,仅关注模型差异对防御效果的影响。</li>
</ol>
<h4 id="对抗自适应攻击实验">对抗自适应攻击实验</h4>
<ol>
<li><strong>自适应攻击类型</strong>(针对PID操纵潜均值/方差的核心机制设计):
<ul>
<li>Zero σ:将扰动图像的潜方差固定为0,抵消方差扰动效果;</li>
<li>Clipped σ:裁剪潜方差至正常范围,削弱方差扰动;</li>
<li>Fixed σ:将潜方差固定为 <span class="math inline">\(10^{-7}\)</span>(正常量级),规避方差干扰。</li>
</ul>
</li>
<li><strong>实验配置</strong>:基于SD v1.5模型,分别在冻结/不冻结文本编码器条件下验证。</li>
</ol>
<h4 id="抗数据损坏实验">抗数据损坏实验</h4>
<ol>
<li><strong>数据损坏类型</strong>(模拟实际场景中图像可能遭遇的干扰):
<ul>
<li>随机缩放与裁剪(Cropping);</li>
<li>均匀噪声平滑(Smoothing);</li>
<li>图像去噪(Denoising,采用Gaussian denoiser);</li>
<li>JPEG压缩(Compression)。</li>
</ul>
</li>
<li><strong>约束条件</strong>:基于SD v1.5模型,冻结文本编码器,仅在 <span class="math inline">\(c_{prot}=c_{explo}\)</span> 场景下验证。</li>
</ol>
<h4 id="额外适配实验">额外适配实验</h4>
<ol>
<li><strong>不同微调算法</strong>:使用LoRA(低秩适配)替代DreamBooth,在CelebA-HQ数据集上验证PID效果;</li>
<li><strong>不同数据集</strong>:在VGGFACE数据集(人脸跨姿态/年龄场景)上重复核心实验,验证数据集泛化性。</li>
</ol>
<h2 id="fit-the-distribution-cross-imageprompt-adversarial-attacks-on-multimodal-large-language-models">Fit the Distribution: Cross-Image/Prompt Adversarial Attacks on Multimodal Large Language Models</h2>
<p>最近的研究已经证明MLLM容易受到对抗性示例的影响,这些示例涉及向图像输入添加微妙但不可见的扰动。这些扰动可以引导MLLM产生有害响应,从而带来关键的安全问题。<br>
大多数现有的攻击通常通过良性提示来优化对抗图像扰动,以对抗MLLM的推理能力,从而产生错误或越狱响应。但它们需要在训练中枚举可能的提示或图像,并且要求测试提示/图像与训练时的完全一致。一旦处理未见过的测试样本,它们的扰动就不可避免地会失效。</p>
<p>动机:若对抗扰动是针对真实世界的图像 - 提示输入分布优化的,而非单个样本 / 固定数据集,那么该扰动对来自该分布的未知图像 - 提示对仍能保持对抗有效性。</p>
<blockquote>
<p>利用拉普拉斯逼近将复杂的图像、提示真实分布建模为高斯分布(适用于大样本量的 MLLM 输入符合中心极限定理);<br>
结合蒙特卡洛采样从建模的高斯分布中抽取图像 - 提示对,优化得到与输入无关的通用扰动,实现跨图像 / 提示的迁移攻击。</p>
</blockquote>
<h3 id="method-1">Method</h3>
<h4 id="预备知识">预备知识</h4>
<p>多模态大语言模型(MLLMs):MLLM旨在根据包含图像v和文本提示t的多模态输入生成合理的文本答案y,如<span class="math inline">\(y=M L L M(v, t)\)</span>所示。</p>
<p>威胁模型:重点关注白盒场景</p>
<p>攻击者的目标:攻击者试图利用一种常见的对抗性扰动δ,该扰动受较小的范数约束限制,以确保噪声修改在人类观察者眼中不可察觉,同时满足对抗条件。攻击目标是量化由受扰动输入生成的答案中的误差,其可表示为:</p>
<p></p><div class="math display">\[\delta ^{*}=\left\{ \begin{array} {ll}{arg \operatorname* {max}_{\| \delta \| \leq \eta } \mathcal {D}\Big (MLLM(v+\delta ,t),y_{gt}\Big ),}&amp;{if Untargeted Attack, }\\ {arg \operatorname* {min}_{\| \delta \| \leq \eta } \mathcal {D}\Big (MLLM(v+\delta ,t), y_{tar}\Big ),}&amp;{if Targeted Attack, }\end{array} \right.
\]</div><p></p><p>其中,<span class="math inline">\(D(\cdot)\)</span>是交叉熵损失函数,用于描述函数两个输入之间的差异,<span class="math inline">\(y_{g t}\)</span>和<span class="math inline">\(ytar\)</span>分别是真实答案和攻击者的目标答案。在本节中,我们以具有挑战性的目标对抗攻击为例进行说明。</p>
<h4 id="概述">概述</h4>
<p><img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170345999-731652395.png" class="lazyload"></p>
<p>整体流程</p>
<ol>
<li>图像分布逼近:我们首先利用拉普拉斯逼近将多样化的图像建模为高斯分布。为了估计分布参数,我们通过对采样图像求平均来计算均值参数,并通过应用海森矩阵来计算其协方差。</li>
<li>提示词分布逼近:同样地,我们使用拉普拉斯逼近来将提示词的分布逼近为高斯分布。我们确定一个具有代表性的提示词(例如最能描述给定图像或指定相关任务的提示词)作为均值参数。从随机初始化的提示词开始,我们利用海森矩阵计算高斯分布的方差。</li>
<li>分布驱动的扰动优化:为了获得与图像/提示词无关的扰动,我们采用蒙特卡洛机制对前几步得到的图像和提示词分布进行采样,然后对这些采样结果优化扰动以达到对抗效果。最终,我们可以得到一个适用于符合该分布的已见和未见图像及提示词的通用扰动。</li>
</ol>
<h5 id="如何表示多模态大语言模型输入的图像-提示分布">如何表示多模态大语言模型输入的图像-提示分布?</h5>
<p>具体而言,与图像无关的提示和与图像相关的提示分别围绕着与特定任务语义先验和图像引导语义内容对齐的极值点。同时,图像的像素强度也常常在均值周围表现出具有对称偏差的集中趋势,特别是在归一化或变换之后。这一假设使得能够对图像和提示进行有效的概率建模,从而得到高斯分布。因此,对于提示分布,大量不同的提示t趋近于高斯分布,如下所示:</p>
<p></p><div class="math display">\[t \sim \mathcal{N}\left(\mu_{t}, \frac{\sum_{t}}{N}\right), p(t)=\frac{N^{d / 2}}{(2 \pi)^{d / 2}\left|\sum_{t}\right|^{1 / 2}} exp \left(-\frac{N}{2}\left(t-\mu_{t}\right)^{T} \sum_{t}^{-1}\left(t-\mu_{t}\right)\right),
\]</div><p></p><p>其中,<span class="math inline">\(\mu_{t}\)</span>表示提示分布的均值参数,N是样本数量,<span class="math inline">\(\sum _{t}=Cov(t)\)</span>表示协方差矩阵,<span class="math inline">\(p(t)\)</span>是t的概率密度函数。同样,对于图像分布,图像样本v收敛于高斯分布<span class="math inline">\(v ~ N(\mu_{v}, \frac{\sum _{v}}{N})\)</span>,其均值参数为<span class="math inline">\(\mu_{v}\)</span>,协方差矩阵为<span class="math inline">\(\sum _{v}=Cov(v)\)</span>。在此,参数<span class="math inline">\(\mu_{t}\)</span>、<span class="math inline">\(\mu_{v}\)</span>以及<span class="math inline">\(\sum _{t}\)</span>、<span class="math inline">\(\sum _{v}\)</span>都需要为分布近似进行计算。</p>
<h5 id="如何近似分布">如何近似分布</h5>
<p>作者利用拉普拉斯近似,通过估计众数(mode)和海森矩阵(Hessian matrix)来确定高斯分布的参数(均值和协方差)。</p>
<ul>
<li>
<p><strong>基本原理</strong>:在众数处对后验概率的对数进行二阶泰勒展开。由于一阶导数在极值点为 0,分布主要由二阶导数(海森矩阵)决定。</p>
<ul>
<li>近似公式:<span class="math inline">\(p(x) \propto \exp(-\frac{1}{2}(x - x_{mode})^T H (x - x_{mode}))\)</span></li>
<li>这意味着协方差矩阵 <span class="math inline">\(\Sigma\)</span> 近似为海森矩阵的逆:<span class="math inline">\(\Sigma \approx H^{-1}\)</span>。</li>
</ul>
</li>
<li>
<p><strong>提示词分布近似 (Prompt Distribution)</strong>:</p>
<ul>
<li><strong>均值 (<span class="math inline">\(\mu_t\)</span>)</strong>:定义为后验概率最大的提示词 <span class="math inline">\(t_v\)</span>(即众数)。对于对称单峰分布,均值等于众数。</li>
<li><strong>协方差 (<span class="math inline">\(\Sigma_t\)</span>)</strong>:通过计算损失函数在 <span class="math inline">\(t_v\)</span> 处的海森矩阵的逆来获得,反映了提示词空间的局部曲率。</li>
<li><strong>处理策略</strong>:针对“与图像无关”和“与图像相关”的提示词分别建模,然后合并为一个联合高斯分布。</li>
</ul>
</li>
<li>
<p><strong>图像分布近似 (Image Distribution)</strong>:</p>
<ul>
<li>原理同上,将图像输入 <span class="math inline">\(v\)</span> 近似为 <span class="math inline">\(v \sim N(\hat{v}, H_v^{-1})\)</span>。</li>
<li>图像的均值 <span class="math inline">\(\hat{v}\)</span> 通常取数据集中图像样本的平均值。</li>
</ul>
</li>
</ul>
<blockquote>
<h5 id="参数计算方法">参数计算方法</h5>
<p>为了在实际操作中计算上述参数,作者提出了具体的算法:</p>
<ul>
<li>
<p><strong>提示词均值 (<span class="math inline">\(t_v\)</span>) 的计算</strong>:</p>
<ul>
<li>转化为优化问题:寻找一个提示词 <span class="math inline">\(t\)</span>,使得 MLLM 的输出最接近包含图像主要信息的预期响应 <span class="math inline">\(y_{exp}\)</span>。</li>
<li>优化目标:<span class="math inline">\(\min_t \| \text{MLLM}(v, t) - y_{exp} \|^2\)</span>。</li>
<li>求解方法:使用动量梯度下降法 (Momentum Gradient Descent) 进行迭代更新,以避免陷入局部最优。</li>
</ul>
</li>
<li>
<p><strong>提示词协方差 (<span class="math inline">\(H_t^{-1}\)</span>) 的计算</strong>:</p>
<ul>
<li>为了简化高维空间中海森矩阵的计算,作者采用了一种简化的估计方法,基于初始提示词 <span class="math inline">\(t_0\)</span> 和优化后的 <span class="math inline">\(t_v\)</span> 之间的损失差值和距离:</li>
</ul>
<p></p><div class="math display">\[H_t^{-1} = \frac{\|t_0 - t_v\|^2}{2 \cdot (L(v, t_0) - L(v, t_v))}
\]</div><p></p><ul>
<li>这假设了在极值点附近损失曲面是各向同性的。</li>
</ul>
</li>
<li>
<p><strong>图像均值 (<span class="math inline">\(\hat{v}\)</span>) 和协方差 (<span class="math inline">\(H_v^{-1}\)</span>) 的计算</strong>:</p>
<ul>
<li><strong>均值</strong>:直接对一系列图像样本求平均:<span class="math inline">\(\hat{v} = \sum v_i / N\)</span>。</li>
<li><strong>协方差</strong>:使用样本协方差矩阵的缩放版本来估计:<span class="math inline">\(H_v^{-1} = \frac{1}{N} \Sigma_v\)</span>,其中 <span class="math inline">\(\Sigma_v\)</span> 是图像特征的标准协方差矩阵。</li>
</ul>
</li>
</ul>
</blockquote>
<p><img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170346323-1613878478.png" class="lazyload"></p>
<ul>
<li><strong>Require (输入)</strong>:
<ul>
<li><code>images v, prompt t</code>: 初始的图像和提示词样本。</li>
<li><code>epoch numbers M, N</code>: 外层循环次数 <code>M</code> 和内层循环次数 <code>N</code>。</li>
<li><code>hyperparameters α, r, β, budget η</code>: 超参数,分别控制扰动更新步长、提示词更新步长、动量系数和扰动大小上限。</li>
<li><code>loss function L(v,t) ... D(v,t)</code>: 两个损失函数。<code>L</code> 用于优化提示词分布,<code>D</code> 用于优化对抗扰动。</li>
</ul>
</li>
<li><strong>Ensure (输出)</strong>:
<ul>
<li><code>Perturbation δ</code>: 最终生成的、可以迁移的通用对抗扰动。</li>
</ul>
</li>
</ul>
<pre><code>Initialize t₀ = t, v₀ = v, m₀ = 0;
</code></pre>
<p><strong>外层循环 (For i = 0 to M - 1)</strong><br>
这个循环的主要目的是在每一轮迭代中,从图像和提示词分布中进行采样,以获得多样化的训练样本,从而优化出更通用的扰动 <code>δ</code>。</p>
<ol>
<li>
<p><strong>图像分布建模与采样</strong>:</p>
<pre><code>Compute v̂, Hᵥ⁻¹, sample vᵢ ~ N(v̂, Hᵥ⁻¹);
</code></pre>
<ul>
<li><strong>计算</strong>: 根据当前批次或数据集,计算图像分布的均值 <code>v̂</code> 和协方差 <code>Hᵥ⁻¹</code> (基于样本协方差估计)。</li>
<li><strong>采样</strong>: 从得到的高斯分布 <span class="math inline">\(N(\hat{v}, H_v^{-1})\)</span> 中采样出一个新的图像样本 <span class="math inline">\(v_i\)</span>。这使得算法不再局限于原始图像 <code>v</code>,而是能探索其周围的“合理”图像空间。</li>
</ul>
</li>
<li>
<p><strong>内层循环 (For j = 0 to N - 1)</strong><br>
这个循环的目的是<strong>为当前采样的图像 <span class="math inline">\(v_i\)</span> 找到一个最优的提示词 <span class="math inline">\(t_v\)</span></strong>,并以此为中心建立提示词的分布。</p>
<ul>
<li>
<p><strong>计算提示词梯度</strong>:</p>
<pre><code>Compute gradient gₜ = ∇ₜL(vᵢ, tⱼ);
</code></pre>
<p>计算损失函数 <code>L</code> 关于当前提示词 <span class="math inline">\(t_j\)</span> 的梯度。<code>L</code> 的目标是让模型对 <span class="math inline">\((v_i, t_j)\)</span> 的输出接近某个期望的正确输出 <span class="math inline">\(y_{exp}\)</span>。</p>
</li>
<li>
<p><strong>动量更新</strong>:</p>
<pre><code>Compute momentum mⱼ₊₁ = βmⱼ + (1 - β)gₜ;
</code></pre>
</li>
<li>
<p><strong>更新提示词</strong>:</p>
<pre><code>Update tⱼ₊₁ = tⱼ - r ⋅ mⱼ, and obtain tᵥ;
</code></pre>
<p>使用学习率 <code>r</code> 和计算出的动量 <code>m_j</code> 来更新提示词。经过 <code>N</code> 次迭代后,最终得到的提示词就是 <span class="math inline">\(t_v\)</span>,它被视为当前图像 <span class="math inline">\(v_i\)</span> 下最优提示词的众数(mode),即提示词分布的均值。</p>
</li>
<li>
<p><strong>估算提示词协方差</strong>:</p>
<pre><code>Compute Hₜ⁻¹ = ||t₀ - tᵥ||₂² / (2 ⋅ (L(v,t₀) - L(v,tᵥ)));
</code></pre>
<p>这是海森矩阵逆的简化计算方法。它通过比较初始提示词 <span class="math inline">\(t_0\)</span> 和优化后的最优提示词 <span class="math inline">\(t_v\)</span> 之间的距离和损失差值,来估算损失曲面在 <span class="math inline">\(t_v\)</span> 处的曲率,进而得到提示词分布的协方差 <span class="math inline">\(H_t^{-1}\)</span>。</p>
</li>
</ul>
</li>
<li>
<p><strong>提示词分布采样</strong>:</p>
<pre><code>Sample tᵢ ~ N(tᵥᵢ, Hₜᵢ⁻¹);
</code></pre>
<p>在内层循环结束后,我们得到了一个以 <span class="math inline">\(t_{v_i}\)</span> 为均值、<span class="math inline">\(H_{t_i}^{-1}\)</span> 为协方差的提示词高斯分布。现在,从这个分布中采样出一个新的提示词 <span class="math inline">\(t_i\)</span>。这一步实现了<strong>提示词空间的多样化</strong>。</p>
</li>
<li>
<p><strong>计算对抗扰动的梯度</strong>:</p>
<pre><code>Compute gradient gδᵢ = ∇δD(MLLM(vᵢ + δᵢ, t), y_tar);
</code></pre>
<ul>
<li>这是攻击的核心。我们将当前采样的图像 <span class="math inline">\(v_i\)</span> 加上当前的对抗扰动 <span class="math inline">\(\delta_i\)</span>,并与采样的提示词 <span class="math inline">\(t_i\)</span> 一起输入给多模态大语言模型(MLLM)。</li>
<li>计算损失函数 <code>D</code> 关于扰动 <span class="math inline">\(\delta\)</span> 的梯度。<code>D</code> 的目标是让模型的输出尽可能接近一个我们指定的错误目标 <span class="math inline">\(y_{tar}\)</span>。</li>
</ul>
</li>
<li>
<p><strong>更新对抗扰动</strong>:</p>
<pre><code>Update δᵢ₊₁ᵃᵈᵛ = clip_η(δᵢᵃᵛ - αsign gδᵢ);
</code></pre>
<ul>
<li>使用符号梯度下降法(Sign Gradient Descent)来更新扰动。<code>sign(gδᵢ)</code> 只取梯度的方向,这通常比直接使用梯度值更有效。</li>
<li><code>α</code> 是更新步长。</li>
<li><code>clipη(...)</code> 是一个裁剪操作,确保更新后的扰动 <span class="math inline">\(\delta_{i+1}^{adv}\)</span> 的每个像素值的变化幅度不超过预设的预算 <code>η</code>(例如,在 <span class="math inline">\([-\eta, \eta]\)</span> 范围内),以保证扰动的隐蔽性。</li>
</ul>
</li>
</ol>
<p><strong>总结</strong></p>
<p>在每一次迭代中,算法都会:</p>
<ol>
<li>采样一个新的图像 <span class="math inline">\(v_i\)</span>。</li>
<li>为该图像找到一个最优提示词 <span class="math inline">\(t_{v_i}\)</span> 并构建其分布。</li>
<li>从该分布中采样一个新的提示词 <span class="math inline">\(t_i\)</span>。</li>
<li>利用这个多样化的样本对 <span class="math inline">\((v_i, t_i)\)</span> 来计算梯度,并更新通用扰动 <span class="math inline">\(\delta\)</span>。</li>
</ol>
<h3 id="experiments">Experiments</h3>
<p><strong>模型与数据集</strong></p>
<ul>
<li><strong>目标模型</strong>:选取了三种具有代表性的多模态大语言模型(MLLMs),涵盖不同架构和规模:
<ul>
<li><strong>LLaVA-1.5-7B</strong></li>
<li><strong>BLIP-2 OPT-2.7B</strong></li>
<li><strong>MiniGPT-4</strong></li>
</ul>
</li>
<li><strong>数据集</strong>:
<ul>
<li><strong>图像来源</strong>:和 DALLE-3 和 MS-COCO(用于迁移测试) 数据集。</li>
<li><strong>提示词来源</strong>:覆盖三类任务——视觉问答 (VQA)、图像分类 (Image Classification) 和 图像描述 (Image Captioning)。</li>
</ul>
</li>
</ul>
<p><strong>实验设置与参数</strong></p>
<ul>
<li><strong>攻击目标</strong>:所有实验统一将目标回答设定为 "I am sorry."</li>
<li><strong>超参数</strong>:
<ul>
<li>分布计算系数:动量 <span class="math inline">\(\beta=0.9\)</span>,学习率 <span class="math inline">\(r=0.001\)</span>。</li>
<li>扰动优化:迭代步数 300步,扰动预算 <span class="math inline">\(\eta = 16/255\)</span>,更新步长 <span class="math inline">\(\alpha = 1/255\)</span>。</li>
</ul>
</li>
<li><strong>跨样本评估场景</strong>:为了测试泛化性,设置了三种严格的交叉测试环境:
<ol>
<li><strong>Cross-Prompt</strong>:每张图像对应 <strong>30个</strong> 不同的随机提示词。</li>
<li><strong>Cross-Image</strong>:每个提示词对应 <strong>50张</strong> 不同的随机图像。</li>
<li><strong>Cross-Image/Prompt</strong>:同时随机采样 <strong>30张图像</strong> 和 <strong>30个提示词</strong> 进行组合测试。</li>
</ol>
</li>
</ul>
<p><strong>评估指标 (Evaluation Metrics)</strong><br>
采用三个维度量化攻击效果(数值越高表示攻击越成功):</p>
<ul>
<li><strong>EM-ASR (Exact Match ASR)</strong>:精确匹配攻击成功率(输出与目标文本完全一致)。</li>
<li><strong>CM-ASR (Contain Match ASR)</strong>:包含匹配攻击成功率(输出包含目标文本)。</li>
<li><strong>Semantic Similarity</strong>:语义相似度(使用 <code>all-MiniLM-L6-v2</code> 模型计算输出嵌入与目标文本的余弦相似度)。</li>
</ul>
<p><strong>主实验:攻击性能对比</strong><br>
这是最核心的实验,旨在证明该方法优于现有的基线方法。</p>
<ul>
<li><strong>对比对象</strong>:与 PGD(单样本攻击)、CroPA(跨提示词攻击)、UniAtt(通用攻击)、Doubly-UAP 等基线方法进行对比。</li>
<li><strong>测试场景</strong>:在三种严格的<strong>跨样本设置</strong>下进行评估:
<ul>
<li><strong>Cross-Prompt</strong>:固定图像,测试扰动对30个不同随机提示词的欺骗能力。</li>
<li><strong>Cross-Image</strong>:固定提示词,测试扰动对50张不同随机图像的欺骗能力。</li>
<li><strong>Cross-Image/Prompt</strong>:同时随机组合30张图像和30个提示词,测试最极端情况下的通用性。</li>
</ul>
</li>
<li><strong>评估指标</strong>:使用 EM-ASR(精确匹配成功率)、CM-ASR(包含匹配成功率)和语义相似度来量化攻击效果。</li>
<li><strong>结论目标</strong>:证明该方法在所有场景下的攻击成功率(ASR)均显著高于基线。</li>
</ul>
<p><strong>跨模型迁移性实验</strong><br>
验证生成的对抗扰动是否具有“黑盒”攻击能力,即在一个模型上生成的扰动能否攻击其他未知的模型。</p>
<ul>
<li><strong>设置</strong>:在源模型(如 LLaVA-1.5)上生成扰动 <span class="math inline">\(\delta\)</span>,然后直接应用到目标模型(如 BLIP-2, MiniGPT-4, InstructBLIP)上进行测试。</li>
<li><strong>目的</strong>:证明该方法学习到的分布特征具有普适性,不仅仅过拟合了特定模型的参数。</li>
<li><strong>测试场景</strong>:
<ul>
<li><strong>Cross-Prompt</strong>:固定图像,测试扰动对30个不同随机提示词的欺骗能力。</li>
<li><strong>Cross-Image</strong>:固定提示词,测试扰动对50张不同随机图像的欺骗能力。</li>
<li><strong>Cross-Image/Prompt</strong>:同时随机组合30张图像和30个提示词,测试最极端情况下的通用性。</li>
</ul>
</li>
<li><strong>评估指标</strong>:与主实验相同,使用 EM-ASR、CM-ASR 和语义相似度来量化攻击效果。</li>
<li><strong>结论目标</strong>:证明该方法在所有场景下的攻击成功率(ASR)均显著高于基线。</li>
</ul>
<p><strong>消融实验</strong></p>
<ul>
<li><strong>分布建模的有效性</strong>:
<ul>
<li>对比“使用拉普拉斯近似建模分布”与“仅使用均值或固定方差”的效果。</li>
</ul>
</li>
<li><strong>采样数量的影响</strong>:
<ul>
<li>分析外层循环(图像采样数 <span class="math inline">\(M\)</span>)和内层循环(提示词采样数 <span class="math inline">\(N\)</span>)的变化对攻击成功率和计算成本的影响,寻找最佳平衡点。</li>
</ul>
</li>
<li><strong>超参数敏感性</strong>:
<ul>
<li>测试动量系数 <span class="math inline">\(\beta\)</span>、学习率 <span class="math inline">\(r\)</span>、扰动步长 <span class="math inline">\(\alpha\)</span> 等参数变化对最终效果的影响。</li>
</ul>
</li>
</ul>
<p><strong>效率与资源消耗分析</strong></p>
<ul>
<li><strong>时间成本</strong>:记录生成一个通用扰动所需的总GPU时间,并与基线方法对比。</li>
<li><strong>显存占用</strong>:统计训练过程中的峰值显存使用量(GB)。</li>
</ul>
<p><strong>鲁棒性防御测试</strong></p>
<ul>
<li><strong>防御手段</strong>:
<ul>
<li><strong>输入随机化</strong>:在输入模型前对图像进行随机缩放、填充或噪声添加。</li>
<li><strong>JPEG 压缩</strong>:对图像进行有损压缩以破坏高频扰动信号。</li>
<li><strong>平滑处理</strong>:使用高斯模糊等滤波操作。</li>
</ul>
</li>
</ul>
<p><strong>可视化与案例分析</strong></p>
<h2 id="prompt-agnostic-adversarial-perturbation-for-customized-diffusion-models">Prompt-Agnostic Adversarial Perturbation for Customized Diffusion Models</h2>
<table>
<thead>
<tr>
<th style="text-align: left">维度</th>
<th style="text-align: left">Fit the Distribution</th>
<th style="text-align: left">Prompt-Agnostic Adversarial Perturbation (PAP)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">角色定位</td>
<td style="text-align: left">攻击者 (Attacker)</td>
<td style="text-align: left">防御者 (Defender)</td>
</tr>
<tr>
<td style="text-align: left">核心目标</td>
<td style="text-align: left">破坏模型功能。让多模态大语言模型(MLLM)在面对任意图像和提示词时,输出特定的错误答案(如 "I am sorry"),导致模型失效或拒绝服务。</td>
<td style="text-align: left">保护数据隐私/版权。防止扩散模型(Diffusion Models)利用用户的图像生成伪造内容(如换脸)或模仿艺术风格。</td>
</tr>
<tr>
<td style="text-align: left">任务类型</td>
<td style="text-align: left">有目标攻击 (Targeted Attack):强制模型输出特定文本。</td>
<td style="text-align: left">无目标/破坏性防御 (Untargeted/Disruptive Defense):让生成的图像质量下降、语义偏离或风格无法模仿。</td>
</tr>
<tr>
<td style="text-align: left">针对模型</td>
<td style="text-align: left">多模态大语言模型 (MLLMs)<br>(如 LLaVA, BLIP-2, MiniGPT-4),主要处理“图+文$ \to $文”的任务。</td>
<td style="text-align: left">定制化文本生成图像模型 (Customized Diffusion Models)<br>(如 DreamBooth, LoRA, Textual Inversion),主要处理“图+文$ \to $图”的任务。</td>
</tr>
</tbody>
</table>
<p>基于提示词的扩散模型的图像生成目标可写为:</p>
<p></p><div class="math display">\[min _{\theta} L_{cond }\left(x_{0}, c ; \theta\right)=E_{t, \epsilon \sim \mathcal{N}(0,1)} L\left(x_{0}, \epsilon, t, c ; \theta\right),
\]</div><p></p><p>其中<span class="math inline">\(L(x_{0}, \epsilon, t, c ; \theta)=\left\|\epsilon-\epsilon_{\theta}(x_{t}, t, c)\right\|_{2}^{2} .\)</span></p>
<p>特定提示扰动通常预先定义一个定制文本提示<span class="math inline">\(c_{0}\)</span>,然后优化对抗性扰动δ,以最大化在给定<span class="math inline">\(c_{0}\)</span>情况下的图像生成损失函数,其可表示为:</p>
<p></p><div class="math display">\[\delta^{*}=arg max _{\delta} L_{cond }\left(x_{0}+\delta, c_{0} ; \theta\right), s.t. \quad|\delta|_{p} \leq \eta, (3)
\]</div><p></p><p>其中,<span class="math inline">\(L_{cond }\)</span>是根据公式(2)计算的。通过将得到的<span class="math inline">\(\delta^{*}\)</span>添加到<span class="math inline">\(x_{0}\)</span>中,扩散模型无法使用提示<span class="math inline">\(c_{0}\)</span>生成高质量图像。</p>
<p>在提示分布建模方面,我们将保护图像<span class="math inline">\(x_{0}\)</span>作为输入,并假设攻击者提示c与<span class="math inline">\(x_{0}\)</span>、<span class="math inline">\(i.e.\)</span>之间存在概率-距离相关性,即c与<span class="math inline">\(x_{0}\)</span>的距离越远,c在分布中的概率就越低,反之亦然。由于依赖于<span class="math inline">\(x_{0}\)</span>的分布尚不明确,因此我们在建模中引入了一个辅助文本提示<span class="math inline">\(c_{0}\)</span>,其大致描述了<span class="math inline">\(x_{0}\)</span>。基于此基础,我们在嵌入空间中对提示分布进行建模。目标可以表述为:</p>
<p></p><div class="math display">\[\begin{aligned} \delta^{*} &amp; \left.=arg max _{\delta} E_{c \sim Q_{\left(x_{0}, c_{0}\right)}} L_{c o n d}\left(x_{0}+\delta, c_{0} ; \theta\right)\right] \\ &amp; =arg max _{\delta} \int p\left(c | x_{0}, c_{0}\right) \cdot L_{c o n d}\left(x_{0}+\delta, c_{0} ; \theta\right) d c, s.t. \quad|\delta|_{p} \leq \eta, \end{aligned}
\]</div><p></p><p>记<span class="math inline">\(g(c):=p(x_{0}, c_{0} | c) \cdot p(c)\)</span>、<span class="math inline">\(c_{x}:=\arg max _{c} g(c)\)</span>和<span class="math inline">\(H:=-\nabla \nabla_{c} log g(c)|_{c_{x}}\)</span>。<span class="math inline">\(c_{x}\)</span>被定义为使<span class="math inline">\(x_{0}\)</span>和<span class="math inline">\(c_{0}\)</span>的联合概率最大化的文本特征。拉普拉斯建模推导出:</p>
<p></p><div class="math display">\[p\left(c | x_{0}, c_{0}\right) \propto exp \left(-\frac{1}{2}\left(c-c_{x}\right) H\left(c-c_{x}\right)^{T}\right),
\]</div><p></p><p></p><div class="math display">\[Q_{\left(x_{0}, c_{0}\right)}(c) \sim \mathcal{N}\left(c_{x}, H^{-1}\right) . (8)
\]</div><p></p><p>其中,<span class="math inline">\(p(c | x_{0}, c_{0})\)</span>用于表示给定输入时<span class="math inline">\(Q_{(x_{0}, c_{0})}\)</span>的概率分布。为了从全局角度优化式(4),我们在3.4节设计了一种策略,该策略对包括<span class="math inline">\(\hat{Q}_{(x_{0}, c_{0})}\)</span>在内的所有输入分布进行蒙特卡洛采样,以最大化扰动期望。</p>
<p><img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170346607-929456648.png" class="lazyload"></p>
<pre><code class="language-py">for j = 0 to N-1 do
    Sample t_c ~ U(0, T)                        # 随机采样一个扩散时间步
    Compute gradient g_c = ∇_{c_j} L(x_i, ε_c, t_c, c_j; θ)   # 对当前提示词求梯度
    Compute momentum m_{j+1} = β*m_j + (1−β)*g_c            # 动量加速收敛
    Update c_{j+1} = c_j − r * m_j                            # 更新提示词嵌入
end for
for i = 0 to M-1 do
    Sample ε ~ N(0, I), t ∈ U(0, T)                     # 采样噪声和时间步
    Sample c ~ N(c_N, Σ)                              # 从以 c_N 为中心的高斯分布中采样提示词
      where Σ = ||c₀ - cₓ||² / · I   # 方差由损失差决定(拉普拉斯近似)
    Compute gradient g_x = ∇_{x_i} L(x_i, ε, t, c; θ)   # 对图像求梯度
    Update x_{i+1} = clip_{x₀,η}(x_i + α · sgn(g_x))      # PGD-style 更新 + 截断
end for
</code></pre>
<h3 id="实验-1">实验</h3>
<ul>
<li><strong>基准模型 (Base Models)</strong>: 使用 <strong>Stable Diffusion v1.4/v1.5</strong> 作为基础扩散模型。</li>
<li><strong>定制化方法 (Customization Methods)</strong>: 测试了三种主流的微调/定制化技术:
<ul>
<li><strong>DreamBooth</strong></li>
<li><strong>LoRA</strong></li>
<li><strong>Textual Inversion</strong></li>
</ul>
</li>
<li><strong>数据集 (Datasets)</strong>:
<ul>
<li><strong>人脸</strong>: CelebA-HQ, FFHQ (用于隐私保护测试)。</li>
<li><strong>物体/风格</strong>: ImageNet 子集, WikiArt (用于版权/风格保护测试)。</li>
</ul>
</li>
<li><strong>对比基线 (Baselines)</strong>: 与当前最先进的防御方法对比,包括 <strong>Glaze</strong>, <strong>Anti-DreamBooth</strong>, <strong>Mist</strong>, <strong>PhotoGuard</strong> 等。</li>
<li><strong>攻击者设定</strong>: 假设攻击者拥有白盒或黑盒访问权限,并尝试使用各种提示词(包括训练时未见过的提示词)来生成图像。</li>
</ul>
<h4 id="评估指标-2">评估指标</h4>
<ul>
<li><strong>防御效果 (Defense Effectiveness)</strong>:
<ul>
<li><strong>CLIP-I (Image Similarity)</strong>: 生成图像与原始图像的相似度。<strong>越低越好</strong>(说明没还原出原图)。</li>
<li><strong>FID (Fréchet Inception Distance)</strong>: 生成图像分布与真实分布的距离。<strong>越高越好</strong>(说明生成质量差,不像真图)。</li>
<li><strong>LPIPS (Perceptual Similarity)</strong>: 感知差异。<strong>越高越好</strong>。</li>
<li><strong>Face Recognition Accuracy (针对人脸)</strong>: 使用 ArcFace 等模型检测生成图中是否还能识别出原主人。<strong>越低越好</strong>。</li>
</ul>
</li>
<li><strong>视觉隐蔽性 (Visual Imperceptibility)</strong>:
<ul>
<li><strong>PSNR / SSIM</strong>: 衡量扰动后的图像与原图的差异。<strong>越高越好</strong>(说明人眼看不出区别)。</li>
<li><strong><span class="math inline">\(\ell_\infty\)</span> Norm</strong>: 扰动的最大像素变化值(通常限制在 8/255 或 16/255 以内)。</li>
</ul>
</li>
<li><strong>泛化能力 (Generalization)</strong>:
<ul>
<li><strong>Cross-Prompt Performance</strong>: 在训练时未使用的提示词(Unseen Prompts)上的防御效果。</li>
</ul>
</li>
</ul>
<h4 id="主要实验内容">主要实验内容</h4>
<h5 id="a-防御有效性对比">A. 防御有效性对比</h5>
<ul>
<li><strong>做法</strong>: 对同一组图像分别施加 PAP 和其他基线方法的扰动,然后让攻击者使用 DreamBooth/LoRA 进行微调,并用一组标准提示词生成图像。</li>
<li><strong>结果</strong>: PAP 在 CLIP-I 和人脸识别准确率上显著优于基线,生成的图像要么完全不像原主,要么结构崩坏。</li>
</ul>
<h5 id="b-提示词不可知性测试">B. 提示词不可知性测试</h5>
<ul>
<li><strong>做法</strong>:
<ol>
<li><strong>Seen Prompts</strong>: 使用防御过程中参考的提示词进行攻击。</li>
<li><strong>Unseen Prompts</strong>: 构造大量<strong>全新</strong>的提示词(改变句式、风格描述、背景描述,如从 "a photo of sks" 变为 "a cyberpunk portrait of sks in rain")。</li>
</ol>
</li>
<li><strong>目的</strong>: 验证算法是否真的建模了分布,而不是过拟合了特定提示词。</li>
<li><strong>结果</strong>: 即使提示词完全没见过,PAP 依然保持高防御率,而 Glaze 等方法在未见提示词下效果大幅下降。</li>
</ul>
<h5 id="c-跨定制化方法迁移">C. 跨定制化方法迁移</h5>
<ul>
<li><strong>做法</strong>: 用针对 DreamBooth 优化的扰动,去防御 LoRA 或 Textual Inversion 的攻击(反之亦然)。</li>
<li><strong>结果</strong>: 证明了扰动具有跨架构的通用性,因为不同微调方法共享相同的底层扩散模型特性。</li>
</ul>
<h5 id="d-鲁棒性测试">D. 鲁棒性测试</h5>
<ul>
<li><strong>做法</strong>: 对加了扰动的图像进行常见的预处理操作,看防御是否失效:
<ul>
<li><strong>JPEG 压缩</strong> (不同质量因子)</li>
<li><strong>高斯模糊</strong></li>
<li><strong>添加噪声</strong></li>
<li><strong>裁剪与缩放</strong></li>
</ul>
</li>
<li><strong>结果</strong>: PAP 表现出较强的鲁棒性,即便经过压缩,防御效果仍优于基线。</li>
</ul>
<h5 id="e-消融实验">E. 消融实验</h5>
<ul>
<li><strong>验证组件贡献</strong>:
<ul>
<li><strong>移除拉普拉斯近似</strong>: 退化为单点优化,观察泛化能力下降程度。</li>
<li><strong>改变采样次数 (<span class="math inline">\(M, N\)</span>)</strong>: 分析计算成本与效果的平衡。</li>
<li><strong>固定方差 vs 动态方差</strong>: 证明动态计算 <span class="math inline">\(\Sigma\)</span> 的必要性。</li>
</ul>
</li>
<li><strong>结论</strong>: 证实了“分布建模”和“两阶段优化”是提升泛化性的关键。</li>
</ul>
<h5 id="f-用户研究">F. 用户研究</h5>
<ul>
<li><strong>做法</strong>: 招募人类志愿者,让他们分辨哪些是原图,哪些是扰动图;或者对生成图像的质量打分。</li>
<li><strong>目的</strong>: 从主观角度验证扰动的<strong>不可见性</strong>和生成图像的<strong>破坏程度</strong>。</li>
</ul>
<h2 id="variance-as-a-catalyst-efficient-and-transferable-semantic-erasure-adversarial-attack-for-customized-diffusion-models">Variance as a Catalyst: Efficient and Transferable Semantic Erasure Adversarial Attack for Customized Diffusion Models</h2>
<p><img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170347405-1221656788.png" class="lazyload"></p>
<p>图1. 我们发现,变分自编码器(VAE)潜在编码中更大的方差能提高保护方法的有效性。像ASPL和Mist中那样较小的方差仍能保留身份语义,而像SimAC和PID中那样较大的方差则会去除大部分身份语义。我们提出的拉普拉斯损失(LA)和拉格朗日熵损失(LE)实现了更高的方差,生成了语义被完全抹去的纯噪声图像。</p>
<h3 id="method-2">Method</h3>
<h4 id="1-vae-编码器的深入分析-in-deep-analysis-of-vae-encoder">1. VAE 编码器的深入分析 (In-deep Analysis of VAE Encoder)</h4>
<ul>
<li>对抗攻击通常使用投影梯度下降(PGD),其更新方向由损失函数对扰动的梯度符号 <span class="math inline">\(sign(\frac{\partial L}{\partial \delta})\)</span> 决定。</li>
<li>通过链式法则分解,作者发现损失函数关于方差的梯度符号直接决定了扰动是否能有效增加方差。<p></p><div class="math display">\[\frac{\partial L}{\partial \delta} = \frac{\partial L}{\partial \sigma^2} \cdot \frac{\partial \sigma^2}{\partial \delta}
\]</div><p></p>其中各量的核心意义:</li>
</ul>
<ol>
<li><strong><span class="math inline">\(\boldsymbol{\delta}\)</span></strong>:像素空间的微小扰动(对抗攻击的操作对象),是我们能直接优化、更新的变量;</li>
<li><strong><span class="math inline">\(\boldsymbol{\frac{\partial \sigma^2}{\partial \delta}}\)</span></strong>:表示<strong>每改变一单位<span class="math inline">\(\delta\)</span>,会带来<span class="math inline">\(\sigma^2\)</span>怎样的变化</strong>,由VAE编码器的网络结构(雅可比矩阵<span class="math inline">\(J_f、J_g\)</span>)决定;</li>
<li><strong><span class="math inline">\(\boldsymbol{\frac{\partial \mathcal{L}}{\partial \sigma^2}}\)</span></strong>:表示<strong>为了最小化/最大化损失<span class="math inline">\(\mathcal{L}\)</span>,需要让<span class="math inline">\(\sigma^2\)</span>向哪个方向变化</strong>,由损失函数的设计决定;</li>
<li><strong><span class="math inline">\(\boldsymbol{\frac{\partial \mathcal{L}}{\partial \delta}}\)</span></strong>:<strong>损失对扰动的最终优化梯度</strong>,是更新<span class="math inline">\(\delta\)</span>的依据。</li>
</ol>
<blockquote>
<p>VAE编码器是非线性的,然而,当δ较小时,这种关系可以局部近似为线性。具体来说,对于小扰动<span class="math inline">\(\|\delta\|_{p} ≤\epsilon\)</span>,VAE编码器<span class="math inline">\(f(x)\)</span>在x处的一阶泰勒展开式为:</p>
<p></p><div class="math display">\[\phi =f(x^{\prime })=f(x+\delta )\approx f(x)+J_{f}\cdot \delta
\]</div><p></p><p>雅可比矩阵<span class="math inline">\(J_{f_{(i, k)}}\)</span>表示扰动矩阵δ中的第i个扰动分量与隐藏状态矩阵ϕ中的第k个隐藏状态分量之间的映射关系。类似地,从隐藏状态矩阵ϕ到方差矩阵<span class="math inline">\(\sigma^{2}\)</span>的映射由另一个神经网络控制。这种映射可以使用雅可比矩阵<span class="math inline">\(J_{g}\)</span>进行线性化,该矩阵量化了ϕ的第k个分量的变化如何影响第j个方差分量<span class="math inline">\(\sigma_{j}^{2}\)</span>。雅可比矩阵<span class="math inline">\(J_{g}\)</span>将这种关系表征如下:</p>
<p></p><div class="math display">\[\frac{\partial \sigma_{j}^{2}}{\partial \phi_{k}} \approx J_{g_{(k, j)}}^{\top}
\]</div><p></p><p>其中,<span class="math inline">\(J_{g_{(k, j)}}\)</span>量化了潜在空间中第k个隐藏状态<span class="math inline">\(\phi_{k}\)</span>对第j个方差分量<span class="math inline">\(\sigma_{j}^{2}\)</span>的影响。因此,<span class="math inline">\(\frac{\partial \sigma^{2}}{\partial \delta}\)</span>可以近似为两个雅可比矩阵的乘积:</p>
<p></p><div class="math display">\[M_{i, j}=\frac{\partial \sigma_{j}^{2}}{\partial \delta_{i}}=\sum_{k} J_{g_{(k, j)}}^{\top} \cdot J_{f_{(i, k)}}^{\top}
\]</div><p></p></blockquote>
<ul>
<li>要让<span class="math inline">\(\delta\)</span>的更新<strong>始终推动<span class="math inline">\(\sigma^2\)</span>增大</strong>,需保证:</li>
</ul>
<p></p><div class="math display">\[\boldsymbol{sign\left(\frac{\partial \mathcal{L}}{\partial \sigma^2}\right) = sign\left(\frac{\partial \sigma^2}{\partial \delta}\right)}
\]</div><p></p><h4 id="2-拉普拉斯损失-laplace-loss-la">2. 拉普拉斯损失 (Laplace Loss, LA)</h4>
<ul>
<li><strong>提出动机</strong>:为了确保每一步优化都能沿着方差增长最快的方向进行,实现局部最优。</li>
<li><strong>优势</strong>:该损失函数关于方差的梯度是一个恒定值。这意味着无论当前的方差分布如何,梯度的符号始终与方差增长方向一致,避免了因方差分布不均导致的优化方向错误。这使得每次PGD更新都是直接且有效的。</li>
</ul>
<p></p><div class="math display">\[\mathcal{L}_{Laplace }=\frac{\left|\sigma^{2}-\mu\right|}{b}
\]</div><p></p><p>其中μ是目标均值(通常为0),b是缩放因子(通常为1)。该损失函数对方差 <span class="math inline">\(\sigma^2\)</span> 的导数是常数 (<span class="math inline">\(\frac{1}{b}\)</span>)。<br>
无论方差分布如何,梯度的符号完全由 <span class="math inline">\(\frac{\partial \sigma^2}{\partial \delta}\)</span> 决定。这确保了每一步PGD更新都严格沿着方差增长最快的方向,实现了局部最优,避免了MSE的符号翻转问题。</p>
<h4 id="3-现有方法的局限性分析-limitations-of-prior-works">3. 现有方法的局限性分析 (Limitations of Prior Works)</h4>
<p>作者分析了两种主流的方差优化方法及其缺陷:</p>
<ul>
<li><strong>均方误差 (MSE) 损失</strong>(如 Mist 使用):
<ul>
<li><strong>问题</strong>:MSE 倾向于优先优化那些已经较大的方差分量,而忽略较小的分量。</li>
</ul>
</li>
</ul>
<p></p><div class="math display">\[\mathcal{L}_{M S E}=\sum_{j}\left(\sigma_{j}^{2}-\sigma_{clean }^{2}\right)^{2}
\]</div><p></p><p>其中,<span class="math inline">\(\sigma_{j}^{2}\)</span>是潜在空间中的第j个方差分量,<span class="math inline">\(\sigma_{clean }^{2}\)</span>表示干净潜在分布的方差。其相对于<span class="math inline">\(\sigma_{j}^{2}\)</span>的梯度为:</p>
<p></p><div class="math display">\[\frac{\partial \mathcal{L}_{M S E}}{\partial \sigma_{j}^{2}}=2\left(\sigma_{j}^{2}-\sigma_{clean }^{2}\right)
\]</div><p></p><ul>
<li><strong>PID 损失</strong>:
<ul>
<li><strong>改进</strong>:通过对数变换解决了梯度符号对齐问题,优先优化小方差分量。</li>
<li><strong>问题</strong>:梯度幅值与<span class="math inline">\(\sigma_j^2\)</span>成反比——随着<span class="math inline">\(\sigma^2\)</span>增大,<span class="math inline">\(\frac{\partial \mathcal{L}_{PID}}{\partial \sigma^2}\)</span>的幅值会<strong>持续衰减</strong>,即使符号对齐,<span class="math inline">\(\delta\)</span>的更新步长也会越来越小,<span class="math inline">\(\sigma^2\)</span>的增长速度大幅放缓。</li>
</ul>
</li>
</ul>
<p></p><div class="math display">\[\begin{aligned} \mathcal{L}_{P I D} &amp; =\sum_{j}\left(log \sigma_{j}^{2}-log \sigma_{clean }^{2}\right)^{2}, \\ \frac{\partial \mathcal{L}_{P I D}}{\partial \sigma_{j}^{2}} &amp; =\frac{2}{\sigma_{j}^{2}}\left(log \sigma_{j}^{2}-log \sigma_{clean }^{2}\right) . \end{aligned}
\]</div><p></p><h4 id="4-拉格朗日熵损失-lagrange-entropy-loss-le">4. 拉格朗日熵损失 (Lagrange-Entropy Loss, LE)</h4>
<p></p><div class="math display">\[\mathcal{L}_{L E}=-\sum_{j} \sigma_{j}^{2} log \left(\sigma_{j}^{2}\right)+\lambda\left(\sum_{j} \sigma_{j}^{2}-c\right)^{2}
\]</div><p></p><p>熵项促进小方差分量的增长,拉格朗日约束确保整体方差保持平衡。<span class="math inline">\(\lambda=0.1\)</span>控制这两项之间的权衡,<span class="math inline">\(c=1\)</span>设定目标方差。<span class="math inline">\(L_{LE}\)</span>相对于<span class="math inline">\(\sigma^{2}\)</span>的梯度表示为:</p>
<p></p><div class="math display">\[\frac{\partial \mathcal{L}_{L E}}{\partial \sigma_{j}^{2}}=-\left(log \left(\sigma_{j}^{2}\right)+1\right)+2 \lambda\left(\sum_{j} \sigma_{j}^{2}-c\right)
\]</div><p></p><p><img alt="alt text" loading="lazy" src="https://img2024.cnblogs.com/blog/3535675/202604/3535675-20260421170347770-393447954.png" class="lazyload"></p>
<h3 id="实验设置-3">实验设置</h3>
<ul>
<li><strong>数据集</strong>:CelebA-HQ 和 VGGFace2(各选50个身份,每个身份4张参考图)。</li>
<li><strong>基线模型</strong>:Stable Diffusion v1.5。</li>
<li><strong>攻击目标模型</strong>:DreamBooth, LoRA, Textual Inversion, IP-Adapter。</li>
<li><strong>迁移测试模型</strong>:SD2.1, SDXL, SD3.5, FLUX.1-dev。</li>
<li><strong>优化算法</strong>:PGD,扰动预算 <span class="math inline">\(\epsilon=0.05\)</span>,步长 <span class="math inline">\(\alpha=1/255\)</span>。</li>
<li><strong>评估指标</strong>:
<ul>
<li><strong>ISM</strong> (Identity Score Matching):越低越好(身份相似度)。</li>
<li><strong>FDFR</strong> (Face Detection Failure Rate):越高越好(人脸检测失败率)。</li>
<li><strong>Brisque &amp; LPIPS</strong>:越高越好(图像自然度越低,感知差异越大)。</li>
</ul>
</li>
</ul><br><br>
来源:https://www.cnblogs.com/dinosauria/p/19902643
頁: [1]
查看完整版本: 方差在扩散模型保护中的作用