Diffusion models 终极流程

在这里插入图片描述

这张图片展示了两个算法,分别是用于训练和采样的。以下是这两个算法的解释:

算法1:训练

这个算法描述了如何训练模型参数 θ \theta θ

  1. repeat: 训练过程是一个迭代的过程,重复以下步骤直到收敛。
  2. x 0 ∼ q ( x 0 ) x_0 \sim q(x_0) x0q(x0): 从数据分布 q ( x 0 ) q(x_0) q(x0)中采样一个样本 x 0 x_0 x0
  3. t ∼ Uniform ( { 1 , … , T } ) t \sim \text{Uniform}(\{1, \ldots, T\}) tUniform({1,,T}): 从均匀分布 { 1 , … , T } \{1, \ldots, T\} {1,,T}中随机选择一个时间步 t t t
  4. ϵ ∼ N ( 0 , I ) \epsilon \sim \mathcal{N}(0, I) ϵN(0,I): 从标准正态分布 N ( 0 , I ) \mathcal{N}(0, I) N(0,I)中采样噪声 ϵ \epsilon ϵ
  5. 梯度下降: 执行一次梯度下降步骤,优化目标是 ∥ ϵ − ϵ θ ( α ˉ t x 0 + 1 − α ˉ t ϵ , t ) ∥ 2 \|\epsilon - \epsilon_\theta(\sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}\epsilon, t)\|^2 ϵϵθ(αˉt x0+1αˉt ϵ,t)2
  6. 直到收敛: 重复上述步骤直到模型收敛。

算法2:采样

这个算法描述了如何从训练好的模型中生成样本。

  1. x T ∼ N ( 0 , I ) x_T \sim \mathcal{N}(0, I) xTN(0,I): 从标准正态分布 N ( 0 , I ) \mathcal{N}(0, I) N(0,I)中采样初始样本 x T x_T xT
  2. for t = T , … , 1 t = T, \ldots, 1 t=T,,1do: 从 T T T 1 1 1依次执行以下步骤。
  3. 采样 z z z: 如果 t > 1 t > 1 t>1,从标准正态分布 N ( 0 , I ) \mathcal{N}(0, I) N(0,I)中采样噪声 z z z;否则 z = 0 z = 0 z=0
  4. 更新 x t − 1 x_{t-1} xt1: 使用公式 x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ( x t , t ) ) + σ t z x_{t-1} = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}} \epsilon_\theta(x_t, t) \right) + \sigma_t z xt1=αt 1(xt1αˉt 1αtϵθ(xt,t))+σtz更新样本。
  5. end for: 循环结束。
  6. return x 0 x_0 x0: 返回生成的样本 x 0 x_0 x0

这两个算法分别用于训练模型和从模型中生成样本。训练过程通过最小化噪声预测误差来优化模型参数,而采样过程则使用优化后的模型逐步从噪声生成样本。

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值