擴散模型(Diffusion Models)中的後驗分佈通常涉及對潛在變數的條件分佈進行推導。以下是推導擴散模型中後驗分佈方差的詳細步驟。我們假設擴散過程是逐步新增噪聲的過程,每一步根據高斯分佈進行取樣。擴散模型基於機率擴散過程,它將資料從原始分佈逐步轉換為噪聲分佈,然後再透過逆向過程從噪聲恢復出原始資料。這個過程涉及到兩個關鍵的引數:噪聲比例$\beta_{t}$和資料保留比例$\alpha_{t}$
背景
擴散模型通常定義一個正向過程,將資料樣本 $x_{0}$ 擴散成噪聲變數 $x_{T}$,過程為逐步新增高斯噪聲。反向過程則旨在從噪聲變數逐步恢復原始資料。在反向過程中,我們需要推導後驗分佈 $q(x_{t-1}|x_t,x_0)$ 以及它的方差。
正向擴散過程:
正向過程逐步對樣本 $x_{0}$ 新增噪聲:
$$q(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_tI)$$
其中,$\beta_{t}$ 是控制噪聲大小的引數,通常稱為“噪聲排程”。
後驗分佈:
我們關注後驗分佈 $q(x_{t-1}|x_t,x_0)$,即在已知 $x_{t}$ 和原始資料 $x_{0}$ 時,如何推斷 $x_{t-1}$。這個分佈可以透過貝葉斯公式進行推導:
$$q(x_{t-1}|x_t,x_0)\propto q(x_t|x_{t-1})q(x_{t-1}|x_0)$$
多條件貝葉斯定理:
貝葉斯公式實際上可以擴充套件到多個條件的情況。在擴散模型的推導中,我們引入了第三個變數 $x_{0}$,即模型的初始狀態。我們感興趣的是如何從當前時刻的狀態 $x_{t}$ 和初始狀態$x_{0}$ 中推斷上一時刻的狀態 $x_{t-1}$。這就涉及到多條件的情況。
對於多個條件,我們可以寫成條件機率形式:
$$P(A|B,C)=\frac{P(B|A,C)P(A|C)}{P(B|C)}$$
這個公式說明,在已知 和 C 的條件下推斷 A 的機率。這與貝葉斯定理的標準形式一致,只是引入了額外的條件項 C。
擴散模型中的多條件推導
在擴散模型中,我們關心的是如何從 $x_{t}$ 和 $x_{0}$ 推斷 $x_{t-1}$。所以,我們應用貝葉斯定理如下:
$$q(x_{t-1}|x_t,x_0)=\frac{q(x_t|x_{t-1},x_0)q(x_{t-1}|x_0)}{q(x_t|x_0)}$$
現在我們對每一項進行解釋:
- $q(x_{t-1}|x_t,x_0)$:這就是我們需要計算的後驗分佈,即在已知當前狀態 $x_{t}$ 和初始狀態 $x_{0}$ 的情況下,推斷上一時刻 $x_{t-1}$ 的機率。
- $q(x_t|x_{t-1},x_0)$:這是從 $x_{t-1}$ 生成 $x_{t}$ 的條件機率。在擴散模型中,由於過程是馬爾可夫鏈,$x_{t}$ 只依賴於 $x_{t-1}$,與 $x_{0}$ 條件獨立。因此,這個機率可以簡化為:
$$q(x_t|x_{t-1},x_0)=q(x_t|x_{t-1})$$
即當前時刻的狀態 $x_{t}$ 只依賴於上一時刻的狀態 $x_{t-1}$。
- $q(x_{t-1}|x_0)$:這是上一時刻 $x_{t-1}$ 在已知初始狀態 $x_{0}$ 的條件機率。這是正向擴散過程中產生的分佈,描述了從 $x_{0}$ 擴散到中間狀態 $x_{t-1}$ 的機率。
- $q(x_t|x_0)$:這是邊緣分佈,用來歸一化後驗分佈,確保總機率為 1。它表示在已知 $x_{0}$ 的條件下,當前時刻 $x_{t}$ 的機率。它的計算方式為:
$$q(x_t|x_0)=\int q(x_t|x_{t-1})q(x_{t-1}|x_0)dx_{t-1}$$
但因為我們通常只關心後驗分佈的相對大小,分母部分 $q(x_t|x_0)$ 可以視作常數,從而忽略。
擴散模型中的三個條件項
透過上述推導,我們可以看到貝葉斯公式從兩個條件項過渡到三個條件項的原因是:
- $q(x_{t-1}|x_t,x_0)$ 是我們需要的後驗分佈。
- $q(x_t|x_{t-1})$ 是正向擴散的轉移機率,表示從 $x_{t-1}$ 到 $x_{t}$的條件機率。
- $q(x_{t-1}|x_0)$ 是先驗分佈,表示從初始狀態 $x_{0}$到 $x_{t-1}$ 的機率。
這個公式反映了透過初始狀態 $x_{0}$ 和當前狀態 $x_{t}$,來推斷上一時刻 $x_{t-1}$ 的機率。
後驗分佈透過貝葉斯公式推導的全部步驟
後驗分佈形式為:
$$q(x_{t-1}|x_t,x_0)\propto q(x_t|x_{t-1})q(x_{t-1}|x_0)$$
-
$q(x_t|x_{t-1})$ 是正向擴散過程的條件分佈(從$x_{t-1}$ 到 $x_{t}$ 的轉移分佈),形式為:
$$q(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_tI)$$
這裡 $\beta_{t}$ 是時間步 t 的噪聲強度。
-
$q(x_{t-1}|x_0)$ 是先驗分佈,即在給定初始資料 $x_{0}$ 的情況下,計算 $x_{t-1}$ 的分佈,形式為:
$q(x_{t-1}|x_0)=\mathcal{N}(x_{t-1};\sqrt{\bar{\alpha}_{t-1}}x_0,(1-\bar{\alpha}_{t-1})I)$
其中,$\bar{\alpha}_{t-1}=\prod_{s=1}^{t-1}(1-\beta_s)$ 是正向過程中前 t−1 個時間步的係數。
對於高斯分佈 $q(x_{t-1}|x_0)$ 和 $q(x_t|x_{t-1})$,我們可以使用高斯分佈的乘法規則。高斯分佈的乘積仍然是高斯分佈,其均值和方差可以透過以下方式推匯出來。
後驗分佈均值公式的推導過程
首先,寫出兩個正態分佈:
$q(x_t|x_{t-1})$ 的形式:
$$q(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_tI)$$
其均值為 $\sqrt{1-\beta_{t}}x_{t-1}$,方差為 $\beta_{t}I$。
$q(x_{t-1}|x_0)$ 的形式:
$$q(x_{t-1}|x_0)=\mathcal{N}(x_{t-1};\sqrt{\bar{\alpha}_{t-1}}x_0,(1-\bar{\alpha}_{t-1})I)$$
其均值為 $\sqrt{\bar{\alpha}_{t-1}}x_{0}$,方差為 $(1-\bar{\alpha}_{t-1})I$。
根據高斯分佈的乘法規則,如果兩個分佈 $p(x)=\mathcal{N}(x;\mu_1,\Sigma_1)$ 和 $q(x)=\mathcal{N}(x;\mu_2,\Sigma_2)$,它們的乘積 $r(x)$ 也是高斯分佈,其均值 $\mu $ 和協方差 $\Sigma $ 可以透過以下公式得到:
$$\Sigma=\left(\Sigma_1^{-1}+\Sigma_2^{-1}\right)^{-1}$$
$$\mu=\Sigma\left(\Sigma_1^{-1}\mu_1+\Sigma_2^{-1}\mu_2\right)$$
現在將公式應用於$q(x_t|x_{t-1})$ 和 $q(x_{t-1}|x_0)$:
$q(x_t|x_{t-1})$ 的均值為 $\sqrt{1-\beta_t}x_{t-1}$,方差為 $\beta_{t}I$,因此協方差的逆為:
$$\Sigma_1^{-1}=\frac{1}{\beta_t}I$$
$q(x_{t-1}|x_0)$ 的均值為 $\sqrt{\bar{\alpha}_{t-1}}x_{0}$,方差為 $(1-\bar{\alpha}_{t-1})I$,因此協方差的逆為:
$$\Sigma_2^{-1}=\frac1{1-\bar{\alpha}_{t-1}}I$$
求均值 $\mu(x_t,x_0)$:
根據公式:
$$\mu=\Sigma\left(\Sigma_1^{-1}\mu_1+\Sigma_2^{-1}\mu_2\right)$$
首先,計算權重:
$$\Sigma_1^{-1}\mu_1=\frac{1}{\beta_t}\cdot x_t$$
$$\Sigma_{2}^{-1}\mu_{2}=\frac1{1-\bar{\alpha}_{t-1}}\cdot\sqrt{\bar{\alpha}_{t-1}}x_{0}$$
然後將它們加在一起:
$$\Sigma_1^{-1}\mu_1+\Sigma_2^{-1}\mu_2=\frac{x_t}{\beta_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}x_0}{1-\bar{\alpha}_{t-1}}$$
再計算協方差:
$$\Sigma=\left(\frac{1}{\beta_t}+\frac{1}{1-\bar{\alpha}_{t-1}}\right)^{-1}=\frac{\beta_t(1-\bar{\alpha}_{t-1})}{\beta_t+(1-\bar{\alpha}_{t-1})}$$
最後,均值$\mu(x_t,x_0)$為:
$$\mu(x_t,x_0)=\Sigma\left(\frac{x_t}{\beta_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}x_0}{1-\bar{\alpha}_{t-1}}\right)$$
經過化簡,可以得到均值的最終形式:
$$\mu(x_t,x_0)=\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_tx_0+(1-\bar{\alpha}_{t-1})\sqrt{1-\beta_t}x_t}{\beta_t+(1-\bar{\alpha}_{t-1})}$$
後驗分佈方差公式的推導過程
後驗分佈的方差由前面推導的 $\Sigma $ 給出:
$$\Sigma=\left(\Sigma_1^{-1}+\Sigma_2^{-1}\right)^{-1}$$
代入協方差的逆:
$$\Sigma=\left(\frac{1}{\beta_t}+\frac{1}{1-\bar{\alpha}_{t-1}}\right)^{-1}$$
化簡後得到:
$$\Sigma=\frac{\beta_t(1-\bar\alpha_{t-1})}{\beta_t+(1-\bar\alpha_{t-1})}$$
這就是後驗分佈的方差。
總結
使用貝葉斯公式將 $q(x_{t-1}|x_t,x_0)$ 分解為 $q(x_t|x_{t-1})$ 和 $q(x_{t-1}|x_{0})$ 的乘積。
後驗分佈的均值透過結合兩個高斯分佈的均值計算,最終得到:
$$\mu(x_t,x_0)=\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_tx_0+(1-\bar{\alpha}_{t-1})\sqrt{1-\beta_t}x_t}{\beta_t+(1-\bar{\alpha}_{t-1})}$$
後驗分佈的方差為:
$$\Sigma=\frac{\beta_{t}(1-\bar{\alpha}_{t-1})}{\beta_{t}+(1-\bar{\alpha}_{t-1})}$$