李宏毅扩散模型(五)

2025年3月3日 452点热度

扩散过程

image-20250303114657058

对于扩散过程中的连续两步,$x_{t}$由$x_{t-1}$和高斯噪声加权求和得到。

image-20250303114820262

在每一步的扩散过程中,随机采样的高斯噪声想互独立。

image-20250303114858780

将两个扩散步骤合并后,由于高斯函数的性质,高斯噪声经过加权求和后仍然是高斯噪声。

image-20250303115037667

所以最终扩散过程
$$
x_t =(\sqrt{1-\beta_{1}}...\sqrt{1-\beta_{t}})x_0+\sqrt{1-(1-\beta_{1})\ldots(1-\beta_{t})} \ \epsilon ,\quad
\epsilon \sim\mathcal{N}(\mathbf{0},I)
$$
将常量$\beta$用$\alpha$替换
$$
x_t =(\sqrt{\bar \alpha_{t}})x_0+\sqrt{1-\bar \alpha_{t}} \ \epsilon ,\quad
\epsilon \sim\mathcal{N}(\mathbf{0},I)
$$

loss计算

image-20250303115350175

下界经过数学推导最终可以拆成三项。

image-20250303115419920

其中第二项$KL\left(q(x_{T}|x_{0})||P(x_{T})\right)$为扩散过程中样本与高斯噪声采样的KL散度,与去噪过程中神经网络的参数无关。

第三项为两个分布的KL散度的多项和,和神经网络参数有关,需要计算。

image-20250303134758144

对于第一个分布$q(x_{t-1}|x_{t},x_{0})$,假设已知$x_0$和$x_{t},$求取$x_{t-1}$。化简过程如上。分子分母三个分布均是高斯分布。

image-20250303121809290

三个高斯分布计算结果如下。

image-20250303121845702

第一个分布$q(x_{t-1}|x_{t},x_{0})$均值和方差如上。由于$\alpha$ 和 $\beta $人工定义,所以均值和方差都是定值。

image-20250303122036794

所以两个分布的KL散度不需要确切计算。为了让两个分布接近,只需要计算两个高斯分布均值的距离。

image-20250303122134393

对于去噪过程,根据定义,输入$x_t$,输出为高斯分布均值。随着神经网络持续训练,两个分布均值越来越接近。

image-20250303122336521

image-20250303122359816

对于训练过程中loss计算,输入$x_t$和时间步$t$,经过去噪网络得出高斯分布均值,与已知高斯分布均值进行比较。

image-20250303122517177

去噪过程

image-20250303122640062

对于整个去噪过程,输入$x_t$和时间步$t$ 预测噪声分布,计算得出下一步去噪结果。

xxs9331

这个人很懒,什么都没留下

文章评论