Diffusion
CLIP + VQGN + Diffusion = DALLE2
扩散模型,基于分布的思想
基于规律进行扩散过程
GAN
生成器判别器迭代逼近生成目标
表现博弈对抗生成过程
cons
训练多个网络,收敛难度较大
损失难以观测
容易学习偏见(骗过判别器
多样性降低
Diffusion
DDPM 原文
Source目标存在稳定分布
通过迭代加噪音实现扩散,击碎分布
网络训练去噪过程
前向扩散 + 反向还原 = Diffusion模型
基于时刻进行迭代
(噪声作为标签)
加噪过程
通过
(串行计算墨迹难以训练,前向过程干就完事了)
设计
$$xt= \sqrt { a { t } a { t - 1 } } x { t - 2 } + ( \sqrt { a { t } ( 1 - \alpha { t - 1 } ) } z { 2 } + \sqrt { 1 - \alpha { t } } z { 1 } )= \sqrt { a { t } a { t - 1 } } x { t - 2 } + \sqrt { 1 - \alpha { t } \alpha { t - 1 } } z _ { 2 }$$
依据高斯分布乘以系数等于重采样改变方差的规则,对高斯噪声项进行化简
可得快速迭代公式有
其中
去噪过程
构建一个分布的还原思想
贝叶斯公式,实现逆过程
$$q ( x { t - 1 } | x { t } , x { 0 } ) = q ( x { t } | x { t - 1} , x { 0 } ) \frac { q ( x { t - 1 } | x { 0 } ) } { q ( x { t } | x { 0 } ) }$$
已知加噪的迭代方法
又已知
有概率项服从不同正态分布
$$\begin{array}{lll}
q ( x _ { t } | x _ { t - 1} , x _ { 0 } )
& \sqrt{\bar\alpha_{t-1}}x_0 + \sqrt{1-\bar\alpha_{t-1}} z
& \sim\mathcal N(\sqrt{\bar\alpha_{t-1}}x_0, 1-\bar\alpha_{t-1}) \
q ( x _ { t - 1 } | x _ { 0 } )
& \sqrt{\bar\alpha_t}x_0 + \sqrt{1-\bar\alpha_t} z
& \sim\mathcal N(\sqrt{\bar\alpha_{t}}x_0, 1-\bar\alpha_{t})\
q ( x _ { t } | x _ { 0 } )
& \sqrt { \alpha _ { t } } x _ { t - 1 } + \sqrt { 1 - \alpha _ { t } } z
& \sim\mathcal N(\sqrt{\alpha_{t}}x_{t-1}, 1-\alpha_{t})\end{array}$$
由此,我们可得
的正态分布列
化简展开合并同类项,将需要计算的核心目标
整理得 $$=\exp(- \frac{1}{2}(
(\frac{\alpha _{t}}{\beta _{t}}+ \frac{1}{1- \bar{\alpha}_{t-1}})x_{t-1}^{2}
-(
\frac{2 \sqrt{\alpha _{t}}}{\beta _{t}}x_{t}
+ \frac{2 \sqrt{\bar\alpha_{t-1}}}{1- \bar{\alpha}_{t-1}}x_{0}
)x_{t-1}+C(x_{t},x_{0})))$$
又有正态分布的分解公式为
比较上下两式关系,可得均值与方差(求均值包含对
的估计)
由此,给定
而其中剩下最后一个关键量为噪声分布
噪声估计
由前向过程提供标签(以噪声的形式),在反向过程中依据标签预测
使用Unet结构和Transformer等进行噪声估计
训练流程
随机进行时刻扩散和计算,取随机噪声
学习模型
使用模型学习如何为网络添加噪声
采样流程
随机取出标准正态纯噪声
循环依据预测噪声和逆过程的迭代公式对上一时刻进行求解
$$x{t-1}= \frac{1}{\sqrt{\alpha {t}}}(x{t}- \frac{1- \alpha {t}}{\sqrt{1- \overline{\alpha}{t}}}\epsilon {\theta}(x{t},t))+ \sigma {t}z$$
(最后的
(重参数技巧,解决梯度不能反向传播)
另有
Comments NOTHING