diffusion model

论文原文

前言

参考:

什么是马尔科夫链?首先要有初始概率分布,还要有概率转移矩阵。
且要符合两个特性:

  1. 状态转移的概率不变
  2. 下一时刻状态仅取决于上一时刻状态(以及状态转移概率分布),即无记忆性

假设文中-王二狗在4月1日的初始概率分布为S1=[0.6, 0.2, 0.2],那么:

  • 4月2号的状态分布矩阵 S2 = S1 * P (俩矩阵相乘)。
  • 4月3号的状态分布矩阵 S3 = S2 * P (看见没,跟S1无关,只跟S2有关)。
  • 4月4号的状态分布矩阵 S4 = S3 * P (看见没,跟S1,S2无关,只跟S3有关)。
  • 4月n号的状态分布矩阵 Sn = Sn-1 * P (看见没,只跟它前面一个状态Sn-1有关)。

以此类推,我们能够一直推断 S n S_n Sn时刻的状态概率分布。

正态分布1

文中表示数据从t-1时刻转移到t时刻的状态转移概率分布时,用到的符号 N ( . . . ) N(...) N(...)表达正态分布,那么括号内的含义是什么?

概率中逗号分号和竖线提到

分号p(x; theta)表示待估参数(是固定的,只是当前未知),应该可以直接认为是p(x),加了;是为了说明这里有个theta的参数,p(x; theta)意思是随机变量X=x的概率

https://stats.stackexchange.com/questions/301382/what-is-the-semicolon-notation-in-joint-probability 也提到了


分号通常是用于分隔右侧的参数的。

所以,上文中分号的左侧 x t x_t xt是主体,右侧是参数,逗号是多个参数的分隔。这时你可能会问,为什么状态转移概率分布是一个正态分布?这个可以从正文解答。

正态分布2

高斯分布也可以用以下方式表达。这是函数的表达形式。

联合概率分布

概率论07 联合分布

相对于单一变量的概率分布,联合概率分布意思就是多个随机变量的概率分布。比如有两个变量x,y时,它们同时发生为某个值(或者范围)的概率分布,就是x与y的联合概率分布。

前向传播

重参数

重参数用于令随机采样过程可微,从而能用于梯度下降算法。通过重参数化,将高斯分布中的均值、方差变为参数,这样只需从标准高斯分布中采样数据,并能对均值、方差参数作梯度下降(标准高斯分布作为离散采样源,仍然无法作梯度下降),这样随机采样就是可训练的了。

盘点深度学习中的不可导操作(次梯度和重参数化)

那么在这种做法下,梯度时如何传递的呢?参考“Reparameterization” trick in Variational Autoencoders的图,大约如下, ϕ \phi ϕ x x x应该是高斯分布的均值和方差。在重参数化后,梯度可以沿着红色箭头流动,这样均值、方差参数都是可训练的了。

这些概念最初在VAE中提出,后在diffusion中继续使用

概率转移公式

仿照b站教学视频的叙事轨迹,我们推导前向传播(即扩散)过程中涉及的公式。在扩散过程中,我们不断向数据添加高斯噪声,使其逐渐变为纯噪声,如下图所示。

图片来自A Gentle Introduction to Dance Diffusion并作修改

t 0 t_0 t0时刻,图片原数据为 x 0 x_0 x0,在每个时刻向数据添加高斯噪声,公式如下:

x t = a t x t − 1 + 1 − α t z 1 x_t =\sqrt{a_t} x_{t-1}+\sqrt{1-\alpha_t} z_1 xt=at xt1+1αt z1
其中:

  • α t \alpha_t αt是权重, α t = 1 − β t \alpha_t=1-\beta_t αt=1βt,其中 β t \beta_t βt逐渐增大,论文中是从0.0001到0.002。这样的效果是,随着时间t增加,状态转移时原数据的影响会逐渐减少,噪声的影响会逐渐增大
  • 噪声z都从标准高斯分布采样而来,即 z 1 , z 2 , … ∼ N ( 0 , I ) ; z_1, z_2, \ldots \sim \mathcal{N}(0, \mathbf{I}) ; z1,z2,N(0,I);

接下来,通过逐步推导,令 x t x_t xt可以由 x 0 x_0 x0得到,具体推导过程如下,
x t = a t x t − 1 + 1 − α t z 1  where  z 1 , z 2 , … ∼ N ( 0 , I ) ; = a t ( a t − 1 x t − 2 + 1 − α t − 1 z 2 ) + 1 − α t z 1 代入① = a t a t − 1 x t − 2 + ( a t ( 1 − α t − 1 ) z 2 + 1 − α t z 1 ) 合并系数 = a t a t − 1 x t − 2 + 1 − α t α t − 1 z ˉ 2  where  z ˉ 2 ∼ N ( 0 , I ) ; 根据② = … 从 x t − 2 推广至 x 0 = α ˉ t x 0 + 1 − α ˉ t z ˉ t . \begin{aligned} x_t &=\sqrt{a_t} x_{t-1}+\sqrt{1-\alpha_t} z_1 \quad \text { where } \quad z_1, z_2, \ldots \sim \mathcal{N}(0, \mathbf{I}) ; \\ &=\sqrt{a_t}\left(\sqrt{a_{t-1}} x_{t-2}+\sqrt{1-\alpha_{t-1}} z_2\right)+\sqrt{1-\alpha_t} z_1 \quad \text 代入① \\ &=\sqrt{a_t a_{t-1}} x_{t-2}+\left(\sqrt{a_t\left(1-\alpha_{t-1}\right)} z_2+\sqrt{1-\alpha_t} z_1\right) \quad \text 合并系数 \\ &=\sqrt{a_t a_{t-1}} x_{t-2}+\sqrt{1-\alpha_t \alpha_{t-1}} \bar{z}_2 \quad \text { where } \quad \bar{z}_2 \sim \mathcal{N}(0, \mathbf{I}) ; \quad \text 根据② \\ &=\ldots \quad \text 从x_{t-2}推广至x_0 \\ &=\sqrt{\bar{\alpha}_t} x_0+\sqrt{1-\bar{\alpha}_t} \bar{z}_t . \end{aligned} xt=at xt1+1αt z1 where z1,z2,N(0,I);=at (at1 xt2+1αt1 z2)+1αt z1=atat1 xt2+(at(1αt1) z2+1αt z1)并系数=atat1 xt2+1αtαt1 zˉ2 where zˉ2N(0,I);=xt2推广至x0=αˉt x0+1αˉt zˉt.
其中 α ˉ t = ∏ i = 1 T α i \bar{\alpha}_t=\prod_{i=1}^T \alpha_i αˉt=i=1Tαi z ˉ 2 \bar{z}_2 zˉ2仍然是标准高斯分布。

然后,解析①和②两步的推导。
公式①
x t − 1 = a t − 1 x t − 2 + 1 − α t − 1 z 2 x_{t-1}=\sqrt{a_{t-1}} x_{t-2}+\sqrt{1-\alpha_{t-1}} z_2 xt1=at1 xt2+1αt1 z2

公式②
由于独立高斯分布可加性 N ( 0 ,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值