logo

論文レビュー:デノイジング拡散確率モデル (DDPM) 📂機械学習

論文レビュー:デノイジング拡散確率モデル (DDPM)

概要と要約

生成モデルとは、与えられたランダムサンプル {yi}\left\{ y_{i} \right\}が従う確率分布 YYまたはそれを見つける方法を指す。何もないところからこれを見つけるのは非常に難しいので、通常は既によく知られた分布から目的の分布を近似する方法を見つける。それで、よく知られた分布XX に従うデータセット{xi}\left\{ x_{i} \right\}が与えられたとき、生成モデルとは次のような関数 ff であり、生成モデルを開発するということはffをうまく近似する関数を見つけることを指す。

f:{xi}{yj} f : \left\{ x_{i} \right\} \to \left\{ y_{j} \right\}

よく知られた分布XXで最も多く使用されるのは正規分布である。したがって、生成モデルを簡単に理解したい場合は、正規分布から未知の分布に従うサンプルを抽出する方法を見つけるというふうに受け取っても差し支えない。

Denoising Diffusion Probabilistic Models (DDPM)1でも同様に、正規分布から他の未知の分布に従うデータを抽出する方法を紹介する。正規分布N(0,I)N(0, I)から抽出されたあるノイズz\mathbf{z}とある未知の分布XXから抽出されたと仮定される画像x0\mathbf{x}_{0}があるとしよう。ノイズz\mathbf{z}からx0\mathbf{x}_{0}を作り出す関数x0=p(z)\mathbf{x}_{0} = p(\mathbf{z})を見つけるのは当然難しいが、よく考えてみるとx0\mathbf{x}_{0}を損傷してz\mathbf{z}を作る逆関数z=q(x0)\mathbf{z} = q(\mathbf{x}_{0})を見つけることも容易ではないだろう。(写真出典2)

ところが、画像x0\mathbf{x}_{0}に正規分布から抽出された非常に小さいノイズϵ1\boldsymbol{\epsilon}_{1}が加えられ、少しだけ損傷curruptionされた画像x1=x0+ϵ1\mathbf{x}_{1} = \mathbf{x}_{0} + \boldsymbol{\epsilon}_{1}を得るのは簡単なことだ。ここに再び小さいガウシアンノイズϵ2\boldsymbol{\epsilon}_{2}を抽出して加えてx2=x1+ϵ2\mathbf{x}_{2} = \mathbf{x}_{1} + \boldsymbol{\epsilon}_{2}を得るのも容易だ。このような過程を非常に多く繰り返して得た、xT\mathbf{x}_{T}はまるで正規分布から抽出されたノイズのようになるだろう。言い換えれば、画像x0\mathbf{x}_{0}にガウシアンノイズを繰り返し加えて損傷させると、結局正規分布から抽出されたノイズと同じ画像が得られることになる。この過程を拡散diffusionと呼ぶ。この理由は、実際に微細な粒子が不規則かつランダムに拡散していく現象であるブラウン運動が数学的にはガウス分布から抽出された値を連続的に加えていくこととして説明され、ブラウン運動が実際に拡散方程式(熱方程式)と関連しているからである。

拡散過程がノイズを加え続けることなので、その逆過程はノイズを取り除くプロセスになる。したがってこの逆過程は自然にディノイジングdenoisingになる。この論文ではよく知られた拡散という過程の情報を利用して、未知のディノイジングという逆過程を行う方法を紹介する。これらのアイデアは、2015年の論文3 Deep Unsupervised Learning using Nonequilibrium Thermodynamicsでdiffusion probabilistic models (DPM)という名前で初めて紹介され、DDPMはそれを補完しディープラーニングとよく結合した論文である。

DDPM論文と補遺は数式展開にそれほど親切ではない。これをレビューした多くの記事も数式がどのように展開され導出されるかを明確に説明していない。本記事ではDDPMの性能や成果物については扱わず、DDPMが数学的にどのように技術されるかを詳しく扱う。それで記事が少し長くなってしまうが、少なくとも数式展開でつまずく部分はないはずだ。

1行の数式もおおざっぱに超えていない。断言するが、世界でDDPM論文の数式を最も数学的に正確かつ詳細に説明した記事である。

基礎(preliminaries)

本論文では確率変数 xRD\mathbf{x} \in \mathbb{R}^{D}とその実現をすべてxRD\mathbf{x} \in \mathbb{R}^{D}で表記する。つまり一般的に確率変数XXに対する確率密度関数がpX(x)p_{X}(x)のように表現されるなら、本論文ではp(x)=px(x)p(\mathbf{x}) = p_{\mathbf{x}}(\mathbf{x})のように記述する。特徴抽出

確率変数の数列(x0,x1,,xT)={xt}t=0T(\mathbf{x}_{0}, \mathbf{x}_{1}, \dots, \mathbf{x}_{T}) = \left\{ \mathbf{x}_{t} \right\}_{t=0}^{T}確率過程と呼ぶ。本論文では確率過程をx0:T=(x0,x1,,xT)\mathbf{x}_{0:T} = (\mathbf{x}_{0}, \mathbf{x}_{1}, \dots, \mathbf{x}_{T})のように表記する。x0:T\mathbf{x}_{0:T}結合確率密度関数を次のように表記する。

p(x0:T)=px0:T(x0:T) p(\mathbf{x}_{0:T}) = p_{\mathbf{x}_{0:T}}(\mathbf{x}_{0:T})

x0:T1\mathbf{x}_{0:T-1}に対するxT\mathbf{x}_{T}条件付き確率密度関数とは、次を満たすp(xTx0:T1)p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1})を指す。

p(xTx0:T1)=p(x0:T)p(x0:T1) p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) = \dfrac{p(\mathbf{x}_{0:T})}{p(\mathbf{x}_{0:T-1})}

上記定義を繰り返すと次が得られる。

p(x0:T)=p(x0)p(x1x0)p(x2x0:1)p(xT1x0:T2)p(xTx0:T1)(1) p(\mathbf{x}_{0:T}) = p(\mathbf{x}_{0}) p(\mathbf{x}_{1} | \mathbf{x}_{0}) p(\mathbf{x}_{2} | \mathbf{x}_{0:1}) \cdots p(\mathbf{x}_{T-1} | \mathbf{x}_{0:T-2}) p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) \tag{1}

x0:T\mathbf{x}_{0:T}が次を満たすとマルコフ連鎖と呼ぶ。

p(xTx0:T1)=p(xTxT1) p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) = p(\mathbf{x}_{T} | \mathbf{x}_{T-1})

x0:T\mathbf{x}_{0:T}がマルコフ連鎖なら、(1)(1)は次のように簡略化される。

p(x0:T)=p(x0)p(x1x0)p(x2x0:1)p(xT1x0:T2)p(xTx0:T1)=p(x0)p(x1x0)p(x2x1)p(xT1xT2)p(xTxT1)=p(x0)t=1Tp(xtxt1)(2) \begin{align*} p(\mathbf{x}_{0:T}) &= p(\mathbf{x}_{0}) p(\mathbf{x}_{1} | \mathbf{x}_{0}) p(\mathbf{x}_{2} | \mathbf{x}_{0:1}) \cdots p(\mathbf{x}_{T-1} | \mathbf{x}_{0:T-2}) p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) \\ &= p(\mathbf{x}_{0}) p(\mathbf{x}_{1} | \mathbf{x}_{0}) p(\mathbf{x}_{2} | \mathbf{x}_{1}) \cdots p(\mathbf{x}_{T-1} | \mathbf{x}_{T-2}) p(\mathbf{x}_{T} | \mathbf{x}_{T-1}) \\ &= p(\mathbf{x}_{0}) \prod\limits_{t=1}^{T} p(\mathbf{x}_{t} | \mathbf{x}_{t-1}) \end{align*} \tag{2}

2 背景

第2節では拡散モデルのアイデアをどうやって数学的に表現できるかを簡単に紹介する。基本となるアイデアが他の論文で出ているため詳しく説明はされていない。初心者が見るには略された部分が多くて理解しにくいだろう。以下でできるだけ詳しく解き明かそう。

  • 拡散過程diffusion process(順方向過程forward process)

拡散過程を数学的に整理しよう。tt段階での画像xtRD\mathbf{x}_{t} \in \mathbb{R}^{D}t1t-1段階での画像xt1RD\mathbf{x}_{t-1} \in \mathbb{R}^{D}にガウシアンノイズβtϵtN(0,βtI)\sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \sim \mathcal{N}(\mathbf{0}, \beta_{t}\mathbf{I})を加えたものだ。βt\beta_{t}はノイズが拡散される程度を決定する係数である。だから次のように表現できる。

xt=1βtxt1+βtϵt,ϵtN(0,I) \mathbf{x}_{t} = \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} + \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t}, \qquad \boldsymbol{\epsilon}_{t} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})

ここで係数が(1βt,βt)(1-\beta_{t}, \beta_{t})ではなく(1βt,βt)(\sqrt{1-\beta_{t}}, \sqrt{\beta_{t}})である理由は、分散の性質Var(aX)=a2Var(X)\Var(aX) = a^{2}\Var(X)による。係数に\sqrt{}が付いているほうがttが十分大きいときすべてのn1n \ge 1に対してxt+n\mathbf{x}_{t+n}が依然として標準正規分布を従うようになる。ttが十分大きいと仮定すれば、xt\mathbf{x}_{t}は標準正規分布を従うだろう。その際xt+1\mathbf{x}_{t+1}共分散行列が維持されること(依然として標準正規分布を従う)が以下のように確認できる。xt1\mathbf{x}_{t-1}ϵt\boldsymbol{\epsilon}_{t}は互いに独立なので次が成り立つ。

Cov(xt)=Cov(1βtxt1+βtϵt)=(1βt)Cov(xt1)+βtCov(ϵt)=(1βt)I+βtI=I \begin{align*} \Cov(\mathbf{x}_{t}) &= \Cov(\sqrt{1-\beta_{t}}\mathbf{x}_{t-1} + \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t}) \\ &= (1-\beta_{t})\Cov(\mathbf{x}_{t-1}) + \beta_{t}\Cov(\boldsymbol{\epsilon}_{t}) \\ &= (1-\beta_{t})\mathbf{I} + \beta_{t}\mathbf{I} \\ &= \mathbf{I} \end{align*}

xt1\mathbf{x}_{t-1}が決定された時(定数であるとき)xt\mathbf{x}_{t}に対する条件付き確率密度関数は次のようになる。

q(xtxt1)=N(1βtxt1,βtI)(3) q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) = \mathcal{N}(\sqrt{1 - \beta_{t}}\mathbf{x}_{t-1}, \beta_{t}\mathbf{I}) \tag{3}

(論文ではxt\mathbf{x}_{t}に対する分布であることを確実に明示するためにN(xt;1βtxt1,βtI)\mathcal{N}(\mathbf{x}_{t}; \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1}, \beta_{t}\mathbf{I})と表記した。)平均ベクトルと共分散行列が上記のようなのはそれぞれ以下のように確認できる。xt1\mathbf{x}_{t-1}が決定されたとしよう(つまり定数である)。

E[xtxt1]=E[1βtxt1+βtϵt](xt1 is constant vector)=E[1βtxt1]+E[βtϵt]=1βtxt1+βtE[ϵt]=1βtxt1 \begin{align*} \mathbb{E} [\mathbf{x}_{t} | \mathbf{x}_{t-1}] &= \mathbb{E} \left[ \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} + \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \right] \qquad (\mathbf{x}_{t-1} \text{ is constant vector})\\ &= \mathbb{E} \left[ \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} \right] + \mathbb{E} \left[ \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \right] \\ &= \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} + \sqrt{\beta_{t}}\mathbb{E} \left[ \boldsymbol{\epsilon}_{t} \right] \\ &= \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} \end{align*}

Cov(xtxt1)=Cov(1βtxt1+βtϵt)(xt1 is constant vector)=Cov(βtϵt)=βtCov(ϵt)=βtI \begin{align*} \Cov (\mathbf{x}_{t} | \mathbf{x}_{t-1}) &= \Cov \left( \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} + \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \right) \qquad (\mathbf{x}_{t-1} \text{ is constant vector})\\ &= \Cov \left( \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \right) \\ &= \beta_{t}\Cov \left( \boldsymbol{\epsilon}_{t} \right) \\ &= \beta_{t} \mathbf{I} \end{align*}

画像x0\mathbf{x}_{0}が与えられたとき、ガウシアンノイズを反復的に加え損傷させた画像をx1,x2,,xT\mathbf{x}_{1}, \mathbf{x}_{2}, \dots, \mathbf{x}_{T}としたら(その確率変数と表記法を一緒に使用することに注意しろ)、この全過程に対する確率密度関数は結合条件付き確率密度関数q(x1:Tx0)q(\mathbf{x}_{1:T} | \mathbf{x}_{0})として与えられ、これを順方向過程forward processまたは拡散過程diffusion processと呼ぶ。x0:T\mathbf{x}_{0:T}がマルコフであるため、(2)\eqref{2}により、拡散過程は次のようにモデル化される。

q(x1:Tx0)=t=1Tq(xtxt1)(4) q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) = \prod\limits_{t=1}^{T} q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) \tag{4}

一方、x0\mathbf{x}_{0}から任意のttに対してxt\mathbf{x}_{t}が決定される条件付き確率密度関数も明示的に表すことができる。αt=1βt\alpha_{t} = 1 - \beta_{t}とすれば、

xt=αtxt1+1αtϵt=αt(αt1xt2+1αt1ϵt1)+1αtϵt=αtαt1xt2+αt1αt1ϵt1+1αtϵt \begin{align*} \mathbf{x}_{t} &= \sqrt{\alpha_{t}}\mathbf{x}_{t-1} + \sqrt{1 - \alpha_{t}}\boldsymbol{\epsilon}_{t} \\ &= \sqrt{\alpha_{t}}\left( \sqrt{\alpha_{t-1}}\mathbf{x}_{t-2} + \sqrt{1 - \alpha_{t-1}}\boldsymbol{\epsilon}_{t-1} \right) + \sqrt{1 - \alpha_{t}}\boldsymbol{\epsilon}_{t} \\ &= \sqrt{\alpha_{t}}\sqrt{\alpha_{t-1}}\mathbf{x}_{t-2} + \sqrt{\alpha_{t}}\sqrt{1 - \alpha_{t-1}}\boldsymbol{\epsilon}_{t-1} + \sqrt{1 - \alpha_{t}}\boldsymbol{\epsilon}_{t} \\ \end{align*}

この時2つの正規分布の和は再び1つの正規分布として表すことができる。

X1N(μ1,σ12)X_{1} \sim \mathcal{N}(\mu_{1}, \sigma_{1}^{2})X2N(μ2,σ22)X_{2} \sim \mathcal{N}(\mu_{2}, \sigma_{2}^{2})が独立であれば、 X1+X2N(μ1+μ2,σ12+σ22) X_{1} + X_{2} \sim \mathcal{N}(\mu_{1} + \mu_{2}, \sigma_{1}^{2} + \sigma_{2}^{2}) ランダムベクトルに対しても同じ方法で成り立つ。

したがって次が成り立つ。

αt1αt1ϵt1+1αtϵtN(0,αt(1αt1)I+(1αt)I)=N(0,(1αtαt1)I) \begin{align*} \sqrt{\alpha_{t}}\sqrt{1 - \alpha_{t-1}}\boldsymbol{\epsilon}_{t-1} + \sqrt{1 - \alpha_{t}}\boldsymbol{\epsilon}_{t} &\sim \mathcal{N}(\mathbf{0}, \alpha_{t}(1-\alpha_{t-1})\mathbf{I} + (1 - \alpha_{t})\mathbf{I}) \\ &\quad= \mathcal{N}(\mathbf{0}, (1 - \alpha_{t}\alpha_{t-1})\mathbf{I}) \end{align*}

したがって、xt\mathbf{x}_{t}は以下のようである。

xt=αtαt1xt2+1αtαt1ϵ,ϵN(0,I) \mathbf{x}_{t} = \sqrt{\alpha_{t}\alpha_{t-1}}\mathbf{x}_{t-2} + \sqrt{1 - \alpha_{t}\alpha_{t-1}}\boldsymbol{\epsilon}, \qquad \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})

この過程を繰り返すと次が得られる。

xt=αtαt1xt2+1αtαt1ϵ=αtαt1(αt2xt3+1αt2ϵt2)+1αtαt1ϵ=αtαt1αt2xt3+αtαt1(1αt2)ϵt2+1αtαt1ϵ=αtαt1αt2xt3+1αtαt1αt2ϵ=s=1tαsx0+1s=1tαsϵ=αtx0+1αtϵ,ϵN(0,I),αt=s=1tαs \begin{align*} \mathbf{x}_{t} &= \sqrt{\alpha_{t}\alpha_{t-1}}\mathbf{x}_{t-2} + \sqrt{1 - \alpha_{t}\alpha_{t-1}}\boldsymbol{\epsilon} \\ &= \sqrt{\alpha_{t}\alpha_{t-1}}(\sqrt{\alpha_{t-2}}\mathbf{x}_{t-3} + \sqrt{1 - \alpha_{t-2}}\boldsymbol{\epsilon}_{t-2}) + \sqrt{1 - \alpha_{t}\alpha_{t-1}}\boldsymbol{\epsilon} \\ &= \sqrt{\alpha_{t}\alpha_{t-1}\alpha_{t-2}}\mathbf{x}_{t-3} + \sqrt{\alpha_{t}\alpha_{t-1}(1 - \alpha_{t-2})}\boldsymbol{\epsilon}_{t-2} + \sqrt{1 - \alpha_{t}\alpha_{t-1}}\boldsymbol{\epsilon} \\ &= \sqrt{\alpha_{t}\alpha_{t-1}\alpha_{t-2}}\mathbf{x}_{t-3} + \sqrt{1 - \alpha_{t}\alpha_{t-1}\alpha_{t-2}}\boldsymbol{\epsilon} \\ &\vdots \\ &= \sqrt{\prod\limits_{s=1}^{t} \alpha_{s}}\mathbf{x}_{0} + \sqrt{1 - \prod\limits_{s=1}^{t} \alpha_{s}}\boldsymbol{\epsilon} \\ &= \sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} + \sqrt{1 - \overline{\alpha}_{t}}\boldsymbol{\epsilon}, \qquad \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}), \quad \overline{\alpha}_{t} = \prod\limits_{s=1}^{t} \alpha_{s} \tag{5} \end{align*}

したがって、x0\mathbf{x}_{0}が決定されたとき、xt\mathbf{x}_{t}に対する条件付き結合密度関数は次のようになる。

q(xtx0)=N(αtx0,(1αt)I)(6) q(\mathbf{x}_{t} | \mathbf{x}_{0}) = \mathcal{N}(\sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0}, (1 - \overline{\alpha}_{t})\mathbf{I}) \tag{6}

αt\alpha_{t}が十分小さく(=βt\beta_{t}11に近ければ)TTが十分大きいとαT=s=1Tαs\overline{\alpha}_{T} = \prod_{s=1}^{T} \alpha_{s}00に近くなり、次が成り立つだろう。

q(xTx0)N(0,I)as T q(\mathbf{x}_{T} | \mathbf{x}_{0}) \to \mathcal{N}(\mathbf{0}, \mathbf{I}) \quad \text{as } T \to \infty

これはx0\mathbf{x}_{0}にガウシアンノイズを絶えず加えて作られたxT\mathbf{x}_{T}が標準正規分布を従うというアイデアを裏付ける数式である。

  • ノイズ除去過程denoising process(逆方向過程reverse process)

今度は、ガウシアンノイズxTN(0,I)\mathbf{x}_{T} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})からノイズを徐々に除去してx0\mathbf{x}_{0}にする逆過程(ディノイジング)を考えてみよう。Feller4によれば、前方過程が正規分布または二項分布の場合、十分に小さい拡散係数β\betaに対して、その逆過程が前方過程と同じ分布を従うという。

“For both Gaussian and binomial diffusion, for continuous diffusion (limit of small step size β\beta) the reversal of the diffusion process has the identical functional form as the forward process.”

– Sohl-Dickstein, Jascha, et al. Deep unsupervised learning using nonequilibrium thermodynamics. International conference on machine learning. pmlr, 2015.

すなわち、ディノイジングに関する確率密度関数をppと表記すれば、次が成り立つという意味である。q(xtxt1)q(\mathbf{x}_{t} | \mathbf{x}_{t-1})が正規分布を従うので、その逆過程は以下の通りである。

p(xt1xt)=N(μ(xt,t),Σ(xt,t)) p(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}(\mathbf{\mu}(\mathbf{x}_{t}, t), \boldsymbol{\Sigma}(\mathbf{x}_{t}, t))

逆方向過程もまたマルコフ連鎖であるため、標準正規分布から抽出されたランダムガウシアンノイズxT\mathbf{x}_{T}から徐々にノイズを削減し、特定の画像x0\mathbf{x}_{0}となる全過程に対する結合確率密度関数は次のように表現される。

p(x0:T)=p(xT)t=1Tp(xt1xt) p(\mathbf{x}_{0:T}) = p(\mathbf{x}_{T}) \prod\limits_{t=1}^{T} p(\mathbf{x}_{t-1} | \mathbf{x}_{t})

拡散過程q(x0:T)q(\mathbf{x}_{0:T})と異なり、ディノイジング過程p(x0:T)p(\mathbf{x}_{0:T})は我々が知らないため推定すべき対象である。パラメータθ\thetaを持ち、ppを近似する関数をpθp_{\theta}と表記しよう。xT\mathbf{x}_{T}に対する確率密度関数はp(xT)=N(0,I)p(\mathbf{x}_{T}) = \mathcal{N}(\mathbf{0}, \mathbf{I})であることを知っているので、

pθ(x0:T)=p(xT)t=1Tpθ(xt1xt)(7) p_{\theta} (\mathbf{x}_{0:T}) = p(\mathbf{x}_{T}) \prod\limits_{t=1}^{T} p_{\theta} (\mathbf{x}_{t-1} | \mathbf{x}_{t}) \tag{7}

各々のp(xt1xt)p(\mathbf{x}_{t-1} | \mathbf{x}_{t})が正規分布を従うことは知っているが、平均ベクトルと共分散行列は知らない。したがって、これらも近似すべき対象であり、pθ(xt1xt)p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})を次のように表すことができる。

pθ(xt1xt)=N(μθ(xt,t),Σθ(xt,t)) p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}(\mu_{\theta}(\mathbf{x}_{t}, t), \Sigma_{\theta}(\mathbf{x}_{t}, t))

  • 損失関数

新しいデータを生成するために求めるべきものは、データx0\mathbf{x}_{0}に対する確率密度関数p(x0)p(\mathbf{x}_{0})である。これを知っていれば、ランダムに抽出し既存のデータと同じ分布を従う新しいデータを生成することができる。p(x0)p(\mathbf{x}_{0})を近似する関数はpθ(x0)p_{\theta}(\mathbf{x}_{0})であり、パラメータθ\thetaを持つ。pθ(x0)p_{\theta}(\mathbf{x}_{0})p(x0)p(\mathbf{x}_{0})と似せる方法は、pθ(x0)p_{\theta}(\mathbf{x}_{0})尤度と見て、最大尤度推定法を使用することである。ppが正規分布なので対数尤度を使用するのが数学的により簡単であり、相対的エントロピー(クルバック・ライブラー発散)にも自然に結びつく。logpθ(x0)\log p_{\theta}(\mathbf{x}_{0})を最大化することはlogpθ(x0)-\log p_{\theta}(\mathbf{x}_{0})を最小化することと等しいので、ここから始めよう(勾配降下法を使用するから)。したがって、Eq(x0)[logpθ(x0)]\mathbb{E}_{q(\mathbf{x}_{0})}[-\log p_{\theta}(\mathbf{x}_{0})]を最小化するθ\thetaを見つけることが目標である。まず、周辺/条件付き確率密度関数の定義に依って、p(x)p(\mathbf{x})を次のように表現できる。

pθ(x0)=pθ(x0:T)dx1:T=p(x0:T)q(x1:Tx0)q(x1:Tx0)dx1:T=q(x1:Tx0)p(x0:T)q(x1:Tx0)dx1:T=Eq(x1:Tx0)[p(x0:T)q(x1:Tx0)] \begin{align*} p_{\theta}(\mathbf{x}_{0}) &= \int p_{\theta}(\mathbf{x}_{0:T}) d\mathbf{x}_{1:T} \\ &= \int p(\mathbf{x}_{0:T}) \dfrac{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} d\mathbf{x}_{1:T} \\ &= \int q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) \dfrac{ p(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} d\mathbf{x}_{1:T} \\ &= \mathbb{E}_{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \left[ \dfrac{ p(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \right] \end{align*}

すると、我々が最小化したい期待値を以下のように整理することができる。イェンセンの不等式により、log(E[X])E[logX]-\log (\mathbb{E}[X]) \le \mathbb{E}[-\log X]だから、

Eq(x0)[logpθ(x0)]=Eq(x0)[log(Eq(x1:Tx0)[pθ(x0:T)q(x1:Tx0)])]Eq(x0)[Eq(x1:Tx0)(logpθ(x0:T)q(x1:Tx0))]=Eq(x0:T)[logpθ(x0:T)q(x1:Tx0)] \begin{align*} \mathbb{E}_{q(\mathbf{x}_{0})}[-\log p_{\theta}(\mathbf{x}_{0})] &= \mathbb{E}_{q(\mathbf{x}_{0})} \left[ -\log \left( \mathbb{E}_{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \left[ \dfrac{ p_{\theta}(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \right] \right) \right] \\ &\le \mathbb{E}_{q(\mathbf{x}_{0})} \left[ \mathbb{E}_{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})}\left( -\log \dfrac{ p_{\theta}(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \right) \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log \dfrac{ p_{\theta}(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \right] \\ \end{align*}

最後の等号は条件付き確率密度関数の定義q(X,Y)=q(X)q(YX)q(X,Y) = q(X)q(Y|X)によって成立する。二つの期待値の形を積分形に直すとわかりやすいだろう。上の式に(4)(4)(7)(7)を代入すると次のようになる。

Eq(x0)[logpθ(x0)]Eq(x0:T)[logpθ(x0:T)q(x1:Tx0)]=Eq(x0:T)[logp(xT)t=1Tpθ(xt1xt)t=1Tq(xtxt1)]=Eq(x0:T)[logp(xT)t=1Tlogpθ(xt1xt)q(xtxt1)]=:L \begin{align*} \mathbb{E}_{q(\mathbf{x}_{0})}[-\log p_{\theta}(\mathbf{x}_{0})] &\le \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log \dfrac{ p_{\theta}(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log \dfrac{ p(\mathbf{x}_{T}) \prod\limits_{t=1}^{T} p_{\theta} (\mathbf{x}_{t-1} | \mathbf{x}_{t})}{\prod\limits_{t=1}^{T} q(\mathbf{x}_{t} | \mathbf{x}_{t-1})} \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log p(\mathbf{x}_{T}) - \sum\limits_{t=1}^{T} \log \dfrac{ p_{\theta} (\mathbf{x}_{t-1} | \mathbf{x}_{t})}{ q(\mathbf{x}_{t} | \mathbf{x}_{t-1})} \right] =: L \end{align*}

最後の等号は対数の性質によって成立する。上の式の左辺は実際に減らしたいものだが計算が不可能である。実際のデータの分布q(x0)q(\mathbf{x}_{0})を知らないからだ。だが、右辺を見ると、計算すべきものはp(xT)p(\mathbf{x}_{T})q(xtxt1)q(\mathbf{x}_{t} | \mathbf{x}_{t-1})で、最初のものは正規分布を仮定したので知っている。第二のものは拡散過程を実際に行うのでその値を得ることができる。したがって、右辺のLLはすべて実際に計算可能な値で構成されているので、この値を計算して最小化すれば、不等式により左辺も最小化することができる。

ここで数式を操作して損失関数を計算に効率的に改善することができる。今LLではlogpθ(xt1xt)q(xtxt1)\log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t} | \mathbf{x}_{t-1})}が含まれているが、これを計算するためにはpθ(xt1xt)p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})についてサンプリングする過程が必要だ。これは実際の値に対して分散が存在し、学習過程が不安定であることを意味する。それで、上の式をクルバック・ライブラー発散(KLD)が含まれた数式に書き直そう。今pθ(xt1xt)p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})q(xtxt1)q(\mathbf{x}_{t} | \mathbf{x}_{t-1})は全て正規分布を従うと仮定したから、以下の公式にしたがってKLDの閉じた形を得ることができ、分散なしに正確な損失関数を計算することができ、学習を安定的かつ効率的に行うことができる。

正規分布の相対的エントロピー:

2つの多変量正規分布 N(μ,Σ)N(\boldsymbol{\mu}, \Sigma)N(μ1,Σ1)N(\boldsymbol{\mu_{1}}, \Sigma_{1})間の相対的エントロピーは次の通り。μ,μ1RD\boldsymbol{\mu}, \boldsymbol{\mu}_{1} \in \mathbb{R}^{D}の時、

DKL(N(μ,Σ)N(μ1,Σ1))=12[log(ΣΣ1)+Tr(Σ11Σ)+(μμ1)TΣ11(μμ1)D] \begin{array}{l} D_{\text{KL}}\big( N(\boldsymbol{\mu}, \Sigma) \| N(\boldsymbol{\mu_{1}}, \Sigma_{1}) \big) \\[1em] = \dfrac{1}{2} \left[ \log \left( \dfrac{|\Sigma|}{|\Sigma_{1}|} \right) + \Tr(\Sigma_{1}^{-1}\Sigma) + (\boldsymbol{\mu} - \boldsymbol{\mu_{1}})^{\mathsf{T}} \Sigma_{1}^{-1} (\boldsymbol{\mu} - \boldsymbol{\mu_{1}}) - D \right] \end{array}

L=Eq(x0:T)[logp(xT)t=1Tlogpθ(xt1xt)q(xtxt1)]=Eq(x0:T)[logp(xT)t=2Tlogpθ(xt1xt)q(xtxt1)logpθ(x0x1)q(x1x0)] \begin{align*} L &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=1}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t} | \mathbf{x}_{t-1})} \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t} | \mathbf{x}_{t-1})} - \log \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{1} | \mathbf{x}_{0})} \right] \end{align*}

この時、第二項の分子をよく見ると、次のように書き換えられる。

q(xtxt1)=q(xtxt1,x0)by Markov property=q(xt,xt1,x0)q(xt1,x0)by def. of conditional pdf=q(xt1xt,x0)q(xt,x0)q(xt1,x0)by def. of conditional pdf=q(xt1xt,x0)q(xt,x0)q(xt1,x0)=q(xt1xt,x0)q(xt,x0)p(x0)q(xt1,x0)p(x0)=q(xt1xt,x0)q(xt,x0)p(x0)p(x0)q(xt1,x0)=q(xt1xt,x0)q(xtx0)q(xt1x0)by def. of conditional pdf \begin{align*} q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) &= q(\mathbf{x}_{t} | \mathbf{x}_{t-1}, \mathbf{x}_{0}) &\text{by Markov property} \\ &= \dfrac{q(\mathbf{x}_{t}, \mathbf{x}_{t-1}, \mathbf{x}_{0})}{q(\mathbf{x}_{t-1}, \mathbf{x}_{0})} &\text{by def. of conditional pdf} \\ &= \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) q(\mathbf{x}_{t}, \mathbf{x}_{0})}{q(\mathbf{x}_{t-1}, \mathbf{x}_{0})} &\text{by def. of conditional pdf} \\ &= q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \dfrac{q(\mathbf{x}_{t}, \mathbf{x}_{0})}{q(\mathbf{x}_{t-1}, \mathbf{x}_{0})} & \\ &= q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \dfrac{q(\mathbf{x}_{t}, \mathbf{x}_{0}) p(\mathbf{x}_{0})}{q(\mathbf{x}_{t-1}, \mathbf{x}_{0}) p(\mathbf{x}_{0})} & \\ &= q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \dfrac{q(\mathbf{x}_{t}, \mathbf{x}_{0}) }{ p(\mathbf{x}_{0})} \dfrac{p(\mathbf{x}_{0})}{q(\mathbf{x}_{t-1}, \mathbf{x}_{0})} & \\ &= q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \dfrac{q(\mathbf{x}_{t}| \mathbf{x}_{0})}{q(\mathbf{x}_{t-1}| \mathbf{x}_{0})} &\text{by def. of conditional pdf} \end{align*}

これを代入して次のように整理しよう。

L=Eq(x0:T)[logp(xT)t=2Tlog(pθ(xt1xt)q(xt1xt,x0)q(xt1x0)q(xtx0))logpθ(x0x1)q(x1x0)]=Eq(x0:T)[logp(xT)t=2Tlogpθ(xt1xt)q(xt1xt,x0)t=2Tlogq(xt1x0)q(xtx0)logpθ(x0x1)q(x1x0)]=Eq(x0:T)[logp(xT)t=2Tlogpθ(xt1xt)q(xt1xt,x0)log(q(xT1x0)q(xTx0)q(xT2x0)q(xT1x0)q(x1x0)q(x2x0))logpθ(x0x1)q(x1x0)]=Eq(x0:T)[logp(xT)t=2Tlogpθ(xt1xt)q(xt1xt,x0)log(q(xT1x0)q(xTx0)q(xT2x0)q(xT1x0)q(x1x0)q(x2x0)pθ(x0x1)q(x1x0))]=Eq(x0:T)[logp(xT)t=2Tlogpθ(xt1xt)q(xt1xt,x0)log(q(xT1x0)q(xTx0)q(xT1x0)q(xT1x0)q(x1x0)q(x2x0)pθ(x0x1)q(x1x0))]=Eq(x0:T)[logp(xT)t=2Tlogpθ(xt1xt)q(xt1xt,x0)logpθ(x0x1)q(xTx0)]=Eq(x0:T)[logp(xT)q(xTx0)t=2Tlogpθ(xt1xt)q(xt1xt,x0)logpθ(x0x1)]=Eq(x0:T)[logq(xTx0)p(xT)+t=2Tlogq(xt1xt,x0)pθ(xt1xt)logpθ(x0x1)](8)=Eq(x0:T)[logq(xTx0)p(xT)]+t=2TEq(x0:T)[logq(xt1xt,x0)pθ(xt1xt)]Eq(x0:T)[logpθ(x0x1)] \begin{align*} L &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \left( \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}\dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \right) - \log \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{1} | \mathbf{x}_{0})} \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} - \sum\limits_{t=2}^{T} \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} - \log \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{1} | \mathbf{x}_{0})} \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} \right. \\ &\qquad\qquad\qquad \left. -\log \left( \dfrac{q(\mathbf{x}_{T-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{T} | \mathbf{x}_{0})} \cdot \dfrac{q(\mathbf{x}_{T-2} | \mathbf{x}_{0})}{q(\mathbf{x}_{T-1} | \mathbf{x}_{0})} \cdots \dfrac{q(\mathbf{x}_{1} | \mathbf{x}_{0})}{q(\mathbf{x}_{2} | \mathbf{x}_{0})} \right) - \log \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{1} | \mathbf{x}_{0})} \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} \right. \\ &\qquad\qquad\qquad \left. - \log \left( \dfrac{q(\mathbf{x}_{T-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{T} | \mathbf{x}_{0})} \cdot \dfrac{q(\mathbf{x}_{T-2} | \mathbf{x}_{0})}{q(\mathbf{x}_{T-1} | \mathbf{x}_{0})} \cdots \dfrac{q(\mathbf{x}_{1} | \mathbf{x}_{0})}{q(\mathbf{x}_{2} | \mathbf{x}_{0})} \cdot \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{1} | \mathbf{x}_{0})} \right) \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} \right. \\ &\qquad\qquad\qquad \left. - \log \left( \dfrac{\color{red}{\cancel{\color{black}q(\mathbf{x}_{T-1} | \mathbf{x}_{0})}}}{q(\mathbf{x}_{T} | \mathbf{x}_{0})} \cdot \dfrac{\color{green}{\bcancel{\color{black}q(\mathbf{x}_{T-1} | \mathbf{x}_{0})}}}{\color{red}{\cancel{\color{black}q(\mathbf{x}_{T-1} | \mathbf{x}_{0})}}} \cdots \dfrac{\color{purple}{\cancel{\color{black}q(\mathbf{x}_{1} | \mathbf{x}_{0})}}}{\color{green}{\bcancel{\color{black}q(\mathbf{x}_{2} | \mathbf{x}_{0})}}} \cdot \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{\color{purple}{\cancel{\color{black}q(\mathbf{x}_{1} | \mathbf{x}_{0})}}} \right) \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} - \log \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{T} | \mathbf{x}_{0})} \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log \dfrac{p(\mathbf{x}_{T})}{q(\mathbf{x}_{T} | \mathbf{x}_{0})} - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} - \log p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1}) \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} + \sum\limits_{t=2}^{T} \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} - \log p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1}) \right] \\ (8) &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} \right] + \sum\limits_{t=2}^{T} \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} \right] - \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1}) \right] \tag{8} \end{align*}

(8)(8)の第一項は以下のような過程でKLDに関する式に書き換えることができる。

Eq(x0:T)[logq(xTx0)p(xT)]=q(x0:T)logq(xTx0)p(xT)dx0:T=q(x0)q(x1:Tx0)logq(xTx0)p(xT)dx0:Tby def. of conditional pdf=q(x0)q(x1:Tx0)logq(xTx0)p(xT)dx1:T1dxTdx0=q(x0)q(xTx0)logq(xTx0)p(xT)dxTdx0by def. of marginal pdf=Eq(x0)[q(xTx0)logq(xTx0)p(xT)dxT]=Eq(x0)[DKL(q(xTx0)p(xT))] \begin{align*} &\mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} \right] \\ &= \int q(\mathbf{x}_{0:T}) \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} d\mathbf{x}_{0:T} \\ &= \int q(\mathbf{x}_{0}) q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} d\mathbf{x}_{0:T} &\text{by def. of conditional pdf} \\ &= \int\int\int q(\mathbf{x}_{0}) q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} d\mathbf{x}_{1:T-1} d\mathbf{x}_{T} d\mathbf{x}_{0} \\ &= \int\int q(\mathbf{x}_{0}) q(\mathbf{x}_{T} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} d\mathbf{x}_{T} d\mathbf{x}_{0} &\text{by def. of marginal pdf} \\ &= \mathbb{E}_{q(\mathbf{x}_{0})}\left[ \int q(\mathbf{x}_{T} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} d\mathbf{x}_{T} \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( q(\mathbf{x}_{T} | \mathbf{x}_{0}) \| p(\mathbf{x}_{T}) \right) \Big] \end{align*}

論文ではEq(x0:T)=Eq=Eq(x0)\mathbb{E}_{q(\mathbf{x}_{0:T})} = \mathbb{E}_{q} = \mathbb{E}_{q(\mathbf{x}_{0})}で表記法を乱用しているので注意が必要である。もちろん、期待値の中の値はx0\mathbf{x}_{0}にのみ依存するので、他の確率変数に関して積分してもその値は11なので結果は同じである。しかし、論文ではこのような説明が全くないので、読者が自主的にうまく読まなければならない。

今度は(8)(8)の第二項を見てみよう。第一項と同様にq(x0:T)q(\mathbf{x}_{0:T})をうまく操作してq(xt1xt,x0)q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})が出てくるようにKLDの形で書くことができる。

t=2TEq(x0:T)[logq(xt1xt,x0)pθ(xt1xt)]=t=2Tq(x0:T)logq(xt1xt,x0)pθ(xt1xt)dx0:T=t=2Tq(x0)q(x1:Tx0)logq(xt1xt,x0)pθ(xt1xt)dx0:T=t=2Tq(x0)q(x1:t1,xt+1:Txt,x0)q(xtx0)logq(xt1xt,x0)pθ(xt1xt)dx0:T=t=2Tq(x0)q(x1:t1,xt+1:Txt,x0)q(xtx0)logq(xt1xt,x0)pθ(xt1xt)dx(1:t2,t+1:T)dxt1:tdx0=t=2Tq(x0)q(xt1xt,x0)q(xtx0)logq(xt1xt,x0)pθ(xt1xt)dxt1:tdx0=t=2Tq(x0)q(xtx0)DKL(q(xt1xt,x0)pθ(xt1xt))dxtdx0=q(x0)[t=2Tq(xtx0)DKL(q(xt1xt,x0)pθ(xt1xt))dxt]dx0=Eq(x0)[t=2TEq(xtx0)[DKL(q(xt1xt,x0)pθ(xt1xt))]] \begin{align*} &\sum\limits_{t=2}^{T} \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} \right] \\ &= \sum\limits_{t=2}^{T} \int q(\mathbf{x}_{0:T}) \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} d\mathbf{x}_{0:T} \\ &= \sum\limits_{t=2}^{T} \int q(\mathbf{x}_{0}) q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} d\mathbf{x}_{0:T} \\ &= \sum\limits_{t=2}^{T} \int q(\mathbf{x}_{0}) q(\mathbf{x}_{1:t-1}, \mathbf{x}_{t+1:T} | \mathbf{x}_{t}, \mathbf{x}_{0}) q(\mathbf{x}_{t} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} d\mathbf{x}_{0:T} \\ &= \sum\limits_{t=2}^{T} \int\int\int q(\mathbf{x}_{0}) q(\mathbf{x}_{1:t-1}, \mathbf{x}_{t+1:T} | \mathbf{x}_{t}, \mathbf{x}_{0}) q(\mathbf{x}_{t} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} d\mathbf{x}_{(1:t-2,t+1:T)} d\mathbf{x}_{t-1:t} d\mathbf{x}_{0} \\ &= \sum\limits_{t=2}^{T} \int\int q(\mathbf{x}_{0}) q(\mathbf{x}_{t-1}| \mathbf{x}_{t}, \mathbf{x}_{0}) q(\mathbf{x}_{t} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} d\mathbf{x}_{t-1:t} d\mathbf{x}_{0} \\ &= \sum\limits_{t=2}^{T} \int\int q(\mathbf{x}_{0}) q(\mathbf{x}_{t} | \mathbf{x}_{0}) D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) d\mathbf{x}_{t} d\mathbf{x}_{0} \\ &= \int q(\mathbf{x}_{0}) \left[ \sum\limits_{t=2}^{T} \int q(\mathbf{x}_{t} | \mathbf{x}_{0}) D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) d\mathbf{x}_{t} \right] d\mathbf{x}_{0} \\ &= \mathbb{E}_{q(\mathbf{x}_{0})} \left[ \sum\limits_{t=2}^{T} \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) \Big] \right] \\ \end{align*}

論文ではこれをEq[t=2TDKL(q(xt1xt,x0)pθ(xt1xt))]\displaystyle \mathbb{E}_{q} \left[ \sum\limits_{t=2}^{T} D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) \right]と表記していることに注意しよう。第一項と同様に依存しない変数であえて積分し直せば、論文の表記と一致するようにも書き直すことができる。

(8)(8)は最終的に次のようにKLDを含む式に再び表すことができる。

L=Eq(x0)[DKL(q(xTx0)p(xT))]+Eq(x0)[t=2TEq(xtx0)[DKL(q(xt1xt,x0)pθ(xt1xt))]]Eq(x0:T)[logpθ(x0x1)] \begin{align*} &L = \mathbb{E}_{q(\mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( q(\mathbf{x}_{T} | \mathbf{x}_{0}) \| p(\mathbf{x}_{T}) \right) \Big] \\ &\qquad +\mathbb{E}_{q(\mathbf{x}_{0})} \left[ \sum\limits_{t=2}^{T} \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) \Big] \right] - \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1}) \right] \end{align*}

もちろん、上記のように説明したように、q(xt)f(xt)dxt=f(xt)\int q(\mathbf{x}_{t^{\prime}}) f(\mathbf{x}_{t}) d\mathbf{x}_{t^{\prime}} = f(\mathbf{x}_{t})である積分トリックを使うと次のように一つの項にまとめて表現することもできる。

Eq(x0:T)[DKL(q(xTx0)p(xT))LT+t=2T[DKL(q(xt1xt,x0)pθ(xt1xt))]Lt1logpθ(x0x1)L0] \mathbb{E}_{q(\mathbf{x}_{0:T})} \bigg[ \underbrace{D_{\text{KL}} \left( q(\mathbf{x}_{T} | \mathbf{x}_{0}) \| p(\mathbf{x}_{T}) \right)}_{L_{T}} + \sum\limits_{t=2}^{T} \underbrace{\Big[ D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) \Big]}_{L_{t-1}} - \underbrace{\log p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}_{L_{0}} \bigg]

ここでq(xt1xt,x0)q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})は次のように計算することができる。

条件付き確率の性質

p(xy,z)=p(x,yz)p(yz) p(\mathbf{x} | \mathbf{y}, \mathbf{z}) = \dfrac{p(\mathbf{x}, \mathbf{y} | \mathbf{z}) }{p(\mathbf{y} | \mathbf{z})}

q(xt1xt,x0)=q(xt,xt1x0)q(xtx0)=q(xtxt1,x0)q(xt1x0)q(xtx0)=q(xtxt1)q(xt1x0)q(xtx0) \begin{align*} q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) &= \dfrac{q(\mathbf{x}_{t}, \mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \\ &= \dfrac{q(\mathbf{x}_{t} | \mathbf{x}_{t-1}, \mathbf{x}_{0}) q(\mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \\ &= \dfrac{q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) q(\mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \end{align*}

最後の等号は{xt}\left\{ \mathbf{x}_{t} \right\}がマルコフであると仮定したために成り立つ。上の式の確率密度関数は(3)(3)(6)(6)で求めたのでそのまま代入すれば良い。

q(xt1xt,x0)=q(xtxt1)q(xt1x0)q(xtx0)=Cexp(12(xtαtxt1)2(1αt))exp(12(xt1αt1x0)2(1αt1))exp(12(xtαtx0)2(1αt))=Cexp[12(11αtxtTxt2αt1αtxtTxt1+αt1αtxt1Txt1+11αt1xt1Txt12αt11αt1x0Txt1+αt11αt1x0Tx011αtxtTxt+2αt1αtxtTx0αt1αtx0Tx0)] \begin{align*} &q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \\ &= \dfrac{q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) q(\mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \\ &= C \dfrac{\exp\left( - \dfrac{1}{2} \dfrac{\left( \mathbf{x}_{t} - \sqrt{\alpha_{t}}\mathbf{x}_{t-1} \right)^{2}}{(1-\alpha_{t})} \right) \exp\left( - \dfrac{1}{2} \dfrac{\left( \mathbf{x}_{t-1} - \sqrt{\overline{\alpha}_{t-1}}\mathbf{x}_{0} \right)^{2}}{(1-\overline{\alpha}_{t-1})} \right)}{\exp\left( - \dfrac{1}{2} \dfrac{\left( \mathbf{x}_{t} - \sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} \right)^{2}}{(1-\overline{\alpha}_{t})} \right)} \\ &= C \exp\left[ -\dfrac{1}{2} \left( \dfrac{1}{1-\alpha_{t}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} - \dfrac{2\sqrt{\alpha_{t}}}{1-\alpha_{t}} \mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t-1} + \dfrac{\alpha_{t}}{1-\alpha_{t}} \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} \right.\right.\\ &\qquad\qquad\qquad \quad + \dfrac{1}{1-\overline{\alpha}_{t-1}}\mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} - \dfrac{2\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{t-1} + \dfrac{\overline{\alpha_{t-1}}}{1-\overline{\alpha}_{t-1}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0} \\ &\qquad\qquad\qquad\quad \left.\left. - \dfrac{1}{1-\overline{\alpha}_{t}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + \dfrac{2\sqrt{\overline{\alpha}_{t}}}{1-\overline{\alpha}_{t}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} - \dfrac{\overline{\alpha_{t}}}{1-\overline{\alpha}_{t}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0} \right)\right] \tag{9} \end{align*}

ここでC=1(2π(1αt)(1αt)(1αt))DC = \dfrac{1}{\sqrt{ \left(2\pi \dfrac{(1-\alpha_{t})(1-\overline{\alpha_{t}})}{(1-\overline{\alpha_{t}})} \right)^{D} }}である。求める分布がq(xt1xt,x0)q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})であるから、指数部分をxt1\mathbf{x}_{t-1}に関して整理しよう。

(αt1αt+11αt1)xt1Txt12(αt1αtxtT+αt11αt1x0T)xt1+[(11αt11αt)xtTxt+2αt1αtxtTx0+(αt11αt1αt1αt)x0Tx0] \begin{align*} &\left( \dfrac{\alpha_{t}}{1-\alpha_{t}} + \dfrac{1}{1-\overline{\alpha}_{t-1}} \right) \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} - 2\left( \dfrac{\sqrt{\alpha_{t}}}{1-\alpha_{t}} \mathbf{x}_{t}^{\mathsf{T}} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}\mathbf{x}_{0}^{\mathsf{T}} \right)\mathbf{x}_{t-1} \\ &\qquad + \left[ \left( \dfrac{1}{1-\alpha_{t}} - \dfrac{1}{1-\overline{\alpha}_{t}} \right)\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + 2\dfrac{\sqrt{\overline{\alpha}_{t}}}{1-\overline{\alpha}_{t}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} + \left( \dfrac{\overline{\alpha}_{t-1}}{1-\overline{\alpha}_{t-1}} - \dfrac{\overline{\alpha}_{t}}{1-\overline{\alpha}_{t}} \right)\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0}\right] \end{align*}

加算された定数を次のように通分しよう。

(αt1αt+11αt1)=αtαtαt1+1αt(1αt)(1αt1)=1αt(1αt)(1αt1) \left( \dfrac{\alpha_{t}}{1-\alpha_{t}} + \dfrac{1}{1-\overline{\alpha}_{t-1}} \right) = \dfrac{\alpha_{t} - \alpha_{t}\overline{\alpha}_{t-1} + 1 - \alpha_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})} = \dfrac{1 - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})}

(11αt11αt)=αtαt(1αt)(1αt)=αt(1αt1)(1αt)(1αt) \left( \dfrac{1}{1-\alpha_{t}} - \dfrac{1}{1-\overline{\alpha}_{t}} \right) = \dfrac{\alpha_{t} - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t})} = \dfrac{\alpha_{t}(1-\overline{\alpha}_{t-1})}{(1-\alpha_{t})(1-\overline{\alpha}_{t})}

(αt11αt1αt1αt)=αt1αt(1αt1)(1αt)=αt1(1αt)(1αt1)(1αt) \left( \dfrac{\overline{\alpha}_{t-1}}{1-\overline{\alpha}_{t-1}} - \dfrac{\overline{\alpha}_{t}}{1-\overline{\alpha}_{t}} \right) = \dfrac{\overline{\alpha}_{t-1} - \overline{\alpha}_{t}}{(1-\overline{\alpha}_{t-1})(1-\overline{\alpha}_{t})} = \dfrac{\overline{\alpha}_{t-1}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t-1})(1-\overline{\alpha}_{t})}

すると次のように整理される。

1αt(1αt)(1αt1)xt1Txt12(αt1αtxtT+αt11αt1x0T)xt1+[αt(1αt1)(1αt)(1αt)xtTxt+2αt1αtxtTx0+αt1(1αt)(1αt1)(1αt)x0Tx0] \begin{align*} & \dfrac{1 - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})} \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} - 2\left( \dfrac{\sqrt{\alpha_{t}}}{1-\alpha_{t}} \mathbf{x}_{t}^{\mathsf{T}} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}\mathbf{x}_{0}^{\mathsf{T}} \right)\mathbf{x}_{t-1} \\ &\qquad + \left[ \dfrac{\alpha_{t}(1-\overline{\alpha}_{t-1})}{(1-\alpha_{t})(1-\overline{\alpha}_{t})}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + 2\dfrac{\sqrt{\overline{\alpha}_{t}}}{1-\overline{\alpha}_{t}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} + \dfrac{\overline{\alpha}_{t-1}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t-1})(1-\overline{\alpha}_{t})}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0}\right] \end{align*}

xt1Txt1\mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1}項の定数をまとめると、

1αt(1αt)(1αt1)(xt1Txt12((1αt1)αt1αtxtT+(1αt)αt11αtx0T)xt1+[αt(1αt1)2(1αt)2xtTxt+2(1αt)(1αt1)αt(1αt)2xtTx0+αt1(1αt)2(1αt)2x0Tx0])(10) \begin{align*} & \frac{1 - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})} \left( \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} - 2 \left( \frac{(1-\overline{\alpha}_{t-1})\sqrt{\alpha_{t}}}{1 - \overline{\alpha}_{t}} \mathbf{x}_{t}^{\mathsf{T}} + \frac{(1-\alpha_{t})\overline{\alpha}_{t-1}}{1 - \overline{\alpha}_{t}}\mathbf{x}_{0}^{\mathsf{T}} \right)\mathbf{x}_{t-1} \right. \\ &\qquad +\left. \left[ \frac{\alpha_{t}(1-\overline{\alpha}_{t-1})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + 2\frac{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})\sqrt{\overline{\alpha}_{t}}}{(1 - \overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} + \frac{\overline{\alpha}_{t-1}(1 - \alpha_{t})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0}\right] \right) \end{align*} \tag{10}

上の式の定数項を再び次のように整理できる。

[αt(1αt1)2(1αt)2xtTxt+2(1αt)(1αt1)αtαt1(1αt)2xtTx0+αt1(1αt)2(1αt)2x0Tx0]=[αt2(1αt1)2(1αt)2xtTxt+2(1αt)(1αt1)αtαt1(1αt)2xtTx0+αt12(1αt)2(1αt)2x0Tx0]=[αt(1αt1)(1αt)xt+αt1(1αt)(1αt)x0]2 \begin{align*} &\left[ \dfrac{\alpha_{t}(1-\overline{\alpha}_{t-1})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + 2\dfrac{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})\sqrt{\alpha_{t}\overline{\alpha}_{t-1}}}{(1 - \overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} + \dfrac{\overline{\alpha}_{t-1}(1 - \alpha_{t})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0}\right] \\ &=\left[ \dfrac{\sqrt{\alpha_{t}}^{2}(1-\overline{\alpha}_{t-1})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + 2\dfrac{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})\sqrt{\alpha_{t}\overline{\alpha}_{t-1}}}{(1 - \overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}^{2}(1 - \alpha_{t})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0}\right] \\ &=\left[ \dfrac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0}\right]^{2} \\ \end{align*}

これを(10)(10)に代入すると次が得られる。

1αt(1αt)(1αt1)(xt1Txt12((1αt1)αt1αtxtT+(1αt)αt11αtx0T)xt1+[αt(1αt1)(1αt)xt+αt1(1αt)(1αt)x0]2)=1αt(1αt)(1αt1)(xt[αt(1αt1)(1αt)xt+αt1(1αt)(1αt)x0])2 \begin{align*} & \dfrac{1 - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})} \left( \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} - 2 \left( \dfrac{(1-\overline{\alpha}_{t-1})\sqrt{\alpha_{t}}}{1 - \overline{\alpha}_{t}} \mathbf{x}_{t}^{\mathsf{T}} + \dfrac{(1-\alpha_{t})\overline{\alpha}_{t-1}}{1 - \overline{\alpha}_{t}}\mathbf{x}_{0}^{\mathsf{T}} \right)\mathbf{x}_{t-1} \right. \\ &\qquad \left. +\left[ \dfrac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0}\right]^{2} \right) \\ &= \dfrac{1 - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})} \left( \mathbf{x}_{t} - \left[ \dfrac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0}\right] \right)^{2} \end{align*}

最後にこの式を(9)(9)に代入すると以下のようになる。

q(xt1xt,x0)=1(2π(1αt)(1αt)(1αt))Dexp[12(xt[αt(1αt1)(1αt)xt+αt1(1αt)(1αt)x0])2(1αt)(1αt1)(1αt)] \begin{array}{l} q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \\ = \frac{1}{\sqrt{ \left(2\pi \frac{(1-\alpha_{t})(1-\overline{\alpha_{t}})}{(1-\overline{\alpha_{t}})} \right)^{D} }} \exp\left[ -\dfrac{1}{2} \dfrac{\left( \mathbf{x}_{t} - \left[ \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0}\right] \right)^{2}}{\frac{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})}{(1 - \overline{\alpha}_{t})}} \right] \end{array}

これは次の多変量正規分布と同じである。

q(xt1xt,x0)=N(αt(1αt1)(1αt)xt+αt1(1αt)(1αt)x0,(1αt)(1αt1)(1αt)I)=N(μ~t(xt,x0),β~tI) \begin{align*} q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) &= \mathcal{N} \left( \dfrac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0}, \dfrac{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})}{(1 - \overline{\alpha}_{t})}\mathbf{I} \right) \\ &= \mathcal{N} ( \tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}), \tilde{\beta}_{t} \mathbf{I}) \end{align*}

whereμ~t(xt,x0)=αt(1αt1)(1αt)xt+αt1(1αt)(1αt)x0, \text{where}\qquad \tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}) = \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0},

β~t=(1αt1)βt(1αt) \tilde{\beta}_{t} = \frac{(1-\overline{\alpha}_{t-1}) \beta_{t}}{(1 - \overline{\alpha}_{t})}

3 拡散モデルとノイズ除去オートエンコーダー

3.1 順方向過程とLTL_{T}

論文では拡散係数βt\beta_{t}を学習するパラメータではなく定数として固定する。LTL_{T}は次のように表現されるが、βt\beta_{t}が定数であれば学習するパラメーターがないので実際に損失関数を実装するときこの項を無視しても良い。

LT=DKL(q(xTx0)p(xT))=DKL[N(αtx0,(1αt)I)N(0,I)]=12[log(1αt)D+D(1αt)+αtx02D] \begin{align*} L_{T} &= D_{\text{KL}} \left( q(\mathbf{x}_{T} | \mathbf{x}_{0}) \| p(\mathbf{x}_{T}) \right) \\ &= D_{\text{KL}} \Big[ \mathcal{N} \left( \sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0}, (1-\overline{\alpha}_{t}) \mathbf{I} \right) \| \mathcal{N} \left( 0, \mathbf{I} \right) \Big] \\ &= \dfrac{1}{2} \left[ \log (1-\overline{\alpha}_{t})^{D} + D(1-\overline{\alpha}_{t}) + \overline{\alpha}_{t}\mathbf{x}_{0}^{2} - D \right] \end{align*}

3.2 逆方向過程とL1:T1L_{1:T-1}

著者はpθ(xt1xt)=N(μθ(xt,t),Σθ(xt,t))p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}(\boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t), \boldsymbol{\Sigma}_{\theta} (\mathbf{x}_{t}, t))で共分散行列はΣθ(xt,t)=σt2I\boldsymbol{\Sigma}_{\theta} (\mathbf{x}_{t}, t) = \sigma_{t}^{2} \mathbf{I}とした。つまり、学習するパラメータを設定しなかった。実験的に以下の2つの環境に対して似た結果を得たという。

σt2=βtorσt2=β~t=1αt11αtβt \sigma_{t}^{2} = \beta_{t} \qquad \text{or} \qquad \sigma_{t}^{2} = \tilde{\beta}_{t} = \dfrac{1 - \overline{\alpha}_{t-1}}{1 - \overline{\alpha}_{t}} \beta_{t}

左の設定はx0N(0,I)\mathbf{x}_{0} \sim \mathcal{N} (\mathbf{0}, \mathbf{I})で抽出してデータセットに対して学習するときに最適であり、右の設定は固定された1つのx0N(x0,I)\mathbf{x}_{0} \sim \mathcal{N} (\mathbf{x}_{0}, \mathbf{I})で学習する時に最適だという。

今や損失関数Lt1L_{t-1}を見ると次のようだ。

Lt1=Eq(xtx0)[DKL(q(xt1xt,x0)pθ(xt1xt))]=Eq(xtx0)[DKL(N(μ~t(xt,x0),β~tI)N(μθ(xt,t),σt2I))]=Eq(xtx0)[12(log(β~tσt2)D+Dβ~tσt2+(μ~t(xt,x0)μθ(xt,t))2σt2D)]=Eq(xtx0)[12σt2(μ~t(xt,x0)μθ(xt,t))2]+C2 \begin{align*} L_{t-1} &= \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) \Big] \\ &= \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( \mathcal{N}( \tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}), \tilde{\beta}_{t} \mathbf{I}) \| \mathcal{N}(\boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t), \sigma_{t}^{2} \mathbf{I}) \right) \Big] \\ &= \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \left[ \dfrac{1}{2} \left( \log \left( \dfrac{\tilde{\beta}_{t}}{\sigma_{t}^{2}} \right)^{D} + D\dfrac{\tilde{\beta}_{t}}{\sigma_{t}^{2}} + \dfrac{(\tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}) - \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t))^{2}}{\sigma_{t}^{2}} - D \right) \right] \\ &= \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \left[ \dfrac{1}{2\sigma_{t}^{2}} (\tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}) - \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t))^{2}\right] + C_{2} \end{align*}

ここでC2C_{2}θ\thetaに依存しない定数である。それでμθ\boldsymbol{\mu}_{\theta}μ~t\tilde{\boldsymbol{\mu}}_{t}を予測するモデルである。ここでμ~t\tilde{\boldsymbol{\mu}}_{t}を明示的な形で解き出し、学習の対象をより明確にしよう。(5)(5)xt\mathbf{x}_{t}を見るx0\mathbf{x}_{0}ϵ\boldsymbol{\epsilon}の関数としてxt(x0,ϵ)=αtx0+1αtϵ\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) = \sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} + \sqrt{1-\overline{\alpha}_{t}}\boldsymbol{\epsilon}に置き換えれば、μ~t(xt,x0)\tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0})は次の通り変わる。

μ~t(xt,x0)=αt(1αt1)(1αt)xt+αt1(1αt)(1αt)x0=αt(1αt1)(1αt)xt(x0,ϵ)+αt1(1αt)(1αt)(1αtxt(x0,ϵ)1αtαtϵ)=(αt(1αt1)(1αt)+αt1(1αt)(1αt)αt)xt(x0,ϵ)αt1(1αt)1αt(1αt)αtϵ=(αt(1αt1)αt(1αt)+(1αt)(1αt)αt)xt(x0,ϵ)(1αt)1αtαtϵ=1αt((αtαt)+(1αt)(1αt)xt(x0,ϵ)βt1αtϵ)=1αt(xt(x0,ϵ)βt1αtϵ) \begin{align*} \tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}) &= \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0} \\ &= \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) + \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})} \left( \dfrac{1}{\sqrt{\overline{\alpha}_{t}}} \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \dfrac{\sqrt{1-\overline{\alpha}_{t}}}{\sqrt{\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) \\ &= \left( \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})} + \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})\sqrt{\overline{\alpha}_{t}}} \right)\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})\sqrt{1-\overline{\alpha}_{t}}}{(1-\overline{\alpha}_{t})\sqrt{\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \\ &= \left( \frac{\alpha_{t}(1-\overline{\alpha}_{t-1})}{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t})} + \frac{(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})\sqrt{\alpha_{t}}} \right)\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{(1 - \alpha_{t})}{\sqrt{1-\overline{\alpha}_{t}}\sqrt{\alpha_{t}}}\boldsymbol{\epsilon} \\ &= \dfrac{1}{\sqrt{\alpha_{t}}}\left( \frac{ (\alpha_{t} - \overline{\alpha}_{t}) + (1 - \alpha_{t})}{(1-\overline{\alpha}_{t})} \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) \\ &= \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) \\ \end{align*}

したがって上記のLt1L_{t-1}は再び次のように整理される。

Lt1=Ext(x0,ϵ)[12σt2[1αt(xt(x0,ϵ)βt1αtϵ)μθ(xt(x0,ϵ),t)]2]+C2(11) L_{t-1} = \mathbb{E}_{\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon})} \left[ \dfrac{1}{2\sigma_{t}^{2}} \left[ \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) - \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}), t) \right]^{2} \right] + C_{2} \tag{11}

すると結局、μθ(xt,t)\boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t)が学習すべき対象は1αt(xt(x0,ϵ)βt1αtϵ)\dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right)である。ここでxt\mathbf{x}_{t}は入力として与えられ、βt\beta_{t}は固定された定数だから実際に神経網μθ(xt,t)\boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t)が学習するべきはϵ=ϵt\boldsymbol{\epsilon} = \boldsymbol{\epsilon}_{t}である。したがってパラメータθ\thetaに依存する項はϵ\boldsymbol{\epsilon}だけである。

μθ(xt,t)=1αt(xtβt1αtϵθ(xt,t))(12) \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t) = \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t} - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t}, t) \right) \tag{12}

これはある意味で非常に当然であり直感的な結果である。なぜならxT\mathbf{x}_{T}x0\mathbf{x}_{0}からノイズϵt\boldsymbol{\epsilon}_{t}を常に加えて作られたので、そのノイズをすべて知ることができればx0\mathbf{x}_{0}を復元できるからだ。もちろん、この説明自体は厳密ではなく直感的だが、上の論理展開によりそれが直感的であるだけでなく数学的にも妥当であることが分かる。

μθ\boldsymbol{\mu}_{\theta}p(xt1xt)=N(μθ,σt2I)p(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}( \boldsymbol{\mu}_{\theta}, \sigma_{t}^{2}\mathbf{I})の平均ベクトルであった。したがって、xt\mathbf{x}_{t}が与えられたとき、xt1pθ(xt1xt)\mathbf{x}_{t-1} \sim p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})は次のようにサンプリングされる((3)(3)がどのようにして出てきたのかをもう一度見ろ)。

xt1=1αt(xtβt1αtϵθ(xt,t))+σtz,zN(0,I) \mathbf{x}_{t-1} = \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t} - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t}, t) \right) + \sigma_{t} \mathbf{z},\qquad \mathbf{z} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) \\

最終的に(12)(12)(11)(11)に代入すると次が得られる。

Ext(x0,ϵ)[12σt2[1αt(xt(x0,ϵ)βt1αtϵ)μθ(xt(x0,ϵ),t)]2]=Ext[12σt2[1αt(xtβt1αtϵ)1αt(xtβt1αtϵθ(xt,t))]2]=Ext[12σt2[1αtβt1αtϵ1αtβt1αtϵθ(xt,t)]2]=Ext[βt22σt2αt(1αt)[ϵϵθ(xt,t)]2]=Ex0,ϵ[βt22σt2αt(1αt)[ϵϵθ(αtx0+1αtϵ,t)]2] \begin{align*} & \mathbb{E}_{\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon})} \left[ \dfrac{1}{2\sigma_{t}^{2}} \left[ \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) - \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}), t) \right]^{2} \right] \\ &= \mathbb{E}_{\mathbf{x}_{t}} \left[ \dfrac{1}{2\sigma_{t}^{2}} \left[ \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t} - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) - \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t} - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t}, t) \right) \right]^{2} \right] \\ &= \mathbb{E}_{\mathbf{x}_{t}} \left[ \dfrac{1}{2\sigma_{t}^{2}} \left[ \dfrac{1}{\sqrt{\alpha_{t}}}\frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} - \dfrac{1}{\sqrt{\alpha_{t}}}\frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t}, t) \right]^{2} \right] \\ &= \mathbb{E}_{\mathbf{x}_{t}} \left[ \dfrac{\beta_{t}^{2}}{2\sigma_{t}^{2}\alpha_{t} (1 - \overline{\alpha}_{t})} \left[ \boldsymbol{\epsilon} - \boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t}, t) \right]^{2} \right] \\ &= \mathbb{E}_{\mathbf{x}_{0}, \boldsymbol{\epsilon}} \left[ \dfrac{\beta_{t}^{2}}{2\sigma_{t}^{2}\alpha_{t} (1 - \overline{\alpha}_{t})} \left[ \boldsymbol{\epsilon} - \boldsymbol{\epsilon}_{\theta}(\sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} + \sqrt{1-\overline{\alpha}_{t}}\boldsymbol{\epsilon}, t) \right]^{2} \right] \\ \end{align*}

今までの説明を元に訓練とサンプリング過程を疑似コードで表すと次の通りである。

3.3 データスケーリング、逆方向過程デコーダー、そしてL0L_{0}

今までの議論はすべて連続確率密度関数に関するものだった。画像データは{0,1,,255}\left\{ 0, 1, \dots, 255 \right\}の値を持つ離散変数であるため、適切なスケーリングが必要だ。まず{0,1,,255}\left\{ 0, 1, \dots, 255 \right\}の値は[1,1][-1, 1]で線形にスケーリングされる。そして作者たちは最終的にサンプリングの最後の過程pθ(x0,x1)p_{\theta}(\mathbf{x}_{0}, \mathbf{x}_{1})を次のように置いた。

pθ(x0x1)=i=1Dδ(x0i)δ+(x0i)N(x;μθi(x1,1),σ12)dx p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1}) = \prod\limits_{i = 1}^{D} \int\limits_{\delta_{-}(x_{0}^{i})}^{\delta_{+}(x_{0}^{i})} \mathcal{N}(x; \mu_{\theta}^{i}(\mathbf{x}_{1}, 1), \sigma_{1}^{2}) dx

δ+(x)={if x=1x+1255if x<1,δ(x)={x1255if x>1if x=1 \delta_{+}(x) = \begin{cases} \infty & \text{if } x = 1 \\ x + \frac{1}{255} & \text{if } x \lt 1 \end{cases}, \qquad \delta_{-}(x) = \begin{cases} x - \frac{1}{255} & \text{if } x \gt -1 \\ -\infty & \text{if } x = -1 \end{cases}

ここでx0ix_{0}^{i}x0\mathbf{x}_{0}ii番目のピクセルを意味する。すなわち、画像のピクセル値xx[x1255,x+1255][x - \frac{1}{255}, x + \frac{1}{255}]の区間と見なすということだ。

3.4 簡略化された訓練の目的

3.2節でϵ\boldsymbol{\epsilon}を予測できるようにLt1L_{t-1}を求めたが、実験的には性能および実装面でも先頭の定数を取り去って次のように使用する方が良かったという。

Lsimple(θ):=Et,x0,ϵ[(ϵϵθ(αtx0+1αtϵ,t))2] L_{\text{simple}}(\theta) := \mathbb{E}_{t, \mathbf{x}_{0}, \boldsymbol{\epsilon}} \left[ \left( \boldsymbol{\epsilon} - \boldsymbol{\epsilon}_{\theta}(\sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} + \sqrt{1-\overline{\alpha}_{t}}\boldsymbol{\epsilon}, t) \right)^{2} \right]

上の疑似コードに示されている通り、tt11からTTまでの範囲で一様分布から抽出する。


  1. Ho, Jonathan, Ajay Jain, and Pieter Abbeel. “Denoising diffusion probabilistic models.” Advances in neural information processing systems 33 (2020): 6840-6851. ↩︎

  2. https://x.com/cyxacxa https://x.com/cyxacxa/status/1903757493987389938/photo/1 ↩︎

  3. Sohl-Dickstein, Jascha, et al. “Deep unsupervised learning using nonequilibrium thermodynamics.” International conference on machine learning. pmlr, 2015. ↩︎

  4. Feller, William. “Retracted chapter: On the theory of stochastic processes, with particular reference to applications.” Selected Papers I. Springer, Cham, 2015. 769-798. ↩︎