supercalifragilisticexpialidocious

Koji Higasa Blog

Denoising Diffusion Probabilistic Models - notes

Posted at # ML/AI

拡散モデルを VAE, GAN に並ぶ有力な手法に押し上げた決定的な論文. 結局, 拡散モデルをどのように実装すればうまくいくのかという話だが, 拡散モデルと Langevin 動力学を用いたデノイジングスコアマッチングの関連を見抜き, それに基づいてデザインされた手法を提示した点は革新的といえる.

拡散モデル (Sohl-Dickstein et al., 2015)

拡散モデルとデノイジングオートエンコーダー (DAE)

拡散過程と LTL_T

q(xTx0)=N(xT;αˉTx0,(1αˉT)I)q\left(\mathbf{x}_T|\mathbf{x}_0\right) = \mathcal{N}\left(\mathbf{x}_T;\sqrt{\bar{α}_T}\mathbf{x}_0,\left(1-\bar{α}_T\right)\mathbf{I}\right), i.e.\mathrm{i.e.}, スケジュール β1,,βTβ_1,\ldots,β_T の選び方.

本来, 拡散率 βtβ_t は学習可能な変数であるが, 今回はこれを定数とする. すると, q(xTx0)q\left(\mathbf{x}_T|\mathbf{x}_0\right) が学習可能な量を持たなくなるので, LTL_T も訓練において定数となり無視できる.

逆拡散過程と L1:TL_{1:T}

pθ(xt1xt)N(xt1;μθ(xt,t),Σθ(xt,t)) for 2tTp_θ\left(\mathbf{x}_{t-1}|\mathbf{x}_t\right) ≔ \mathcal{N}\left(\mathbf{x}_{t-1};\mathbf{μ}_θ\left(\mathbf{x}_t,t\right),\mathbf{Σ}_θ\left(\mathbf{x}_t,t\right)\right)\text{ for }2≤t≤T, i.e.\mathrm{i.e.}, μθ(xt,t)\mathbf{μ}_θ\left(\mathbf{x}_t,t\right), および Σθ(xt,t)\mathbf{Σ}_θ\left(\mathbf{x}_t,t\right) の選び方.

分散 Σθ(xt,t)\mathbf{Σ}_θ\left(\mathbf{x}_t,t\right)

Σθ(xt,t)=σt2I\mathbf{Σ}_θ\left(\mathbf{x}_t,t\right)=σ_t^2\mathbf{I} と, 時間に依存する定数にとる.

ここにおいて以下 2 つの極端な選び方が存在するが, 同様の結果が得られるようで, 結局のところ選べる値であれば何でもいいらしい.

  1. σt2=βtσ_t^2=β_t と拡散過程の分散にとる.

    x0N(0,I)\mathbf{x}_0∼\mathcal{N}\left(\mathbf{0},\mathbf{I}\right) のとき最適, Sohl-dickstein et al. (2015) で評価された逆拡散過程のエントロピーが上限を取る場合に対応.

  2. σt2=β~tσ_t^2=\tilde{β}_t と事後分布の分散にとる.

    x0\mathbf{x}_0 が確定した 1 点のとき最適, Sohl-dickstein et al. (2015) で評価された逆拡散過程のエントロピーが下限を取る場合に対応.

平均 μθ(xt,t)\mathbf{μ}_θ\left(\mathbf{x}_t,t\right)

xt\mathbf{x}_t をノイズ ϵN(0,I)\mathbf{ϵ}∼\mathcal{N}\left(\mathbf{0},\mathbf{I}\right) を用いて xt(x0,ϵ)=αˉtx0+1αˉtϵ\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{ϵ}\right)=\sqrt{\bar{α}}_t\mathbf{x}_0+\sqrt{1-\bar{α}}_t\mathbf{ϵ} と再パラメータ化することにより, μθ(xt,t)\mathbf{μ}_θ\left(\mathbf{x}_t,t\right) を次のように選ぶことができる.

μθ(xt,t)=1αt(xtβt1αˉtϵθ(xt,t))\mathbf{μ}_θ\left(\mathbf{x}_t,t\right) = \frac{1}{\sqrt{α_t}}\left(\mathbf{x}_t-\frac{β_t}{\sqrt{1-\bar{α}_t}}\mathbf{ϵ}_θ\left(\mathbf{x}_t,t\right)\right)

この着想は, 拡散モデルにおける訓練が (ノイズとスコアを同一視すれば) tt によって添字付けられた複数ノイズスケールでのデノイジングスコアマッチング (DSM) と等価になる, という次の洞察による.

    L1:T(θ)Const.=Eq[12σt2μ~t(xt,x0)μθ(xt,t)2]=Ex0,ϵ[12σt2μ~t(xt(x0,ϵ),1αˉt(xt(x0,ϵ)1αˉtϵ))μθ(xt(x0,ϵ),t)2]=Ex0,ϵ[12σt21αˉt(xt(x0,ϵ)βt1αˉtϵ)μθ(xt(x0,ϵ),t)2]=Ex0,ϵ[βt22σt2αt(1αˉt)ϵϵθ(αˉtx0+1αˉtϵ,t)2]=Ex0,ϵ[wtϵϵθ(αˉtx0+1αˉtϵ,t)2] where wtβt22σt2αt(1αˉt)\begin{align} &\space\space\space\space L_{1:T}(θ)-\mathrm{Const.} \\ &= \mathbb{E}_q\left[\frac{1}{2σ_t^2}\left\|\tilde{\mathbf{μ}}_t\left(\mathbf{x}_t,\mathbf{x}_0\right)-\mathbf{μ}_θ\left(\mathbf{x}_t,t\right)\right\|^2\right] \\ &= \mathbb{E}_{\mathbf{x}_0,\mathbf{ϵ}}\left[\frac{1}{2σ_t^2}\left\|\tilde{\mathbf{μ}}_t\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{ϵ}\right),\frac{1}{\sqrt{\bar{α}_t}}\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{ϵ}\right)-\sqrt{1-\bar{α}_t}\mathbf{ϵ}\right)\right)-\mathbf{μ}_θ\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{ϵ}\right),t\right)\right\|^2\right] \\ &= \mathbb{E}_{\mathbf{x}_0,\mathbf{ϵ}}\left[\frac{1}{2σ_t^2}\left\|\frac{1}{\sqrt{\bar{α}_t}}\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{ϵ}\right)-\frac{β_t}{\sqrt{1-\bar{α}_t}}\mathbf{ϵ}\right)-\mathbf{μ}_θ\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{ϵ}\right),t\right)\right\|^2\right] \\ &= \mathbb{E}_{\mathbf{x}_0,\mathbf{ϵ}}\left[\frac{β_t^2}{2σ_t^2α_t\left(1-\bar{α}_t\right)}\left\|\mathbf{ϵ}-\mathbf{ϵ}_θ\left(\sqrt{\bar{α}_t}\mathbf{x}_0+\sqrt{1-\bar{α}_t}\mathbf{ϵ},t\right)\right\|^2\right] \\ &= \mathbb{E}_{\mathbf{x}_0,\mathbf{ϵ}}\left[w_t\left\|\mathbf{ϵ}-\mathbf{ϵ}_θ\left(\sqrt{\bar{α}_t}\mathbf{x}_0+\sqrt{1-\bar{α}_t}\mathbf{ϵ},t\right)\right\|^2\right]\text{ where }w_t≔\frac{β_t^2}{2σ_t^2α_t\left(1-\bar{α}_t\right)} \end{align}

したがってこのとき, Langevin 動力学を用いたサンプリングは次で与えられる.

xt1=1αt(xtβt1αˉtϵθ(xt,t))+σtz   where zN(0,I)\mathbf{x}_{t-1}=\frac{1}{\sqrt{α_t}}\left(\mathbf{x}_t-\frac{β_t}{\sqrt{1-\bar{α}_t}}\mathbf{ϵ}_θ\left(\mathbf{x}_t,t\right)\right)+σ_t\mathbf{z}\space\space\text{ where }\mathbf{z}∼\mathcal{N}\left(\mathbf{0},\mathbf{I}\right)

データスケーリングと逆拡散過程デコーダー, および L0L_0

画像データの要素 {0,1,,255}∈\lbrace 0,1,\ldots,255\rbrace{1,1+2255,1}[1,1]\left\lbrace-1,-1+\frac{2}{255}\ldots,1\right\rbrace∈[-1,1] と線形にスケーリングし, 標準正規事前分布 p(xT)p\left(\mathbf{x}_T\right) から始まる逆拡散過程が一貫性をもって作用できることを保証しておく. そうすると, 最終ステップ (t=1t=1) では特別に, 連続 Gauss 分布から離散画像データの確率分布に変換する次の独立デコーダーが必要となる.

pθ(x0x1)=i=1Dδ(x0i)δ+(x0i)N(x;μθi(x1,1),σ12)dxδ+(x0i)={if x=1x+1255if x<1δ(x0i)={if x=1x1255if x>1\begin{align} p_θ\left(\mathbf{x}_0|\mathbf{x}_1\right) &= ∏_{i=1}^D∫_{δ_-\left(x_0^i\right)}^{δ_+\left(x_0^i\right)}\mathcal{N}\left(x;μ_θ^i\left(\mathbf{x}_1,1\right),σ_1^2\right)\mathrm{d}x \\ δ_+\left(x_0^i\right) &= \begin{cases} ∞ & \text{if }x=1 \\ x+\frac{1}{255} & \text{if }x<1 \end{cases} \\ δ_-\left(x_0^i\right) &= \begin{cases} -∞ & \text{if }x=-1 \\ x-\frac{1}{255} & \text{if }x>-1 \end{cases} \end{align}

L1:TL_{1:T}, および L0L_0 の簡略化

L1:TL_{1:T} から重み wtw_t を捨て, ステップを tU{1,,T}t∼U\lbrace 1,\ldots,T\rbrace と一様サンプリングすれば, L0L_0 を含めた変分上限は次のように簡略化される.

LsimpleEx0,ϵ[ϵϵθ(αˉtx0+1αˉtϵ,t)2]L_{\text{simple}} ≔ \mathbb{E}_{\mathbf{x}_0,\mathbf{ϵ}}\left[\left\|\mathbf{ϵ}-\mathbf{ϵ}_θ\left(\sqrt{\bar{α}_t}\mathbf{x}_0+\sqrt{1-\bar{α}_t}\mathbf{ϵ},t\right)\right\|^2\right]

t=1t=1 では L0L_0 と一致. t2t≥2 ではこれにより, ステップ初期のノイズが小さい場合の重みがステップ後半におけるノイズが大きい場合と比べて相対的に小さくなるため, モデルはノイズが大きい場合の難しいタスクにより多くのリソースを割けるようになり, 結果としてサンプルの品質も向上すると主張されている.

まとめると, 最終的に提示されたアルゴリズムは以下である. algorithm