探究扩散模型的前向扩散过程权重系数设计
创始人
2024-06-03 16:16:21
0

文章目录

      • 前言
      • 分析

前言

目前常见的前向扩散过程的公式表达如下:
xt=1−αt⋅xt−1+αt⋅ϵtx_t=\sqrt{1-\alpha_t}\cdot x_{t-1}+\sqrt{\alpha_t}\cdot\epsilon_txt​=1−αt​​⋅xt−1​+αt​​⋅ϵt​前段时间投稿一篇有关扩散模型的文章,被审稿人问道为什么要采用这种 1−αt+α\sqrt{1-\alpha_t}+\sqrt{\alpha}1−αt​​+α​ 的加权设计?遂前去搜寻资料和博客,大多数回答都讲是为了最终能够采样到高斯分布,但都不具体说原因。总不能这样给审稿人回复吧,怕不是分分钟被拒。因此,没有办法,只能自己研究一下原因。

先声明:奈何本人能力有限,这种方法只能算是一种探究,欢迎大家指正和交流。

分析

这里我不去关注使用这样加权的原因,而是关注使用不同加权方式分别会产生什么效果。首先我们假设存在 ata_tat​ 和 btb_tbt​ 满足:
xt=atxt−1+btϵt(1)x_t=a_t x_{t-1}+b_t \epsilon_t \tag{1}xt​=at​xt−1​+bt​ϵt​(1)
对上式按照递推的方式逐步展开得:
xt=atxt−1+btϵt=at(at−1xt−2+bt−1ϵt−1)+btϵt=at[at−1(at−2xt−3+bt−2ϵt−2)+bt−1ϵt−1]+btϵt=⋯⋯=(atat−1⋯a1)x0+(atat−1⋯a2)b1ϵ1+(atat−1⋯a3)b2ϵ2+⋯+atbt−1ϵt−1+btϵt\begin{equation*} \begin{aligned} x_t & = a_t x_{t-1}+ b_t \epsilon_t \\ ~ & = a_t \left(a_{t-1} x_{t-2}+b_{t-1} \epsilon_{t-1}\right)+ b_t \epsilon_t \\ ~ & = a_t\left[ a_{t-1} \left(a_{t-2} x_{t-3}+b_{t-2} \epsilon_{t-2}\right)+b_{t-1\epsilon_{t-1}}\right] + b_t\epsilon_t \\ ~ & = \cdots\cdots \\ ~ & = \left(a_ta_{t-1}\cdots a_1 \right)x_0+\left(a_ta_{t-1}\cdots a_2\right)b_1\epsilon_1+\left(a_ta_{t-1}\cdots a_3\right)b_2\epsilon_2+\cdots+a_tb_{t-1}\epsilon_{t-1}+b_t\epsilon_t \end{aligned} \end{equation*} xt​    ​=at​xt−1​+bt​ϵt​=at​(at−1​xt−2​+bt−1​ϵt−1​)+bt​ϵt​=at​[at−1​(at−2​xt−3​+bt−2​ϵt−2​)+bt−1ϵt−1​​]+bt​ϵt​=⋯⋯=(at​at−1​⋯a1​)x0​+(at​at−1​⋯a2​)b1​ϵ1​+(at​at−1​⋯a3​)b2​ϵ2​+⋯+at​bt−1​ϵt−1​+bt​ϵt​​​由于高斯噪声的叠加性质,当p∼N(0,σ12)p\sim \mathcal{N}(0, \sigma_1^2)p∼N(0,σ12​),q∼N(0,σ22)q\sim \mathcal{N}(0, \sigma_2^2)q∼N(0,σ22​)时,p+q∼N(0,σ12+σ22)p+q\sim \mathcal{N}(0, \sigma_1^2+\sigma_2^2)p+q∼N(0,σ12​+σ22​),而上式中的ϵi\epsilon_iϵi​均是标准高斯分布,即ϵi∼N(0,I)\epsilon_i\sim \mathcal{N}(0, \textbf{I})ϵi​∼N(0,I)。因此上式可以进一步简化为
xt=(atat−1⋯a1)x0+(atat−1⋯a2)b1ϵ1+(atat−1⋯a3)b2ϵ2+⋯+atbt−1ϵt−1+btϵt=(atat−1⋯a1)x0+(atat−1⋯a2)2b12+⋯+at2bt−12+bt2ϵ\begin{equation*} \begin{aligned} x_t & = \left(a_ta_{t-1}\cdots a_1 \right)x_0+\left(a_ta_{t-1}\cdots a_2\right)b_1\epsilon_1+\left(a_ta_{t-1}\cdots a_3\right)b_2\epsilon_2+\cdots+a_tb_{t-1}\epsilon_{t-1}+b_t\epsilon_t \\ ~ & = \left(a_ta_{t-1}\cdots a_1 \right)x_0 + \sqrt{\left(a_ta_{t-1}\cdots a_2\right)^2b_1^2+\cdots+a_t^2b_{t-1}^2+b_t^2}\epsilon\\ \end{aligned} \end{equation*} xt​ ​=(at​at−1​⋯a1​)x0​+(at​at−1​⋯a2​)b1​ϵ1​+(at​at−1​⋯a3​)b2​ϵ2​+⋯+at​bt−1​ϵt−1​+bt​ϵt​=(at​at−1​⋯a1​)x0​+(at​at−1​⋯a2​)2b12​+⋯+at2​bt−12​+bt2​​ϵ​​其中,ϵ∼N(0,I)\epsilon\sim\mathcal{N}(0, \textbf{I})ϵ∼N(0,I),根据扩散模型的参数设置可知 0 α‾t=atat−1⋯a1≈0\overline{\alpha}_t=a_ta_{t-1}\cdots a_1\approx 0 αt​=at​at−1​⋯a1​≈0,因此前向扩散过程能否收敛到一个标准高斯分布的判断就是噪声的系数能否收敛到1。对此,我这里分别判断三种加权方式下的收敛情况:

  1. at+bt=1a_t+b_t=1at​+bt​=1;
  2. at2+bt2=1a_t^2+b_t^2=1at2​+bt2​=1;
  3. at=bta_t=b_tat​=bt​。

这里取bt∈(0,1)b_t\in(0, 1)bt​∈(0,1),实际上是与原扩散模型保持一致,bt∈(0.0001,0.02)b_t\in(0.0001, 0.02)bt​∈(0.0001,0.02)。对于第一种情况,可以发现其在不同扩散步长时的收敛情况如图:
在这里插入图片描述
在这里插入图片描述
显然不论扩散步长如何设置,最终的噪声系数还是无法收敛到1,即前向扩散过程无法收敛为一个标准的高斯噪声分布。对于第二种加权方式,其在不同扩散步长时的收敛情况如图:
在这里插入图片描述
在这里插入图片描述
对于第二种加权方式,噪声分布的系数最终会收敛到1,而且过程是平稳的,时间无关的。同时,在选择第二种加权方式的时候,我们可以对噪声的系数表达式进行简化:
(atat−1⋯a2)2b12+⋯+at2bt−12+bt2=at2{at−12[at−22⋯⋯+bt−22]+bt−12}+bt2=at2{at−12[at−22⋯⋯+bt−22]+bt−12}+bt2=at2{at−12[at−22⋯⋯+bt−22]+bt−12}+bt2=at2{at−12[at−22⋯<1−a12a22>⋯+bt−22]+bt−12}+bt2⋯⋯=1−at2at−12at−22⋯a12\begin{equation*} \begin{aligned} ~ & \sqrt{\left(a_ta_{t-1}\cdots a_2\right)^2b_1^2+\cdots+a_t^2b_{t-1}^2+b_t^2}\\ = & \sqrt{a_t^2\{a_{t-1}^2 \left[a_{t-2}^2\cdots\cdots+b_{t-2}^2 \right]+b_{t-1}^2\}+b_t^2} \\ = & \sqrt{a_t^2\{a_{t-1}^2 \left[a_{t-2}^2\cdots\cdots+b_{t-2}^2 \right]+b_{t-1}^2\}+b_t^2} \\ = & \sqrt{a_t^2\{a_{t-1}^2 \left[a_{t-2}^2\cdots\cdots+b_{t-2}^2 \right]+b_{t-1}^2\}+b_t^2} \\ = & \sqrt{a_t^2\{a_{t-1}^2 \left[a_{t-2}^2\cdots<1-a_1^2a_2^2>\cdots+b_{t-2}^2 \right]+b_{t-1}^2\}+b_t^2} \\ ~ & \cdots\cdots \\ = & \sqrt{1-a_t^2a_{t-1}^2a_{t-2}^2\cdots a_1^2} \\ \end{aligned} \end{equation*}  ==== =​(at​at−1​⋯a2​)2b12​+⋯+at2​bt−12​+bt2​​at2​{at−12​[at−22​⋯⋯+bt−22​]+bt−12​}+bt2​​at2​{at−12​[at−22​⋯⋯+bt−22​]+bt−12​}+bt2​​at2​{at−12​[at−22​⋯⋯+bt−22​]+bt−12​}+bt2​​at2​{at−12​[at−22​⋯<1−a12​a22​>⋯+bt−22​]+bt−12​}+bt2​​⋯⋯1−at2​at−12​at−22​⋯a12​​​​显然这种加权方式所得的结果也更加优雅,从表达式可以直接看出其最终会收敛到1。对于第三种加权方式,不同扩散步长时的收敛情况如图:
在这里插入图片描述
在这里插入图片描述
很明显,这种加权方式是无法让噪声系数收敛到1的,也就无法令前向扩散过程收敛为一个标注的高斯分布。以下是我们做该部分仿真是用的 Python 代码:

import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimSun'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题num = 100000b = np.linspace(0.0001, 0.02, num, dtype=np.float64)
a = np.sqrt(1 - np.square(b))
# a = b
# a = 1 - b
c = []
result = 0
for i in range(num):if i == 0:result = np.square(b[0])c.append(np.sqrt(result))else:result = np.square(a[i]) * result + np.square(b[i])c.append(np.sqrt(result))plt.figure()
plt.plot(range(num), c)
plt.xlabel('扩散步数')
plt.ylabel('噪声系数值')
plt.show()

虽然我们上边的方法从结果导向地解释了使用这种加权方式的合理性,但其具体的原因没有分析。而我作为一个初学者,也存在几个问题仍然存在疑惑,希望能与大家交流。

  • 为什么一定要前向扩散到一个标准高斯分布?
  • 为什么一定要加标准高斯噪声?

相关内容

热门资讯

企业开业主持词 企业开业主持词  主持词是主持人在节目进行过程中用于串联节目的串联词。在当下这个社会中,主持人在各种...
欢送退休职工致辞 欢送退休职工致辞(通用5篇)  在日常学习、工作和生活中,要用到致辞的情况还是蛮多的,致辞要注意人物...
演出节目串词2文 演出节目串词2文(男)尊敬的领导、老师、亲爱的同学们。 (合)大家好。 (女)当鲜红的太阳跃上地平线...
庆祝百岁老人生日的致辞 庆祝百岁老人生日的致辞范文(精选5篇)  在生活、工作和学习中,大家总免不了要接触或使用致辞吧,致辞...
《夏有乔木雅望天堂》的经典台... 《夏有乔木雅望天堂》的经典台词  《夏有乔木雅望天堂》经典台词一  1. 一个等了,却等得太早,一个...
中秋节的主持词 中秋节的主持词  主持人在台上表演的灵魂就表现在主持词中。在当下的中国社会,很多场合都需要主持人活跃...
无间道台词 无间道台词  说好了三年,三年之后又三年,三年之后又三年,都快十年了,老大!  出来跑,迟早要还的。...
六十岁生日宴会致辞 六十岁生日宴会致辞(通用10篇)  在学习、工作或生活中,要用到致辞的情况还是蛮多的,致辞讲求条理性...
终极三国的经典台词 终极三国的经典台词  1.如此如此,这般这般~  2.我姓刘名备,字玄德,是中山靖王的儿子,因为家道...
团代会主持词 团代会主持词  利用在中国拥有几千年文化的诗词能够有效提高主持词的感染力。现今社会在不断向前发展,主...
《剑雨》经典台词盘点 《剑雨》经典台词盘点  1、生未必乐,死未必苦。  2、未来已成现在,现在已成过去,随心而去。  3...
幼儿园园长开园致辞 幼儿园园长开园致辞  在日常学习、工作和生活中,大家都不可避免地会接触到致辞吧,致辞是指在仪式上所讲...
辩论赛主持人主持词开场白 辩论赛主持人主持词开场白  辩论赛怎么能没有我们主持人呢?下面是小编搜集整理的辩论赛主持人主持词开场...
李白凤求凰特殊台词 李白凤求凰特殊台词  在王者荣耀中每个英雄人物都有台词,那么李白凤求凰特殊台词是什么呢?以下是小编整...
学生读书交流会主持词 学生读书交流会主持词  主持词要把握好吸引观众、导入主题、创设情境等环节以吸引观众。在当下的中国社会...
晚会的闭幕词 晚会的闭幕词(精选16篇)  主持词是主持活动的必备稿子,是活跃气氛,引导活动进行的存在,下面是小编...
阿甘正传电影经典台词 阿甘正传电影经典台词大全  《阿甘正传》给我们展现了一个虽然智商只有75,却是忠诚、守信、执着、友善...
致青春经典台词 致青春经典台词  1、青春是有限的,不能在犹豫和观望中度过。  2、很多东西就像气球一样,看上去很美...
追悼会主持词 追悼会主持词  什么是追悼会  追悼会,为悼念死者而召开的会议。有些在死者遗体所在地举行,有些在殡仪...
幼儿园大班新年联欢会主持词   主持人:左XX  开场:  左:亲爱的老师、同学们:  合:大家好!  彭:20XX年马上就要过...