?DDPM的擴散過程如圖1-2和1-3所示,具體分為前向過程和反向過程兩部分。擴散模型是一種潛變量模型,它使用固定的馬爾可夫鏈映射到潛在空間。該鏈逐步向數據中添加噪聲,以獲得近似后驗值,其中為與x0具有相同維數的潛變量。在下面的圖中,我們可以看到這樣一個馬爾可夫鏈。

最后,圖像逐漸變為純高斯噪聲。訓練擴散模型的目標是學習逆向過程,即訓練。通過沿著這條鏈向后遍歷,我們可以生成新的數據。

1)前向過程

? ? ? ?前向過程是給數據添加噪聲的過程。假設給定一批訓練數據,數據分布為,其中,0表示初始,即還沒有開始擴散。如前所述,將前向加噪過程分為離散的多個時間步 T ,在每一個時間步 t ,給上一個時間步t-1的數據;添加高斯噪聲,從而生成帶有噪聲(簡稱”帶噪”)的數據,同時數據?,也會被送入下個時間步 t +1以繼續添加噪聲。其中,噪聲的方差是由一個位于區間(0,1)的固定值,確定的,均值則由固定值,和當前時刻”帶噪”的數據分布確定。在反復迭代和加噪(即添加噪聲) T 次之后,只要 T 足夠大,根據馬爾可夫鏈的性質,最終就可以得到純隨機噪聲分布的數據,即類似穩定墨水系統的狀態。

? ? ? 接下來,我們用簡單的公式描述一下上述過程。從時間步 t -1到時間步 t 的單步擴散加噪過程的數學表達式如下:

? ?最終的噪聲分布數學表達式如下:

2)反向過程

       前向過程是將數據噪聲化的過程,反向過程則是”去噪”的過程,即從隨機噪聲中迭代恢復出清晰數據的過程。

? ? ? ?要從采樣自高斯噪聲的一個隨機噪聲中恢復出原始數據,就需要道反向過程中每一步的圖像分布狀態轉移。類似地, DDPM 也將反向過程定義為一個馬爾可夫鏈,只不過這個馬爾可夫鏈是由一系列用神經網絡參數化的高斯分布組成的,也就是需要訓練的擴散模型。

? ? ? ?從時間步!到時間步 t -1的單步反向”去噪”過程的數學表達式如下:

 由于反向過程的每一步都是參數化的高斯分布,因此可以分別求高斯分布的均值和方貝葉斯公式推導的過程,最終得到時間步 t -1的高斯分布 

,的均值和方差的數學公式如下:

可以看出,方差是一個定量(擴散過程參數固定),而均值是一個依賴于?和的函數,因此需要使用擴散模型來優化參數。

3)優化目標

       擴散模型預測的是噪聲殘差,即要求后向過程中預測的噪聲分布與前向過程中噪聲分布的“距離”最小。

       下面我們從另一個角度來看看擴散模型。如果把中間產生的變量看成隱變量的話,那么擴散模型其實是一種包含 T 個隱變量的模型,因此可以看成更深層次的 VAE ,而 VAE 的損失函數可以使用變分推斷來得到變分下界( variational lower bound )。

? ? ? ?擴散模型的最終優化目標的數學表達式如下:

?? ?可以看出,在訓練 DDPM 時,只要用一個簡單的 MSE ( Mean Squared Error ,均方誤差)損失來最小化時向過程施加的噪聲分布和后向過程預測的噪聲分布,就能實現最終的優化目標。

文章轉自微信公眾號@ArronAI

上一篇:

LLM之Agent(十二)| OpenAI Agent-Swarm簡單入門

下一篇:

擴散模型實戰(二):擴散模型的發展
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費