扩散模型:原理、训练与应用
1. 概述
扩散模型是一种概率模型,它定义了从隐变量到观测数据的非线性映射,且隐变量和观测数据具有相同的维度。与归一化流类似,它能定义数据的概率分布;和变分自编码器一样,它通过编码器映射到隐变量,并使用下界来近似数据似然。不过,扩散模型的编码器是预先确定的,目标是学习一个解码器,该解码器是编码器过程的逆过程,可用于生成样本。扩散模型易于训练,能生成质量极高的样本,其逼真度超过生成对抗网络(GANs)生成的样本。
扩散模型由编码器和解码器组成:
- 编码器 :将数据样本 $x$ 通过一系列中间隐变量 $z_1 \cdots z_T$ 进行映射。它是预先指定的,会逐渐将输入与白噪声样本混合,经过足够多的步骤后,最终隐变量 $z_T$ 的条件分布 $q(z_T|x)$ 和边际分布 $q(z_T)$ 都变为标准正态分布。
- 解码器 :反转编码器的过程,从 $z_T$ 开始,通过 $z_{T - 1}, \cdots, z_1$ 映射回,最终重新创建数据点 $x$。解码器中,一系列网络被训练用于在相邻的隐变量对 $z_t$ 和 $z_{t - 1}$ 之间进行反向映射,损失函数促使每个网络反转对应的编码器步骤,逐步从表示中去除噪声,直到得到逼真的数据示例。
生成新数据示例 $x$ 的过程为:从 $q(z_T)$ 中抽取一个样本,然后将其通过解码器。
2. 编码器(前向过程)
2.1 前向过程公式
扩散或前向过程将数据示例 $x$ 通过一系列与 $x$ 大小相同的中间变量 $z_1, z_2, \cd
订阅专栏 解锁全文
89



被折叠的 条评论
为什么被折叠?



