論文:Dnoising Diffusion Probabilistic Models
1. DDPM的訓練過程
Diffusion model的訓練,即noise predictor的訓練
訓練即重復下面的過程直至收斂:
- #2:取一張干凈圖片作為樣本
- #3:從1到T之間sample出
- #4:生成噪聲
(shape和
相同)
- #5:將噪聲
疊加到
,讓noise predictor盡量準確地估計噪聲。
紅色框內將和
做帶權的疊加得到一個帶噪聲的圖片,權重
是事先定義的(由
指定);
是noise predictor,它以混入噪聲的latent和
為輸入,估計當前圖片中的噪聲(噪聲的ground truth即前一步生成的噪聲)。
注意,實際在DDPM方法的訓練過程中,噪聲并不是一步一步加入的,而是一次性加入的。
2. DDPM的推理過程
- #1:生成一個純噪聲的圖
- #2~#4:重復
步去噪過程,(有一些預先定義的僅和
相關的系數),當前的圖片減去預測的噪聲再加上這一步的隨機噪聲
,得到新的圖片。
DDPM的推理
上述過程的合理性見李宏毅老師的數學推導(分集2、3)和猜測(分集4)。
部分數學推導
給模型一個隨機噪聲
,我們希望
能輸出一個盡量真實的圖像
。
生成的圖像的分布應該盡量接近真實圖像的分布。如下圖,我們通過極大似然估計(Maximum Likelihood Estimation)來達到這個目的,
表示生成圖片的分布,
表示真實圖片的分布。
從中sample數據其實就是收集真實的圖片。
我們計算真實圖片為生成圖片的概率
,我們的目標是得到讓真實圖片被認為是生成圖片的概率最大的模型
。
通過極大似然估計找出最好的模型
第2個=,取log不影響argmax
第4個=,m足夠大,期望的定義
不斷取真實圖像,計算
的期望
-
第5個=,關于X的隨機變量
期望的計算(取
的概率乘上
做積分)。后一項是真實分布的期望,與
無關,不影響argmax,減去它是為了湊KL散度。
優化目標的推導
極大似然估計的結果等價于最小化KL散度。所以,優化目標直接設置為極大似然,就相當于讓生成數據的分布盡量接近真實數據了。 -
VAE對
的計算
對于某個圖片,它被
生成出來的概率是
。
是容易算的,
可以是從高斯分布sample出來的。但
若定義為“當且僅當輸入
恰好讓
生成了
則為1,否則為0”,那可能算出來的
幾乎都是0。所以VAE做了一個假設: