
Ambient Diffusion是首个基于扩散模型的框架,可仅通过高度损坏的样本(如缺失 90% 像素的图像)学习干净数据的分布,其核心思路是在扩散过程中引入额外测量失真,要求模型从进一步损坏的图像中预测原始损坏图像,能避免生成模型记忆训练样本,在 CelebA、CIFAR-10、AFHQ 等基准数据集上表现优异,还可在单 GPU 上仅用数小时微调基础模型(如 Deepfloyd IF),适用于 MRI 扫描等小样本损坏数据集,同时在逆问题求解中仅需 1 步预测就可比肩需数百步的现有方法。
论文动机

这篇论文关注的是一个非常基础的需求,即在无法获取干净数据的场景(如长时MRI扫描、黑洞成像)中,如何仅用高度损坏的样本(如缺失90%像素的图像)训练生成模型,学习干净数据的真实分布。
现有方案的问题:
- 传统扩散模型:必须用干净数据训练------若直接用损坏数据训练,模型只会拟合可见像素,缺失像素随机填充(无法学习干净数据的全局结构);
- 修复类模型(如Noise2Noise):仅能从损坏样本恢复对应干净样本,无法采样干净数据的分布(只能做一对一修复,不能生成新样本);
- AmbientGAN(早期损坏数据生成模型):在高损坏程度下完全崩溃(无法学习分布),且易记忆训练样本。
基于这篇论文中的讨论,要从损坏数据学干净分布,核心矛盾是:模型只能观测到损坏样本的局部信息(可见像素),但干净分布是全局统计特征------如何让模型从局部损坏的信息中学习全局干净特征?
传统方法的失败根源是:模型没有动力关注缺失像素 。若损失只约束可见像素,模型会放弃缺失像素的学习(反正不影响损失)。要让模型必须关注缺失像素,最直接的思路是:让模型无法区分哪些像素是真缺失,哪些是额外损坏的,这样模型为了最小化损失,必须学习所有像素(包括缺失像素)的合理值。
在这篇论文中,这一思路的具体落地就是引入的额外损坏 。对原始损坏样本 A x 0 A x_0 Ax0( A A A 是原始损坏矩阵),施加二次损坏得到 A ~ x t = B A x t \tilde{A} x_t = B A x_t A~xt=BAxt( B B B 是额外损坏矩阵)。模型只能获取 A ~ x t \tilde{A} x_t A~xt,但不知道哪些像素是原始缺失、哪些是额外损坏。为了不被损失惩罚,模型必须假设所有缺失像素都可能是额外损坏的(即原始样本中存在该像素),从而被迫学习这些像素的干净值。
这里需要注意, A ~ \tilde{A} A~是训练时主动构造的已知输入, A A A的实现和先验分布已知、 B B B是人为设计的额外损坏规则,因此 A ~ = B A \tilde{A}=BA A~=BA完全可控;期望估计依赖模型学习 A ~ x t + A ~ \tilde{A} x_t + \tilde{A} A~xt+A~→条件期望的映射,无需知道干净样本。
- 论文中原始损坏矩阵 A A A并非完全未知,其实现(realizations)和先验分布 p ( A ) p(A) p(A)是已知的(见Method部分定义: A ∼ p ( A ) A \sim p(A) A∼p(A) is a random corruption matrix (with known realizations and prior distribution))。 例如,随机补全场景中, A A A是对角矩阵,每个对角元为1的概率是 1 − p 1-p 1−p(保留像素)、为0的概率是 p p p(缺失像素),这个概率 p p p(先验分布)和每个训练样本对应的具体 A A A矩阵(哪个像素保留/缺失,即实现)都是已知的; 高斯测量场景中, A A A是 m m m行随机高斯矩阵------其生成规则(每行独立服从 N ( 0 , I n ) N(0,I_n) N(0,In))是已知的,每个训练样本的 A A A矩阵也是可观测的。
- 额外损坏矩阵 B B B是用户主动设计的,参数和形式完全可控,无需依赖数据:例如,随机补全中, B B B是对角矩阵,以概率 δ \delta δ将 A A A中1(保留像素)转为0(额外缺失), δ \delta δ是超参数(如论文中设 δ = 0.1 \delta=0.1 δ=0.1),可根据 corruption 程度调整; 而在高斯测量中, B B B是删除 A A A最后一行的规则。所以该项完全由用户定义,无未知性。
- 因为 A A A的具体实现已知、 B B B的规则已知,所以 A ~ \tilde{A} A~是针对每个训练样本实时构造 的,并且会作为模型的输入之一(模型输入为 { A ~ , A ~ x t } \{\tilde{A}, \tilde{A} x_t\} {A~,A~xt})。 例如,某训练样本的 A A A矩阵是保留像素1、3、5(对角元1、3、5为1), B B B是以 δ = 0.1 \delta=0.1 δ=0.1额外删除像素,则 A ~ \tilde{A} A~的对角元1、3、5为1的概率是 0.9 0.9 0.9,为0的概率是 0.1 0.1 0.1,具体值在训练时生成后输入模型。
基础设定
本文方案是构建在基于得分的扩散模型之上的,其学习目标在学习得分函数 ∇ x log p t ( x ) \nabla_x \log p_t(x) ∇xlogpt(x):
- 前向加噪过程遵循伊藤随机微分方程(Ito SDE): d x = f ( x , t ) d t + g ( t ) d w dx = f(x, t)dt + g(t)dw dx=f(x,t)dt+g(t)dw,这里的 w w w是标准的维纳过程,用于构造随机噪声。
- 反向去噪过程遵循: d x = ( f ( x , t ) − g 2 ( t ) ∇ x log p t ( x ) ) d t + g ( t ) d w dx = \left( f(x, t) - g^2(t) \nabla_x \log p_t(x) \right) dt + g(t)dw dx=(f(x,t)−g2(t)∇xlogpt(x))dt+g(t)dw
在这里:
- f ( x , t ) f(x, t) f(x,t) 是漂移函数(决定 x 随时间变化的确定性趋势,比如均值是否衰减)。
- g ( t ) g(t) g(t) 是扩散函数(决定注入噪声的强度)。
- d w dw dw 是标准维纳过程(即布朗运动,代表无穷小的随机噪声)。
关于这里漂移项(Drift Function) 和 扩散项(Diffusion Function)函数 f , g f,g f,g的选择,有多种方案,目前典型的包括:
- Variance Exploding SDE: f ( x , t ) = 0 , g ( t ) = d σ 2 d t f(x, t) = 0, g(t) = \sqrt{\frac{d \sigma^2}{dt}} f(x,t)=0,g(t)=dtdσ2
- Variance Preserving SDE: f ( x , t ) = − β ( t ) x , g ( t ) = β ( t ) f(x, t) = - \beta(t)x, g(t) = \sqrt{\beta(t)} f(x,t)=−β(t)x,g(t)=β(t)
这些选择都可以导致最终形成一个高斯分布,并且等价于输入的线性变换。本文是以Variance Exploding SDE这种简单形式来介绍的,这可以得到一个简洁的前向过程:
x t = x 0 + σ t η x_t = x_0 + \sigma_t \eta xt=x0+σtη
这是一个非常深刻的数学问题,触及了扩散模型随机微分方程(SDE)形式设计的核心。直接带入预设的漂移项与扩散项,可以得到
d x = 0 ⋅ d t + d σ t 2 d t d w = d σ t 2 d t d w dx = 0 \cdot dt + \sqrt{\frac{d\sigma_t^2}{dt}} dw = \sqrt{\frac{d\sigma_t^2}{dt}} dw dx=0⋅dt+dtdσt2 dw=dtdσt2 dw因为 f ( x , t ) = 0 f(x, t) = 0 f(x,t)=0,这意味着 x x x 的均值不随时间变化。如果是 VP-SDE(Variance Preserving),这里会有一个 − β x -\beta x −βx 项,导致 x 0 x_0 x0 前面的系数随时间衰减(变成 α ˉ t \sqrt{\bar{\alpha}_t} αˉt 之类)。而在 VE-SDE 中, x 0 x_0 x0 的系数始终保持为 1。
接下来通过积分获得目标时刻 t t t的表示:
x t − x 0 = ∫ 0 t d σ s 2 d s d w s ⇒ x t = x 0 + ∫ 0 t d σ s 2 d s d w s ⏟ 累积的噪声项 x_t - x_0 = \int_0^t \sqrt{\frac{d\sigma_s^2}{ds}} dw_s \Rightarrow x_t = x_0 + \underbrace{\int_0^t \sqrt{\frac{d\sigma_s^2}{ds}} dw_s}_{\text{累积的噪声项}} xt−x0=∫0tdsdσs2 dws⇒xt=x0+累积的噪声项 ∫0tdsdσs2 dws根据伊藤等距同构(Ito Isometry)性质,随机积分项 ∫ 0 t h ( s ) d w s \int_0^t h(s) dw_s ∫0th(s)dws 服从均值为 0,方差为 ∫ 0 t h ( s ) 2 d s \int_0^t h(s)^2 ds ∫0th(s)2ds 的高斯分布。这里 h ( s ) = d σ s 2 d s h(s) = \sqrt{\frac{d\sigma_s^2}{ds}} h(s)=dsdσs2 ,所以累积噪声的方差为:
Var = ∫ 0 t ( d σ s 2 d s ) 2 d s = ∫ 0 t d σ s 2 d s d s \text{Var} = \int_0^t \left( \sqrt{\frac{d\sigma_s^2}{ds}} \right)^2 ds = \int_0^t \frac{d\sigma_s^2}{ds} ds Var=∫0t(dsdσs2 )2ds=∫0tdsdσs2ds利用微积分基本定理,对导数积分就是原函数本身: Var = σ t 2 − σ 0 2 \text{Var} = \sigma_t^2 - \sigma_0^2 Var=σt2−σ02。通常我们假设初始噪声极小 σ 0 ≈ 0 \sigma_0 \approx 0 σ0≈0,因此总方差就是 σ t 2 \sigma_t^2 σt2。既然积分项是一个均值为 0,方差为 σ t 2 \sigma_t^2 σt2 的随机变量,我们就可以用标准高斯噪声 η ∼ N ( 0 , I ) \eta \sim \mathcal{N}(0, I) η∼N(0,I) 来表示它:
积分项 = σ t η \text{积分项} = \sigma_t \eta 积分项=σtη最终代回原式得到前向加噪模式: x t = x 0 + σ t η x_t = x_0 + \sigma_t \eta xt=x0+σtη
优化方案
有了额外损坏的直觉,下一步是设计损失函数,利用像素不确定性强制模型学习全局特征。这里的关键约束在于损失必须能惩罚模型在额外损坏像素上的错误。由于没有干净数据,只能用原始的损坏样本 A x 0 A x_0 Ax0 作为监督信号,因为实际上这是唯一已知的信息。
通过使用损坏样本作为代理目标,模型预测可以改为 h θ ( A ~ x t , A ~ ) h_\theta(\tilde{A}x_t, \tilde{A}) hθ(A~xt,A~)。这不再直接预测 x 0 x_0 x0,而是直接去约束 模型预测经过原始损坏矩阵 A A A后的结果,与原始损坏样本 A x 0 A x_0 Ax0一致 ,即 A h θ ≈ A x 0 A h_\theta \approx A x_0 Ahθ≈Ax0。这实际上隐式地对应了期望 E [ x 0 ∣ A ~ x t , A ~ ] \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] E[x0∣A~xt,A~],即在已知叠加的损坏过程和损害后的样本,可以估计到 x 0 x_0 x0的期望。
实际上, A x 0 A x_0 Ax0 的可见像素包含 A ~ \tilde{A} A~ 的可见像素 + 额外损坏擦除的像素,这会强制模型在额外损坏擦除的像素上也预测正确,否则损失会上升。最终损失函数的形式,即论文中的 J c o r r ( θ ) J^{corr}(\theta) Jcorr(θ),可以自然而然的构造出来:
J c o r r ( θ ) = 1 2 E x 0 , x t , A , A ~ ∥ A h θ ( A ~ x t , A ~ ) − A x 0 ∥ 2 J^{corr}(\theta) = \frac{1}{2} \mathbb{E}{x_0, x_t, A, \tilde{A}} \left\| A h\theta(\tilde{A}x_t, \tilde{A}) - A x_0 \right\|^2 Jcorr(θ)=21Ex0,xt,A,A~ Ahθ(A~xt,A~)−Ax0 2
其中 x t = x 0 + σ t η x_t = x_0 + \sigma_t \eta xt=x0+σtη,表示扩散过程的含噪图像。
有了损失函数,需要探究其最小解对应的条件。
实际上结合论文的完整内容,这里是将要证明它的最小解是干净数据的条件期望,而非局部损坏样本的重构。
通过引入差异变量 f ( A ~ x t , A ~ ) = h θ ( A ~ x t , A ~ ) − E [ x 0 ∣ A ~ x t , A ~ ] f(\tilde{A}x_t, \tilde{A}) = h_\theta(\tilde{A}x_t, \tilde{A}) - \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] f(A~xt,A~)=hθ(A~xt,A~)−E[x0∣A~xt,A~],衡量模型预测与实际期望 E [ x 0 ∣ A ~ x t , A ~ ] \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] E[x0∣A~xt,A~],即干净数据的条件期望,之间的差异。展开二次项后,整体损失可以拆分为不可约误差+差异项+交叉项三部分。
接下来的核心是通过利用塔形期望证明交叉项为零、结合满秩条件确保二次项最小解唯一,最终让模型预测收敛到干净数据的条件期望 E [ x 0 ∣ A ~ x t , A ~ ] \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] E[x0∣A~xt,A~]。
将 h θ ( A ~ x t , A ~ ) = E [ x 0 ∣ A ~ x t , A ~ ] + f ( A ~ x t , A ~ ) h_\theta(\tilde{A}x_t, \tilde{A}) = \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] + f(\tilde{A}x_t, \tilde{A}) hθ(A~xt,A~)=E[x0∣A~xt,A~]+f(A~xt,A~) 代入损失函数,展开平方项:
∥ A ( h θ ( A ~ x t , A ~ ) − x 0 ) ∥ 2 = ∥ A ( E [ x 0 ∣ A ~ x t , A ~ ] + f ( A ~ x t , A ~ ) − x 0 ) ∥ 2 = ∥ A ( E [ x 0 ∣ A ~ x t , A ~ ] − x 0 ) + A f ( A ~ x t , A ~ ) ∥ 2 = ∥ A ( E [ x 0 ∣ A ~ x t , A ~ ] − x 0 ) ∥ 2 + ∥ A f ( A ~ x t , A ~ ) ∥ 2 + 2 ⋅ ( A ( E [ x 0 ∣ A ~ x t , A ~ ] − x 0 ) ) ⊤ A f ( A ~ x t , A ~ ) \begin{aligned} \left\| A \left( h_\theta(\tilde{A}x_t, \tilde{A}) - x_0 \right) \right\|^2 & = \left\| A \left( \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] + f(\tilde{A}x_t, \tilde{A}) - x_0 \right) \right\|^2 \\ & = \left\| A \left( \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - x_0 \right) + A f(\tilde{A}x_t, \tilde{A}) \right\|^2 \\ & = \left\| A(\mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - x_0) \right\|^2 + \left\| A f(\tilde{A}x_t, \tilde{A}) \right\|^2 + 2 \cdot \left( A(\mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - x_0) \right)^\top A f(\tilde{A}x_t, \tilde{A}) \end{aligned} A(hθ(A~xt,A~)−x0) 2= A(E[x0∣A~xt,A~]+f(A~xt,A~)−x0) 2= A(E[x0∣A~xt,A~]−x0)+Af(A~xt,A~) 2= A(E[x0∣A~xt,A~]−x0) 2+ Af(A~xt,A~) 2+2⋅(A(E[x0∣A~xt,A~]−x0))⊤Af(A~xt,A~)
将展开后的表达式代入损失函数,对所有随机变量( x 0 , x t , A , A ~ x_0, x_t, A, \tilde{A} x0,xt,A,A~)取期望,得到:
J c o r r ( θ ) = 1 2 ( E x 0 , x t , A , A ~ [ T 1 ] + E x 0 , x t , A , A ~ [ T 2 ] + 2 E x 0 , x t , A , A ~ [ T 3 ] ) J^{corr}(\theta) = \frac{1}{2} \left( \mathbb{E}{x_0, x_t, A, \tilde{A}}[T_1] + \mathbb{E}{x_0, x_t, A, \tilde{A}}[T_2] + 2\mathbb{E}_{x_0, x_t, A, \tilde{A}}[T_3] \right) Jcorr(θ)=21(Ex0,xt,A,A~[T1]+Ex0,xt,A,A~[T2]+2Ex0,xt,A,A~[T3])
其中三项分别定义为:
- T 1 = ∥ A ( E [ x 0 ∣ A ~ x t , A ~ ] − x 0 ) ∥ 2 T_1 = \left\| A(\mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - x_0) \right\|^2 T1= A(E[x0∣A~xt,A~]−x0) 2(不可约误差项),这是干净数据与条件期望的差异经过损坏矩阵 A A A处理后的误差,与模型参数 θ \theta θ无关(仅由数据分布和条件期望决定),所以期望 E [ T 1 ] \mathbb{E}[T_1] E[T1] 是常数,最小化损失函数时无需考虑,模型无法优化。
- T 2 = ∥ A f ( A ~ x t , A ~ ) ∥ 2 T_2 = \left\| A f(\tilde{A}x_t, \tilde{A}) \right\|^2 T2= Af(A~xt,A~) 2(模型预测与条件期望的差异项)
- T 3 = ( A ( E [ x 0 ∣ A ~ x t , A ~ ] − x 0 ) ) ⊤ A f ( A ~ x t , A ~ ) T_3 = \left( A(\mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - x_0) \right)^\top A f(\tilde{A}x_t, \tilde{A}) T3=(A(E[x0∣A~xt,A~]−x0))⊤Af(A~xt,A~)(交叉项)
其中第三项需要进行比较复杂的期望分析。
首先利用全期望公式(先对 A , x 0 A, x_0 A,x0取条件期望,再对 A ~ , A ~ x t \tilde{A}, \tilde{A}x_t A~,A~xt 取期望),展开 E x 0 , x t , A , A ~ [ T 3 ] = E x 0 , A , A ~ , A ~ x t [ T 3 ] \mathbb{E}{x_0, x_t, A, \tilde{A}}[T_3] = \mathbb{E}{x_0, A, \tilde{A}, \tilde{A}x_t}[T_3] Ex0,xt,A,A~[T3]=Ex0,A,A~,A~xt[T3]:
E x 0 , x t , A , A ~ [ T 3 ] = E x 0 , A , A ~ , A ~ x t [ T 3 ] = E A , A ~ , A ~ x t { E x 0 ∣ A , A ~ , A ~ x t [ ( A ( E [ x 0 ∣ A ~ x t , A ~ ] − x 0 ) ) ⊤ A f ( A ~ x t , A ~ ) ] } \mathbb{E}{x_0, x_t, A, \tilde{A}}[T_3] = \mathbb{E}{x_0, A, \tilde{A}, \tilde{A}x_t}[T_3] = \mathbb{E}{A, \tilde{A}, \tilde{A}x_t} \left\{ \mathbb{E}{x_0 | A, \tilde{A}, \tilde{A}x_t} \left[ \left( A(\mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - x_0) \right)^\top A f(\tilde{A}x_t, \tilde{A}) \right] \right\} Ex0,xt,A,A~[T3]=Ex0,A,A~,A~xt[T3]=EA,A~,A~xt{Ex0∣A,A~,A~xt[(A(E[x0∣A~xt,A~]−x0))⊤Af(A~xt,A~)]}
全期望公式: E all [ ... ] = E A , ... [ E x 0 ∣ A , ... [ ... ] ] \mathbb{E}{\text{all}}[\dots] = \mathbb{E}{A,\dots}[\mathbb{E}_{x_0|A,\dots}[\dots]] Eall[...]=EA,...[Ex0∣A,...[...]]
接下来进行内层期望分析。在给定 A ~ , A ~ x t \tilde{A}, \tilde{A}x_t A~,A~xt 时, f ( A ~ x t , A ~ ) f(\tilde{A}x_t, \tilde{A}) f(A~xt,A~) 是常数(与 A , x 0 A, x_0 A,x0 无关),此时可从内层期望提出,因此内层期望(注意,这里暂时忽略了外部期望)可以改写为:
E x 0 ∣ A , A ~ , A ~ x t [ ( A ( E [ x 0 ∣ A ~ x t , A ~ ] − x 0 ) ) ⊤ A f ( A ~ x t , A ~ ) ] = E x 0 ∣ A , A ~ , A ~ x t [ ( E [ x 0 ∣ A ~ x t , A ~ ] − x 0 ) ⊤ A ⊤ A f ( A ~ x t , A ~ ) ] = E x 0 ∣ A , A ~ , A ~ x t [ E [ x 0 ∣ A ~ x t , A ~ ] − x 0 ] ⊤ A ⊤ A f ( A ~ x t , A ~ ) = ( E [ x 0 ∣ A ~ x t , A ~ ] − E [ x 0 ∣ A , A ~ , A ~ x t ] ) ⊤ A ⊤ A f ( A ~ x t , A ~ ) = ( E [ x 0 ∣ A ~ x t , A ~ ] − E [ x 0 ∣ A ~ x t , A ~ ] ) ⊤ A ⊤ A f ( A ~ x t , A ~ ) = 0 \begin{aligned} \mathbb{E}{x_0 | A, \tilde{A}, \tilde{A}x_t} & \left[ \left( A(\mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - x_0) \right)^\top A f(\tilde{A}x_t, \tilde{A}) \right] \\ & = \mathbb{E}{x_0 | A, \tilde{A}, \tilde{A}x_t} \left[ (\mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - x_0)^\top A^\top A f(\tilde{A}x_t, \tilde{A}) \right] \\ & = \mathbb{E}_{x_0 | A, \tilde{A}, \tilde{A}x_t} \left[ \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - x_0 \right]^\top A^\top A f(\tilde{A}x_t, \tilde{A}) \\ & = \left( \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - \mathbb{E}[x_0 | A, \tilde{A}, \tilde{A}x_t] \right)^\top A^\top A f(\tilde{A}x_t, \tilde{A}) \\ & = \left( \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] - \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] \right)^\top A^\top A f(\tilde{A}x_t, \tilde{A}) \\ & = 0 \end{aligned} Ex0∣A,A~,A~xt[(A(E[x0∣A~xt,A~]−x0))⊤Af(A~xt,A~)]=Ex0∣A,A~,A~xt[(E[x0∣A~xt,A~]−x0)⊤A⊤Af(A~xt,A~)]=Ex0∣A,A~,A~xt[E[x0∣A~xt,A~]−x0]⊤A⊤Af(A~xt,A~)=(E[x0∣A~xt,A~]−E[x0∣A,A~,A~xt])⊤A⊤Af(A~xt,A~)=(E[x0∣A~xt,A~]−E[x0∣A~xt,A~])⊤A⊤Af(A~xt,A~)=0
所以第三项整体为0。
接下来开始分析第二项,将 T 2 = ∥ A f ( A ~ x t , A ~ ) ∥ 2 = f ( A ~ x t , A ~ ) ⊤ A ⊤ A f ( A ~ x t , A ~ ) T_2 = \left\| A f(\tilde{A}x_t, \tilde{A}) \right\|^2 = f(\tilde{A}x_t, \tilde{A})^\top A^\top A f(\tilde{A}x_t, \tilde{A}) T2= Af(A~xt,A~) 2=f(A~xt,A~)⊤A⊤Af(A~xt,A~) 代入期望形式,利用全期望公式拆分:
E x 0 , x t , A , A ~ [ T 2 ] = E x 0 , x t , A ~ [ f ( A ~ x t , A ~ ) ⊤ ⋅ E A ∣ x 0 , x t , A ~ [ A ⊤ A ] ⋅ f ( A ~ x t , A ~ ) ] = E x 0 , x t , A ~ [ f ( A ~ x t , A ~ ) ⊤ ⋅ E A ∣ A ~ [ A ⊤ A ] ⋅ f ( A ~ x t , A ~ ) ] \begin{aligned} \mathbb{E}{x_0, x_t, A, \tilde{A}}[T_2] & = \mathbb{E}{x_0, x_t, \tilde{A}} \left[ f(\tilde{A}x_t, \tilde{A})^\top \cdot \mathbb{E}{A | x_0, x_t, \tilde{A}}[A^\top A] \cdot f(\tilde{A}x_t, \tilde{A}) \right] \\ & = \mathbb{E}{x_0, x_t, \tilde{A}} \left[ f(\tilde{A}x_t, \tilde{A})^\top \cdot \mathbb{E}_{A | \tilde{A}}[A^\top A] \cdot f(\tilde{A}x_t, \tilde{A}) \right] \\ \end{aligned} Ex0,xt,A,A~[T2]=Ex0,xt,A~[f(A~xt,A~)⊤⋅EA∣x0,xt,A~[A⊤A]⋅f(A~xt,A~)]=Ex0,xt,A~[f(A~xt,A~)⊤⋅EA∣A~[A⊤A]⋅f(A~xt,A~)]
这里需要注意:因为算子 A A A 的生成与图像内容 x 0 , x t x_0, x_t x0,xt 是独立的。一旦你知道了观测到的算子 A ~ \tilde{A} A~,再给你看具体的图片 x 0 x_0 x0(比如是一只猫还是一只狗),并不会改变你对原始算子 A A A 的猜测。这对于推导的简化至关重要,它使得 A T A A^TA ATA 的期望可以作为一个独立于图像内容的项被单独计算。
结合以上分析,损失函数可简化为如下形式,最小化损失的目标等价于最小化 E [ T 2 ] \mathbb{E}[T_2] E[T2](因为常数项不可优化):
J c o r r ( θ ) = 1 2 ( 常数 C + E [ T 2 ] ) = 1 2 ( C + E x 0 , x t , A ~ [ f ( A ~ x t , A ~ ) ⊤ ⋅ E A ∣ A ~ [ A ⊤ A ] ⋅ f ( A ~ x t , A ~ ) ] ) J^{corr}(\theta) = \frac{1}{2} \left( \text{常数}C + \mathbb{E}[T_2] \right) = \frac{1}{2} (C + \mathbb{E}{x_0, x_t, \tilde{A}} \left[ f(\tilde{A}x_t, \tilde{A})^\top \cdot \mathbb{E}{A | \tilde{A}}[A^\top A] \cdot f(\tilde{A}x_t, \tilde{A}) \right]) Jcorr(θ)=21(常数C+E[T2])=21(C+Ex0,xt,A~[f(A~xt,A~)⊤⋅EA∣A~[A⊤A]⋅f(A~xt,A~)])
实际上,对于 f T ⋅ E [ A T A ] ⋅ f f^T \cdot \mathbb{E}[A^T A] \cdot f fT⋅E[ATA]⋅f这样一个式子,考虑到 A T A A^T A ATA 的形式总是半正定(Positive Semi-Definite, PSD)的,半正定矩阵的期望也是半正定的。
为什么 A T A A^T A ATA 一定是半正定的?
无论矩阵 A A A 是什么样子(长方形、正方形、满秩、亏秩), A T A A^T A ATA 永远满足半正定性质。因为根据正定性的定义,我们需要检查二次型 x T ( A T A ) x x^T (A^T A) x xT(ATA)x 的符号。对于任意非零向量 x x x:
x T ( A T A ) x = ( x T A T ) ( A x ) = ( A x ) T ( A x ) = ∥ A x ∥ 2 2 x^T (A^T A) x = (x^T A^T) (A x) = (Ax)^T (Ax) = \| Ax \|_2^2 xT(ATA)x=(xTAT)(Ax)=(Ax)T(Ax)=∥Ax∥22由于欧几里得范数的平方 ∥ ⋅ ∥ 2 \| \cdot \|^2 ∥⋅∥2 必然是非负的( ≥ 0 \ge 0 ≥0)。所以 x T ( A T A ) x ≥ 0 x^T (A^T A) x \ge 0 xT(ATA)x≥0 对任意 x x x 恒成立。这就是半正定 (Positive Semi-Definite) 的定义。想让它变成正定 (Strictly Positive Definite) 需要严格的大于号, ∥ A x ∥ 2 > 0 , ∀ x ≠ 0 \| Ax \|^2 > 0, \forall x \neq 0 ∥Ax∥2>0,∀x=0。
所以这意味着这个式子 f T ⋅ E [ A T A ] ⋅ f ≥ 0 f^T \cdot \mathbb{E}[A^T A] \cdot f \ge 0 fT⋅E[ATA]⋅f≥0 可以看作是半正定矩阵的定义形式的例子,所以整体恒成立。
假设 N N N 是一个随机矩阵。已知 N N N 在任意情况下都是半正定的(PSD),这意味着对于任意固定的非零向量 x x x,都有:
x T N x ≥ 0 x^T N x \ge 0 xTNx≥0因为向量 x x x 是非随机的(常数),所以可以把期望符号 E \mathbb{E} E 提到最外面,即
x T E [ N ] x = E [ x T N x ] x^T \mathbb{E}[N] x = \mathbb{E} [ x^T N x ] xTE[N]x=E[xTNx]需要注意的是,实际上 x x x本身可以不只局限于向量,也可以是矩阵,此时可以通过引入辅助的向量将其与矩阵 x x x组合构建出来新的向量来证明半正定性。
矩阵乘法 x T N x x^T N x xTNx 本质上是 N N N 中元素的线性组合。期望作为一个线性算子,可以穿过线性组合。所以可以有如下推理流程得到推论:半正定矩阵的期望也是半正定的。
- 非负随机变量的期望一定是非负的;
- (直接结果) E [ x ⊤ N x ] ≥ 0 \mathbb{E} \left[ x^\top N x \right] \ge 0 E[x⊤Nx]≥0
- (符合半正定矩阵的定义) x T E [ N ] x ≥ 0 x^T \mathbb{E}[N] x \ge 0 xTE[N]x≥0
- (所以半正定矩阵的期望也是半正定的) E [ N ] \mathbb{E}[N] E[N]为半正定矩阵
矩阵的期望如果 M M M 是一个 m × n m \times n m×n 的随机矩阵,意味着矩阵里的每一个位置 M i j M_{ij} Mij 都是一个随机变量。那么, M M M 的期望就是由这些位置各自的期望组成的矩阵。
E [ M 11 M 12 M 21 M 22 ] = [ E [ M 11 ] E [ M 12 ] E [ M 21 ] E [ M 22 ] ] \mathbb{E} \begin{bmatrix} M_{11} & M_{12} \\ M_{21} & M_{22} \end{bmatrix} = \begin{bmatrix} \mathbb{E}[M_{11}] & \mathbb{E}[M_{12}] \\ \mathbb{E}[M_{21}] & \mathbb{E}[M_{22}] \end{bmatrix} E[M11M21M12M22]=[E[M11]E[M21]E[M12]E[M22]]区别点:
- 单变量: 算出一个数(标量)。
- 矩阵: 算出一个由数组成的表格(矩阵),结构保持不变。
一个特殊的点,在矩阵中, E [ A T A ] \mathbb{E}[A^T A] E[ATA] 不仅包含了每个元素的方差,还包含了不同元素之间的协方差(Covariance)。因此, E [ A T A ] \mathbb{E}[A^T A] E[ATA] 被称为二阶矩矩阵(Second Moment Matrix),它包含了比 E [ A ] \mathbb{E}[A] E[A] 丰富得多的信息。
所以,为了限制最小值仅仅在 f = 0 f=0 f=0(即估计差异为 0 0 0)正好对应损失的最小值 0 0 0,这里作者们进一步添加了约束,限制 E A ∣ A ~ [ A ⊤ A ] \mathbb{E}_{A | \tilde{A}}[A^\top A] EA∣A~[A⊤A] 本身是满秩矩阵,这进一步限制了该期望本身是正定的。
满秩矩阵
矩阵的秩(Rank)代表了它拥有的独立信息的维度。假设矩阵 A A A 是 m × n m \times n m×n 的,秩 (Rank)对应了矩阵中线性无关的行(或列)的最大数量。
满秩 (Full Rank)则更进一步要求秩等于行数 m m m 和列数 n n n 中较小的那个,即 rank ( A ) = min ( m , n ) \text{rank}(A) = \min(m, n) rank(A)=min(m,n)。
最常见的情况是方阵 ( n × n n \times n n×n):
- 满秩表示 rank ( A ) = n \text{rank}(A) = n rank(A)=n,这意味着它是非奇异的(Non-singular),是可逆的。
- 不满秩(亏秩)表示 rank ( A ) < n \text{rank}(A) < n rank(A)<n,这意味着它是奇异的(Singular),不可逆,行列式为 0。
如果一个方阵 A A A 是满秩的,它就像是一个完美的翻译官,具有以下关键特性:
- 零空间只有零点(最关键的特性)这是在推导中用到最多的性质。满秩时,方程 A x = 0 Ax = 0 Ax=0 只有唯一解 x = 0 x = 0 x=0。不满秩时,方程 A x = 0 Ax = 0 Ax=0 存在非零解(即存在 x ≠ 0 x \neq 0 x=0 使得 A x = 0 Ax=0 Ax=0)。直观上,如果不满秩,矩阵会把某些非零向量压缩成零。这就像你把三维物体拍成二维照片,不同深度的点重叠了,信息丢失了。满秩矩阵不会发生这种坍塌。
- 满秩矩阵存在逆矩阵 A − 1 A^{-1} A−1。它的行列式 det ( A ) ≠ 0 \det(A) \neq 0 det(A)=0。它的所有特征值(Eigenvalues)都不为 0。
- 信息不丢失(一一映射)它定义了一个双射(Bijective)变换。每一个输入 x x x 都有唯一的输出 y = A x y=Ax y=Ax,反之亦然。它不会把两个不同的 x 1 , x 2 x_1, x_2 x1,x2 映射到同一个 y y y 上。
| 特性维度 | 满秩矩阵 (Full Rank) | 正定矩阵 (Positive Definite) | 半正定矩阵 (Positive Semi-Definite) |
|---|---|---|---|
| 直观定义 | 无冗余 没有废话,信息独立且完整。 | 完美的碗 碗口严格朝上,底部只有一个最低点。 | 碗或平底谷 碗口朝上,但底部可能是一条平坦的沟。 |
| 能量公式 ( ∀ x ≠ 0 \forall x \neq 0 ∀x=0) | x T M x ≠ 0 x^T M x \neq 0 xTMx=0 不为0,但可能是负数。 | x T M x > 0 x^T M x > 0 xTMx>0 恒大于0 (严格正能量)。 | x T M x ≥ 0 x^T M x \ge 0 xTMx≥0 恒大于等于0 (能量非负)。 |
| 特征值 ( λ \lambda λ) | 所有 λ ≠ 0 \lambda \neq 0 λ=0 | 所有 λ > 0 \lambda > 0 λ>0 | 所有 λ ≥ 0 \lambda \ge 0 λ≥0 |
| 行列式 | det ( M ) ≠ 0 \det(M) \neq 0 det(M)=0 | det ( M ) > 0 \det(M) > 0 det(M)>0 | det ( M ) ≥ 0 \det(M) \ge 0 det(M)≥0 |
| 可逆性 | 可逆 (Invertible) | 可逆 (Invertible) | 不一定 若有特征值为0,则不可逆。 |
| 方程解 ( M x = 0 Mx=0 Mx=0) | 只有 x = 0 x=0 x=0 | 只有 x = 0 x=0 x=0 | 可能有 x ≠ 0 x \neq 0 x=0 |
| 优化中的意义 | 保证解是唯一的。 | 保证是强凸优化,有唯一全局最优解。 | 保证是凸优化,但可能有无数个最优解。 |
| 逻辑关系 | 基础属性:非零 | = 满秩 ∩ \cap ∩ 半正定 | 基础属性:非负 |
这使得,对任意 f f f,有 f ⊤ ⋅ E A ∣ A ~ [ A ⊤ A ] ⋅ f ≥ 0 f^\top \cdot \mathbb{E}{A | \tilde{A}}[A^\top A] \cdot f \geq 0 f⊤⋅EA∣A~[A⊤A]⋅f≥0。而且其中的等号成立条件为,仅当差异 f = 0 f = 0 f=0 时,该二次型为0,也就是第二项期望为零,从而对应到了损失为0。前面的满秩假设从数学上锁死了解,只要损失降到 0,模型输出 f f f 就必须是 0。因此:
f = 0 ⟹ h θ ∗ ( A ~ x t , A ~ ) = E [ x 0 ∣ A ~ x t , A ~ ] f = 0 \implies h\theta^*(\tilde{A}x_t, \tilde{A}) = \mathbb{E}[x_0 | \tilde{A}x_t, \tilde{A}] f=0⟹hθ∗(A~xt,A~)=E[x0∣A~xt,A~]
所以整体思路可以拆解为如下几步:
损失函数展开
拆分三项 不可约误差为常数
仅优化差异项 交叉项为零
利用条件期望无偏性 差异项最小解为 f = 0
利用正定矩阵性质 目标条件期望
本质上,损失函数通过额外损坏矩阵 A ~ \tilde{A} A~ 制造的不确定性和 E [ A ⊤ A ∣ A ~ ] \mathbb{E}[A^\top A | \tilde{A}] E[A⊤A∣A~] 满秩带来的正定性约束,强制模型预测必须等于干净数据的条件期望------否则损失会因 E [ T 2 ] > 0 \mathbb{E}[T_2] > 0 E[T2]>0 而无法最小化。这也是Ambient Diffusion能在无干净数据的情况下,仅通过损坏样本学到干净分布核心统计特征的数学根源。