深入理解Conditional Diffusion Models:解读《On Conditioning the Input Noise for Controlled Image Generation》

On Conditioning the Input Noise for Controlled Image Generation with Diffusion Models
用扩散模型调节输入噪声以生成受控图像
paper:https://arxiv.org/abs/2205.03859

用输入噪声引导条件生成

在这里插入图片描述
Figure 2. Visualization of Diffusion Model generation with Random Noise (Row-1) and Ours (Row-2). Note that our noise includes salient regions than being completely random as Row-1.

与扩散模型中使用的完全随机噪声相比,本文使用关注代表物体的显著区域的噪声,经过修改的噪音捕捉到了关注物体所在区域的显著性和方向。当这种噪声被提供给扩散模型时,它生成的图像与噪声具有相同的定位和方向,从而通过调节噪声来调节输出。

输入噪声的要求

1、突出的区域。噪声应关注显著区域,并指导生成图像中的定位/方向。

2、相同的输入值范围。由于不需要对扩散模型进行再训练,因此需要寻找一个与扩散模型可理解的输入空间相同的噪声。扩散模型从随机高斯噪声N(0;I),随后使用公式 x t − 1 = 1 α t ( x t − 1 − α t 1 − α t ‾ ϵ θ ( x t , t ) ) + σ θ z , z ∼ N ( 0 , I ) x_{t-1}=\frac{1}{\sqrt{\alpha_{t}}}\left(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\overline{\alpha_{t}}}} \epsilon_{\theta}\left(x_{t}, t\right)\right)+\sigma_{\theta} z, z \sim N(0, \mathbf{I}) xt1=αt 1(xt1αt 1αtϵθ(xt,t))+σθz,zN(0,I)进行更新。

反向梯度(IG)生成噪声

反向梯度Inverting Gradients(IG)来获得具有上述特征的噪声,IG从一个随机高斯噪声开始,并对其进行迭代更新,重新生成真实图像。中间图像x_T每一步的图像空间更新,使x_T的梯度与期望的真实图像I_R的梯度相似。优化目标为:

arg ⁡ min ⁡ 1 x − ⟨ ∇ θ L θ ( x , y ) , ∇ θ L θ ( ( x ∗ , y ) ⟩ ∥ ∇ θ L θ ( ( x , y ) ∥ ∥ ∇ θ L θ ( ( x ∗ , y ) ∥ \underset{x}{\arg \min 1}-\frac{\left\langle\nabla_{\theta} \mathcal{L}_{\theta}(x, y), \nabla_{\theta} \mathcal{L}_{\theta}\left(\left(x^{*}, y\right)\right\rangle\right.}{\| \nabla_{\theta} \mathcal{L}_{\theta}\left(( x , y ) \| \| \nabla _ { \theta } \mathcal { L } _ { \theta } \left(\left(x^{*}, y\right) \|\right.\right.} xargmin1θLθ((x,y)∥∥θLθ((x,y)θLθ(x,y),θLθ((x,y)

其中x是需要重新创建的原始实像,y是真实的类别, L θ ( x ∗ , y ) \mathcal{L}_{\theta}\left(x^{*}, y\right) Lθ(x,y)是是在参数θ下网络预测x的损失。

找到一个图像x,其梯度与我们想要的图像x*的梯度具有最大可能的余弦相似度。换句话说,我们按照上式中的优化问题依次更新中间 x T x_T xT。使用输入噪声仅仅用于定位,所以选择中间步骤的噪声样本,而不是最终生成的图像。

反向梯度(IG)的作用

1、IG负责主要区域的维护。IG通过比较生成的图像和期望的图像的梯度来更新噪声。由于梯度最有可能解释显著区域,我们可以固有地认为,这个比较步骤主要涉及显著区域周围的更新噪声。

2、IG有类似的输入值范围。IG以一个随机高斯函数N(0;I),并更新生成,因此直观上,这与公式 x t − 1 = 1 α t ( x t − 1 − α t 1 − α t ‾ ϵ θ ( x t , t ) ) + σ θ z , z ∼ N ( 0 , I ) x_{t-1}=\frac{1}{\sqrt{\alpha_{t}}}\left(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\overline{\alpha_{t}}}} \epsilon_{\theta}\left(x_{t}, t\right)\right)+\sigma_{\theta} z, z \sim N(0, \mathbf{I}) xt1=αt 1(xt1αt 1αtϵθ(xt,t))+σθz,zN(0,I)有相似之处,都是基于优化更新随机噪声。因此我们假设中间IG输出是扩散模型的一个可理解的输入。
在这里插入图片描述
刚写的时候,我的标题是深入理解Conditional Diffusion Models:解读《On Conditioning the Input Noise for Controlled Image Generation with Diffusion Models》。但是读完之后有种“德不配位”的感觉,不过既然已经写完,标题就先不改了。

扫描二维码关注公众号,回复: 15362286 查看本文章

更改输入噪声来引导生成,这是一种很常见的做法,我在博客《条件DDPM:Diffusion model的第三个巅峰之作》当中甚至把这种方法归结为一种“流水线”式的创新,我认为本论文的方法也算是一种很容易想到的创新思路。
在noise中添加一定的condition信息,确实会影响生成效果,起到影响作用。我曾经做过类似的实验,没有flow的方式好,也远达不到DDIM的noise control效果,我在博客《如何用Diffusion models做interpolation插值任务?——原理解析和代码实战_沉迷单车的追风少年的博客-CSDN博客》做过类似实验。
这篇文章最大的创新在于 使用 x T x_T xT 的梯度与期望的真实图像 I R I_R IR 的梯度相似 的方式来约束生成,用梯度的方式在《Diffusion Models Beat GANs on Image Synthesis》文章里面有用分类器的梯度来约束生成。这篇文章但是没有给出严谨的数学推导、也没有更多的对比实验(例如用log函数、 x T x_T xT I R I_R IR等等),这方面值得我们深入探索。

猜你喜欢

转载自blog.csdn.net/weixin_43135178/article/details/127989950
今日推荐