扩散模型(Diffusion Models)
规定一个“把图像逐步加噪”的前向过程q再学习一个“把噪声逐步还原成图像”的逆向过程pθ。前向过程q是固定的不训练。前向过程pθ是固定的不训练。因此扩散模型真正学的是一个逆向链。前向过程前向扩散过程也叫加噪过程前向过程的条件联合分布q(x1:T∣x0)意思是给定一张干净图像 x0如果按照规定的加噪规则一步一步走那么整条加噪路径出现的概率是多少。意思是给定 xt−1下一步 xt 是在“缩小一点原信号”的同时再加一层高斯噪声得到的。把这个高斯写成采样形式会更直观第一个动作是保留上一时刻的内容但乘了一个小于 1 的系数因此图像中的原始信号会逐步衰减。第二个动作是加入新的高斯噪声强度由 βt 控制。这里为什么写成乘积是因为前向过程被假设成一个马尔可夫链每一步只依赖前一步。也就是因为一旦有马尔可夫结构整条联合链就可以分解成相邻转移的乘积。逆向过程扩散模型Diffusion Models是一类隐变量模型由参数 θ 表示其形式为x0原始数据比如图像、实体表示x0:T表示一整条序列(x0,x1,x2,...,xT)。x1,…,xT 是输入图像 x0 的逐步加噪版本pθ(x0:T)模型定义的联合概率分布也就是模型认为 “从最初图像 x0 到所有中间噪声状态 x1,…,xT 同时出现”的概率密度。是我们最终关心的图像分布。因为生成任务最后只要生成一张图像 x0不需要把整条中间轨迹都展示出来所以要把中间变量 x1,…,xT全部边缘化掉也就是积分掉。对所有中间变量积分消掉它们。其中 x1,…,xT 是输入图像 x0 的逐步加噪版本我们通过对所有中间变量 x1∼xT 积分得到数据 x0 的概率分布。注意所有变量包括噪声变量与原图像的维度是相同的。这个计算的过程叫做前向过程diffusion process它被建模为一个马尔可夫链逐步加入高斯噪声。就是把所有可能通向这个 x0 的路径的概率密度全部加总起来。因为这些变量是连续的所以这里不是求和而是积分。扩散模型并不是“直接”生成 x0。它实际上描述的是一条完整的生成链。也就是说模型更本质地定义了然后你把中间那些潜变量都积分掉最终得到对真实图像的分布。理解马尔可夫性质假设只有三个变量 x0,x1,x2①任何联合分布都成立的链式分解。x0,x1,x2的联合分布按概率链式法则写成然后对 x1,x2 做边缘化把联合分布里不关心的变量 x1,x2 积分掉只留下 x0 的分布。得到也就是②额外加入马尔可夫结构之后的简化。若进一步假设逆向过程满足马尔可夫性质 则有因此从而所以逆向过程满足马尔可夫性质有什么用如果逆向过程满足马尔可夫性质那么联合分布就能写成它把一个复杂的高维联合分布拆成了一串局部条件分布。没有马尔可夫性质时逆向一步可能要写成意思是要生成 xt−1不仅要看当前的 xt还要看后面所有更噪的状态。这会让模型非常复杂因为每一步都依赖整段未来轨迹。