DIFFUSION POSTERIOR SAMPLING FOR GENERALNOISY INVERSE PROBLEMS (Paper reading)

DIFFUSION POSTERIOR SAMPLING FOR GENERALNOISY INVERSE PROBLEMS

Hyungjin Chung, Kim Jae Chul Graduate School of AI, ICLR 2023 spotlight, Cited:10, Code, Paper.

1. 前言

大多数工作都集中在在无噪声环境中解决简单的线性逆问题,这显著低估了真实世界问题的复杂性。在这项工作中,通过近似后验采样来扩展扩散求解器,有效的处理了一般的有噪声(非)线性逆问题。有趣的是,得到的后验采样方案是扩散采样与流形约束梯度的混合版本,而没有严格的测量一致性投影步骤,在有噪声环境中相比于之前的研究产生了更理想的生成路径。我们的方法展示了扩散模型可以结合各种测量噪声统计,如高斯和泊松,并且也能有效地处理有噪声非线性逆问题,如傅里叶相位恢复和非均匀去模糊。

2. 整体思想

本文的整体思想就是条件扩散模型,与Guided Diffusion是类似的思想,但是本文是从VP-SDE的角度来解决问题的。同样这是一篇非盲求解逆问题的工作。

3. 方法

VP-SDE形势如下,推导过程间Score-Based Generative Modeling Through Stochastic Differential Equations (Paper reading)
d x = − β ( t ) 2 x d t + β ( t ) d w \begin{equation} d \boldsymbol{x}=-\frac{\beta(t)}{2} \boldsymbol{x} d t+\sqrt{\beta(t)} d \boldsymbol{w} \end{equation} dx=2β(t)xdt+β(t) dw
目标是从可追踪分布开始恢复数据生成分布,这可以通过下面相应的反向SDE来实现:
d x = [ − β ( t ) 2 x − β ( t ) ∇ x t log ⁡ p t ( x t ) ] d t + β ( t ) d w ‾ \begin{equation} d \boldsymbol{x}=\left[-\frac{\beta(t)}{2} \boldsymbol{x}-\beta(t) \nabla_{\boldsymbol{x}_{t}} \log p_{t}\left(\boldsymbol{x}_{t}\right)\right] d t+\sqrt{\beta(t)} d \overline{\boldsymbol{w}} \end{equation} dx=[2β(t)xβ(t)xtlogpt(xt)]dt+β(t) dw
漂移函数 f ( x t , t ) f(x_{t},t) f(xt,t)取决于时间相关的分数函数 ∇ x t log ⁡ p t ( x t ) \nabla_{\boldsymbol{x}_{t}} \log p_{t}(\boldsymbol{x}_{t}) xtlogpt(xt),该函数由经过去噪分数匹配训练的神经网络 s θ s_{\theta} sθ近似。对于逆问题,我们有一个由 x x x 导出的部分测量 y y y。当映射 x → y x \to y xy多对一时,我们得到一个ill-posed问题,我们无法精确检索 x x x。在贝叶斯框架中,利用 p ( x ) p(x) p(x)作为先验,来自后验 p ( x ∣ y ) p(x|y) p(xy)的样本,其中关系用贝叶斯规则建立: p ( x ∣ y ) = p ( y ∣ x ) p ( x ) / p ( y ) p(x|y) =p(y|x)p(x)/p(y) p(xy)=p(yx)p(x)/p(y)。利用扩散模型作为先验,可以直接修改(2)获得反向扩散采样器,从后验分布中采样:
d x = [ − β ( t ) 2 x − β ( t ) ( ∇ x t log ⁡ p t ( x t ) + ∇ x t log ⁡ p t ( y ∣ x t ) ) ] d t + β ( t ) d w ‾ \begin{equation} d \boldsymbol{x}=\left[-\frac{\beta(t)}{2} \boldsymbol{x}-\beta(t)\left(\nabla_{\boldsymbol{x}_{t}} \log p_{t}\left(\boldsymbol{x}_{t}\right)+\nabla_{x_{t}} \log p_{t}\left(\boldsymbol{y} \mid \boldsymbol{x}_{t}\right)\right)\right] d t+\sqrt{\beta(t)} d \overline{\boldsymbol{w}} \end{equation} dx=[2β(t)xβ(t)(xtlogpt(xt)+xtlogpt(yxt))]dt+β(t) dw
其中 ∇ x t log ⁡ p t ( x t ∣ y ) \nabla_{\boldsymbol{x}_{t}} \log p_{t}(\boldsymbol{x}_{t} \mid \boldsymbol{y}) xtlogpt(xty)根据这篇文章Guided Diffusion/Diffusion Models Beat GANs on Image Synthesis (Paper reading)得到:
∇ x t log ⁡ p t ( x t ∣ y ) = ∇ x t log ⁡ p t ( x t ) + ∇ x t log ⁡ p t ( y ∣ x t ) \begin{equation} \nabla_{\boldsymbol{x}_{t}} \log p_{t}\left(\boldsymbol{x}_{t} \mid \boldsymbol{y}\right)=\nabla_{\boldsymbol{x}_{t}} \log p_{t}\left(\boldsymbol{x}_{t}\right)+\nabla_{\boldsymbol{x}_{t}} \log p_{t}\left(\boldsymbol{y} \mid \boldsymbol{x}_{t}\right) \end{equation} xtlogpt(xty)=xtlogpt(xt)+xtlogpt(yxt)
为了计算涉前一个项,我们可以简单地使用预训练的得分函数 s θ ∗ s_{\theta^{*}} sθ。然而,由于对时间 t t t的依赖,后一项很难以封闭形式获得,因为 y y y只有和 x 0 x_{0} x0之间明确的依赖性。通常的噪声模型可以表示为:
y = A ( x 0 ) + n , y , n ∈ R n , x ∈ R d \begin{equation} \boldsymbol{y}=\mathcal{A}\left(\boldsymbol{x}_{0}\right)+\boldsymbol{n}, \quad \boldsymbol{y}, \boldsymbol{n} \in \mathbb{R}^{n}, \boldsymbol{x} \in \mathbb{R}^{d} \end{equation} y=A(x0)+n,y,nRn,xRd
其中, A ( ⋅ ) : R d → R n \mathcal{A}(·):\mathbb{R}^{d}\to\mathbb{R}^{n} A():RdRn是前向算子, n ∼ N ( 0 , σ 2 I ) n \sim N(0, \sigma^{2}I) nN(0,σ2I)是高斯白噪声。

因为不存在 p ( y ∣ x t ) p(y|x_{t}) p(yxt)的解析公式。为了利用测量模型 p ( y ∣ x 0 ) p(y|x_{0}) p(yx0),我们将 p ( y ∣ x t ) p(y|x_{t}) p(yxt)分解如下:
p ( y ∣ x t ) = ∫ p ( y ∣ x 0 , x t ) p ( x 0 ∣ x t ) d x 0 = ∫ p ( y ∣ x 0 ) p ( x 0 ∣ x t ) d x 0 \begin{align} p(y|x_{t}) &= \int p(y|x_{0},x_{t})p(x_{0}|x_{t})dx_{0} \\ &= \int p(y|x_{0})p(x_{0}|x_{t})dx_{0} \end{align} p(yxt)=p(yx0,xt)p(x0xt)dx0=p(yx0)p(x0xt)dx0
因为, y y y x t x_{t} xt是独立的,且 y y y x t x_{t} xt是条件独立与 x 0 x_{0} x0的,因此,如下图,给定 x t x_{t} xt y y y等价于给定 x t x_{t} xt x 0 x_{0} x0的概率乘上给定 x 0 x_{0} x0 y y y的概率。而 y y y x t x_{t} xt之间有一个隐含的变量 x 0 x_{0} x0,它可能取不同的值。为了把所有可能的 x 0 x_{0} x0都考虑进去,我们就需要对 x 0 x_{0} x0进行积分。
在这里插入图片描述

由(7)证明了 p ( y ∣ x t ) ≈ p ( y ∣ x ^ 0 ) p(y|x_{t}) \approx p(y| \hat x_{0}) p(yxt)p(yx^0),我是没太看懂!!

在这里插入图片描述

那么就可以用这个近似估计(4)中的梯度了,其中,推导过程见Score-Based Generative Modeling Through Stochastic Differential Equations (Paper reading):
x ^ 0 : = E [ x 0 ∣ x t ] = 1 α ˉ ( t ) ( x t + ( 1 − α ˉ ( t ) ) ∇ x t log ⁡ p t ( x t ) ) ≈ 1 α ˉ ( t ) ( x t + ( 1 − α ˉ ( t ) ) s θ ∗ ( x t , t ) \begin{align} \hat{\boldsymbol{x}}_{0}:=\mathbb{E}\left[\boldsymbol{x}_{0} \mid \boldsymbol{x}_{t}\right]&=\frac{1}{\sqrt{\bar{\alpha}(t)}}\left(\boldsymbol{x}_{t}+(1-\bar{\alpha}(t)) \nabla_{\boldsymbol{x}_{t}} \log p_{t}\left(\boldsymbol{x}_{t}\right)\right) \\ &\approx \frac{1}{\sqrt{\bar{\alpha}(t)}}(\boldsymbol{x}_{t}+(1-\bar{\alpha}(t))s_{\theta^{*}}(\boldsymbol{x}_{t},t) \end{align} x^0:=E[x0xt]=αˉ(t) 1(xt+(1αˉ(t))xtlogpt(xt))αˉ(t) 1(xt+(1αˉ(t))sθ(xt,t)
对于不同噪声的任务具有不同的测量模型 p ( y ∣ x 0 ) p(y|x_{0}) p(yx0)。逆问题中最常见的两个情况是高斯噪声和泊松噪声。在这里,我们探讨了如何适应上述扩散后验采样,高斯噪声的似然函数为:
p ( y ∣ x 0 ) = 1 ( 2 π ) n σ 2 n exp ⁡ [ − ∥ y − A ( x 0 ) ∥ 2 2 2 σ 2 ] \begin{equation} p\left(\boldsymbol{y} \mid \boldsymbol{x}_{0}\right)=\frac{1}{\sqrt{(2 \pi)^{n} \sigma^{2 n}}} \exp \left[-\frac{\left\|\boldsymbol{y}-\mathcal{A}\left(\boldsymbol{x}_{0}\right)\right\|_{2}^{2}}{2 \sigma^{2}}\right] \end{equation} p(yx0)=(2π)nσ2n 1exp[2σ2yA(x0)22]
对其取log再求梯度得:
∇ x t log ⁡ p ( y ∣ x t ) ≃ − 1 σ 2 ∇ x t ∥ y − A ( x ^ 0 ( x t ) ) ∥ 2 2 \begin{equation} \nabla_{\boldsymbol{x}_{t}} \log p\left(\boldsymbol{y} \mid \boldsymbol{x}_{t}\right) \simeq-\frac{1}{\sigma^{2}} \nabla_{\boldsymbol{x}_{t}}\left\|\boldsymbol{y}-\mathcal{A}\left(\hat{\boldsymbol{x}}_{0}\left(\boldsymbol{x}_{t}\right)\right)\right\|_{2}^{2} \end{equation} xtlogp(yxt)σ21xtyA(x^0(xt))22
算法流程如下,添加Possion噪声的过程基于同样的原理。说实话这种思想已经有很多了,比如Guided Diffusion/Diffusion Models Beat GANs on Image Synthesis (Paper reading)ADIR: Adaptive Diffusion for Image Reconstruction (Paper reading)这两篇文章都是这种思想,值得注意的是本文是以VP-SDE的角度。所以和这两篇文章仅仅差了一个负号。
在这里插入图片描述

实验

在两个具有不同特征FFHQ 256×256和Imagenet 256×256的数据集上测试了我们的实验,每个数据集有1k个验证图像。ImageNet 的预训练扩散模型取自Guided Diffusion,并直接用于针对特定任务进行微调。FFHQ 的扩散模型使用 49k 训练数据(排除 1k 验证集)从头开始训练 1M 步。所有图像都归一化为 [0, 1] 范围。前向测量算子指定如下:(i)对于框类型修复,我们在 屏蔽了 128×128 框区域。 对于随机类型,我们屏蔽了总像素的 92%(所有 RGB 通道)。(ii) 对于超分辨率,执行双三次下采样。(iii) 高斯模糊核的大小为 61×61,标准差为 3.0,运动模糊是使用代码 6 随机生成的,大小为 61 × 61,强度值为 0.5。内核与地面实况图像进行卷积以产生测量。(iv) 对于相位检索,对图像进行傅里叶变换,只取傅里叶幅值作为测量值。所有高斯噪声都被添加到σ = 0.05的测量域中。泊松噪声水平设置为λ = 1.0。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值