Inverse Problems

ReCall

Gaussians and Score Function

已知 p(z)=N(0,I)p(z) = N(0, I) , x=u+Σ12zx = u + \Sigma ^{\frac{1}{2}}z

p(x)=N(u,Σ)p(x) = N(u, \Sigma) , p(x)=1(2π)d/2Σ1/2e12(xu)TΣ1(xu)p(x) = \frac{1}{(2\pi)^{d/2} |\Sigma|^{1/2}}e^{-\frac{1}{2}(x-u)^T\Sigma^{-1}(x-u)}

logp(x)=12(xu)TΣ1(xu)\log p(x) = -\frac{1}{2}(x-u)^T\Sigma^{-1}(x-u)

xlogp(x)=Σ1(xu)\nabla_x \log p(x) = -\Sigma^{-1}(x-u)

Tweedie’s Formula

假设 x=u+Σ12zx = u + \Sigma ^{\frac{1}{2}}z ,即 xxuu 的带噪声版本, 如何从这个带噪声的 xx (observation) 中恢复出原始的 uu 呢?

E[ux]=x+Σxlogp(x)\mathbb E[u|x] = x + \Sigma \nabla_x \log p(x)

在diffusion model中, 有

p(xtx0)=N(αˉtx0,(1αˉt)I)p(x_t|x_0) = \mathcal N(\sqrt{\bar{\alpha}_t}x_0, (1-\bar{\alpha}_t)I)

观测的随机变量为xtx_t

则应用Tweedie公式,得

Ex0p(x),xtpσ(xt)[αˉtx0xt]=αˉtE[x0xt]=xt+(1αˉt)xlogp(xtx0)\mathbb E_{x_0 \sim p(x), x_t \sim p_{\sigma}(x_t)}[\sqrt{\bar{\alpha}_t}x_0|x_t] = \sqrt{\bar{\alpha}_t} \mathbb E[x_0|x_t] =x_t + (1-\bar{\alpha}_t)\nabla_x \log p(x_t |x_0)

  • 这里化边缘分布为条件分布,和score function 类似

E[x0xt]=1αˉt(xt+(1αˉt)xlogp(xtx0))\mathbb E[x_0|x_t] = \frac{1}{\sqrt{\bar{\alpha}_t}}(x_t + (1-\bar{\alpha}_t)\nabla_x \log p(x_t |x_0))

Inverse Problems

问题定义:

已知观测 yy, 其符合 y=A(x)+σzzN(0I)y = \mathcal A(x) + \sigma z, z \sim N(0,I), 如何找到对应于该观测 yy 的原始数据点 xx

  • A\mathcal A 为观测算子
  • zz 为观测噪声
  • 去模糊,超分,inpaint,都可以看作是逆问题。要从观测 yy (一张模糊的图像,一张低分辨率的图像,一张带掩码的图像) 恢复到diffusion 学习到的原始正常图像 xx

Pseudoinverse-Guided Diffusion Models for Inverse Problems, ICLR 2023

Methods

方法:已知观测 yy 以及diffusion model学习到的xlogp(xt)\nabla_x \log p(x_t), 计算 xlogp(xty)\nabla_x \log p(x_t|y) 来引导 yy 恢复为 xx

xtlogp(xty)=xtlogp(xt)+xtlogp(yxt)\nabla_{x_t} \log p(x_t|y) = \nabla_{x_t} \log p(x_t) + \nabla_{x_t} \log p(y|x_t)

xlogp(xt)\nabla_x \log p(x_t) 通过diffusion model可以得到,问题转化为如何不用训练就计算xlogp(yxt)\nabla_x \log p(y|x_t)

结论:

p(yxt)N(Ax0t,Σ)p(y|x_t) \approx N(Ax_{0|t},\Sigma)

  • 其中Σ=r2AAT+σ2\Sigma = r^2AA^T + \sigma^2

考虑特殊的情况,A(x)\mathcal A(x)是一个线性变换,

A(x)\mathcal A(x)可以用一个线性矩阵AA 表示

y=A(x0)+σz=Ax0+σzy =\mathcal A(x_0) + \sigma z=Ax_0 + \sigma z,

  • 其中 zN(0,I)z \sim N(0,I)

p(yx0)=N(Ax0,σ2I)p(y|x_0) = N(Ax_0, \sigma^2I)

x0t=E[x0xt]x_{0|t} = E[x_0|x_t] , p(x0xt)N(x0t,r2I)p(x_{0}|x_t) \approx N(x_{0|t}, r^2I)

又:

p(y)=p(yx0)p(x0)dx0p(y) = \int p(y|x_0) p(x_0) \, dx_0

加上 xtx_t 的条件:

p(yxt)=p(yx0,xt)p(x0xt)dx0p(y|x_t) = \int p(y|x_0, x_t) p(x_0|x_t) \, dx_0

因为 xtx_t 是从 x0x_0 采样得到,故对于y没有提供额外信息:

=p(yx0)p(x0xt)dx0= \int p(y|x_0) p(x_0|x_t) \, dx_0

因为

  • p(yx0)=N(Ax0,σ2I)p(y|x_0) = N(Ax_0, \sigma^2I)

  • p(x0xt)N(x0t,r2I)p(x_{0}|x_t) \approx N(x_{0|t}, r^2I)

所以

p(yxt)N(Ax0t,(r2AAT+σ2)I)p(y|x_t) \approx N(Ax_{0|t}, (r^2AA^T + \sigma^2) I)

Σ=r2AAT+σ2\Sigma = r^2AA^T + \sigma^2

p(yxt)N(Ax0t,Σ)p(y|x_t) \approx N(Ax_{0|t},\Sigma)

logp(yxt)12(yAx0t)TΣ1(yAx0t)\log p(y|x_t) \approx -\frac{1}{2}(y-Ax_{0|t})^T\Sigma^{-1}(y-Ax_{0|t})

xtlogp(yxt)=logp(yxt)x0tx0txtx0t(12(yAx0t)TΣ1(yAx0t))x0txt=ATΣ1(yAx0t)x0txt=AT(σ2I+r2AAT)1(yAx0t)x0txt\begin{align*} \nabla_{x_t} \log p(y|x_t) &= \frac{\partial \log p(y|x_t)}{\partial x_0|t} \cdot \frac{\partial x_0|t}{\partial x_t} \\ &\approx \frac{\partial}{\partial x_0|t} \left( -\frac{1}{2} (y - A x_{0|t})^T \Sigma^{-1} (y - A x_{0|t}) \right) \cdot \frac{\partial x_{0|t}}{\partial x_t} \\ &= A^T \Sigma^{-1} (y - A x_{0|t}) \cdot \frac{\partial x_{0|t}}{\partial x_t} \\ &= A^T (\sigma^2 I + r^2 A A^T)^{-1} (y - A x_{0|t}) \cdot \frac{\partial x_{0|t}}{\partial x_t} \end{align*}

Pseudoinverse guidance (ΠG) [1]

σ=0\sigma = 0 时,表示 yy 没有观测误差

xtlogp(yxt)=1r2AT(AAT)1(yAx0t)x0txt\begin{align*} \nabla_{x_t} \log p(y|x_t) &= \frac{1}{r^2}A^T (A A^T)^{-1} (y - A x_{0|t}) \cdot \frac{\partial x_{0|t}}{\partial x_t} \end{align*}

  • 此时 AT(AAT)1A^T (A A^T)^{-1}AA 的一个伪逆矩阵
  • 当非线性时,需要人工构造伪逆函数,保证 AA1A(x)=A(x)\mathcal A\mathcal A^{-1}\mathcal A(x)=\mathcal A(x)

DPS [2]

r=0r = 0 时,

p(yxt)N(Ax0t,σ2I)p(y|x_t) \approx N(Ax_{0|t}, \sigma^2 I)

  • 不需要 AATAA^T 矩阵,因此可以去掉A(x)\mathcal A(x)是一个线性变换的前提, 适用于广泛的观测算子

p(yxt)N(A(x0t),σ2I)p(y|x_t) \approx N(\mathcal A(x_{0|t}), \sigma^2 I)

xtlogp(yxt)=12σ2xtyA(x0t)2\nabla_{x_t} \log p(y|x_t) = \frac{1}{2 \sigma^2}\nabla_{x_t}||y-\mathcal A(x_{0|t})||^2

References

  1. Song et al., Pseudoinverse-Guided Diffusion Models for Inverse Problems, ICLR 2023
  2. Chung et al., Diffusion Posterior Sampling for General Noisy Inverse Problems, ICLR 2023
  3. CS492(D) Diffusion Models and Their Applications (KAIST, Fall 2024)

Inverse Problems
https://xrlexpert.github.io/2025/05/16/Inverse_Problems/
作者
Hirox
发布于
2025年5月16日
许可协议