論文レビュー:デノイジング拡散確率モデル (DDPM)
📂機械学習 論文レビュー:デノイジング拡散確率モデル (DDPM) 概要と要約 生成モデル とは、与えられたランダムサンプル { y i } \left\{ y_{i} \right\} { y i } が従う確率分布 Y Y Y またはそれを見つける方法を指す。何もないところからこれを見つけるのは非常に難しいので、通常は既によく知られた分布から目的の分布を近似する方法を見つける。それで、よく知られた分布X X X に従うデータセット{ x i } \left\{ x_{i} \right\} { x i } が与えられたとき、生成モデルとは次のような関数 f f f であり、生成モデルを開発するということはf f f をうまく近似する関数を見つけることを指す。
f : { x i } → { y j }
f : \left\{ x_{i} \right\} \to \left\{ y_{j} \right\}
f : { x i } → { y j }
よく知られた分布X X X で最も多く使用されるのは正規分布 である。したがって、生成モデルを簡単に理解したい場合は、正規分布から未知の分布に従うサンプルを抽出する方法を見つけるというふうに受け取っても差し支えない。
Denoising Diffusion Probabilistic Models (DDPM) でも同様に、正規分布から他の未知の分布に従うデータを抽出する方法を紹介する。正規分布N ( 0 , I ) N(0, I) N ( 0 , I ) から抽出されたあるノイズ z \mathbf{z} z とある未知の分布X X X から抽出されたと仮定される画像x 0 \mathbf{x}_{0} x 0 があるとしよう。ノイズz \mathbf{z} z からx 0 \mathbf{x}_{0} x 0 を作り出す関数x 0 = p ( z ) \mathbf{x}_{0} = p(\mathbf{z}) x 0 = p ( z ) を見つけるのは当然難しいが、よく考えてみるとx 0 \mathbf{x}_{0} x 0 を損傷してz \mathbf{z} z を作る逆関数z = q ( x 0 ) \mathbf{z} = q(\mathbf{x}_{0}) z = q ( x 0 ) を見つけることも容易ではないだろう。(写真出典 )
ところが、画像x 0 \mathbf{x}_{0} x 0 に正規分布から抽出された非常に小さいノイズϵ 1 \boldsymbol{\epsilon}_{1} ϵ 1 が加えられ、少しだけ損傷curruption された画像x 1 = x 0 + ϵ 1 \mathbf{x}_{1} = \mathbf{x}_{0} + \boldsymbol{\epsilon}_{1} x 1 = x 0 + ϵ 1 を得るのは簡単なことだ。ここに再び小さいガウシアンノイズϵ 2 \boldsymbol{\epsilon}_{2} ϵ 2 を抽出して加えてx 2 = x 1 + ϵ 2 \mathbf{x}_{2} = \mathbf{x}_{1} + \boldsymbol{\epsilon}_{2} x 2 = x 1 + ϵ 2 を得るのも容易だ。このような過程を非常に多く繰り返して得た、x T \mathbf{x}_{T} x T はまるで正規分布から抽出されたノイズのようになるだろう。言い換えれば、画像x 0 \mathbf{x}_{0} x 0 にガウシアンノイズを繰り返し加えて損傷させると、結局正規分布から抽出されたノイズと同じ画像が得られることになる。この過程を拡散 diffusion と呼ぶ。この理由は、実際に微細な粒子が不規則かつランダムに拡散していく 現象であるブラウン運動 が数学的にはガウス分布から抽出された値を連続的に加えていくこととして説明され、ブラウン運動が実際に拡散方程式(熱方程式)と関連しているからである。
拡散過程がノイズを加え続けることなので、その逆過程はノイズを取り除くプロセスになる。したがってこの逆過程は自然にディノイジング denoising になる。この論文ではよく知られた拡散という過程の情報を利用して、未知のディノイジングという逆過程を行う方法を紹介する。これらのアイデアは、2015年の論文 Deep Unsupervised Learning using Nonequilibrium Thermodynamics でdiffusion probabilistic models (DPM)という名前で初めて紹介され、DDPMはそれを補完しディープラーニングとよく結合した論文である。
DDPM論文と補遺 は数式展開にそれほど親切ではない。これをレビューした多くの記事も数式がどのように展開され導出されるかを明確に説明していない。本記事ではDDPMの性能や成果物については扱わず、DDPMが数学的にどのように技術されるかを詳しく扱う。それで記事が少し長くなってしまうが、少なくとも数式展開でつまずく部分はないはずだ。
1行の数式もおおざっぱに超えていない。断言するが、世界でDDPM論文の数式を最も数学的に正確かつ詳細に説明した記事である。
基礎(preliminaries) 本論文では確率変数 x ∈ R D \mathbf{x} \in \mathbb{R}^{D} x ∈ R D とその実現 をすべてx ∈ R D \mathbf{x} \in \mathbb{R}^{D} x ∈ R D で表記する。つまり一般的に確率変数X X X に対する確率密度関数がp X ( x ) p_{X}(x) p X ( x ) のように表現されるなら、本論文ではp ( x ) = p x ( x ) p(\mathbf{x}) = p_{\mathbf{x}}(\mathbf{x}) p ( x ) = p x ( x ) のように記述する。特徴抽出
確率変数の数列( x 0 , x 1 , … , x T ) = { x t } t = 0 T (\mathbf{x}_{0}, \mathbf{x}_{1}, \dots, \mathbf{x}_{T}) = \left\{ \mathbf{x}_{t} \right\}_{t=0}^{T} ( x 0 , x 1 , … , x T ) = { x t } t = 0 T を確率過程 と呼ぶ。本論文では確率過程をx 0 : T = ( x 0 , x 1 , … , x T ) \mathbf{x}_{0:T} = (\mathbf{x}_{0}, \mathbf{x}_{1}, \dots, \mathbf{x}_{T}) x 0 : T = ( x 0 , x 1 , … , x T ) のように表記する。x 0 : T \mathbf{x}_{0:T} x 0 : T の結合確率密度関数 を次のように表記する。
p ( x 0 : T ) = p x 0 : T ( x 0 : T )
p(\mathbf{x}_{0:T}) = p_{\mathbf{x}_{0:T}}(\mathbf{x}_{0:T})
p ( x 0 : T ) = p x 0 : T ( x 0 : T )
x 0 : T − 1 \mathbf{x}_{0:T-1} x 0 : T − 1 に対するx T \mathbf{x}_{T} x T の条件付き確率密度関数 とは、次を満たすp ( x T ∣ x 0 : T − 1 ) p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) p ( x T ∣ x 0 : T − 1 ) を指す。
p ( x T ∣ x 0 : T − 1 ) = p ( x 0 : T ) p ( x 0 : T − 1 )
p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) = \dfrac{p(\mathbf{x}_{0:T})}{p(\mathbf{x}_{0:T-1})}
p ( x T ∣ x 0 : T − 1 ) = p ( x 0 : T − 1 ) p ( x 0 : T )
上記定義を繰り返すと次が得られる。
p ( x 0 : T ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 0 : 1 ) ⋯ p ( x T − 1 ∣ x 0 : T − 2 ) p ( x T ∣ x 0 : T − 1 ) (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}
p ( x 0 : T ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 0 : 1 ) ⋯ p ( x T − 1 ∣ x 0 : T − 2 ) p ( x T ∣ x 0 : T − 1 ) ( 1 )
x 0 : T \mathbf{x}_{0:T} x 0 : T が次を満たすとマルコフ連鎖 と呼ぶ。
p ( x T ∣ x 0 : T − 1 ) = p ( x T ∣ x T − 1 )
p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) = p(\mathbf{x}_{T} | \mathbf{x}_{T-1})
p ( x T ∣ x 0 : T − 1 ) = p ( x T ∣ x T − 1 )
x 0 : T \mathbf{x}_{0:T} x 0 : T がマルコフ連鎖なら、( 1 ) (1) ( 1 ) は次のように簡略化される。
p ( x 0 : T ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 0 : 1 ) ⋯ p ( x T − 1 ∣ x 0 : T − 2 ) p ( x T ∣ x 0 : T − 1 ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 1 ) ⋯ p ( x T − 1 ∣ x T − 2 ) p ( x T ∣ x T − 1 ) = p ( x 0 ) ∏ t = 1 T p ( x t ∣ x t − 1 ) (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}
p ( x 0 : T ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 0 : 1 ) ⋯ p ( x T − 1 ∣ x 0 : T − 2 ) p ( x T ∣ x 0 : T − 1 ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 1 ) ⋯ p ( x T − 1 ∣ x T − 2 ) p ( x T ∣ x T − 1 ) = p ( x 0 ) t = 1 ∏ T p ( x t ∣ x t − 1 ) ( 2 )
2 背景 第2節では拡散モデルのアイデアをどうやって数学的に表現できるかを簡単に紹介する。基本となるアイデアが他の論文で出ているため詳しく説明はされていない。初心者が見るには略された部分が多くて理解しにくいだろう。以下でできるだけ詳しく解き明かそう。
拡散過程 diffusion process (順方向過程 forward process )拡散過程を数学的に整理しよう。t t t 段階での画像x t ∈ R D \mathbf{x}_{t} \in \mathbb{R}^{D} x t ∈ R D はt − 1 t-1 t − 1 段階での画像x t − 1 ∈ R D \mathbf{x}_{t-1} \in \mathbb{R}^{D} x t − 1 ∈ R D にガウシアンノイズβ t ϵ t ∼ N ( 0 , β t I ) \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \sim \mathcal{N}(\mathbf{0}, \beta_{t}\mathbf{I}) β t ϵ t ∼ N ( 0 , β t I ) を加えたものだ。β t \beta_{t} β t はノイズが拡散される程度を決定する係数である。だから次のように表現できる。
x t = 1 − β t x t − 1 + β t ϵ t , ϵ t ∼ N ( 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})
x t = 1 − β t x t − 1 + β t ϵ t , ϵ t ∼ N ( 0 , I )
ここで係数が( 1 − β t , β t ) (1-\beta_{t}, \beta_{t}) ( 1 − β t , β t ) ではなく( 1 − β t , β t ) (\sqrt{1-\beta_{t}}, \sqrt{\beta_{t}}) ( 1 − β t , β t ) である理由は、分散の性質 Var ( a X ) = a 2 Var ( X ) \Var(aX) = a^{2}\Var(X) Var ( a X ) = a 2 Var ( X ) による。係数に\sqrt{} が付いているほうがt t t が十分大きいときすべてのn ≥ 1 n \ge 1 n ≥ 1 に対してx t + n \mathbf{x}_{t+n} x t + n が依然として標準正規分布を従うようになる。t t t が十分大きいと仮定すれば、x t \mathbf{x}_{t} x t は標準正規分布を従うだろう。その際x t + 1 \mathbf{x}_{t+1} x t + 1 の共分散行列 が維持されること(依然として標準正規分布を従う)が以下のように確認できる。x t − 1 \mathbf{x}_{t-1} x t − 1 とϵ t \boldsymbol{\epsilon}_{t} ϵ t は互いに独立なので次が成り立つ。
Cov ( x t ) = Cov ( 1 − β t x t − 1 + β t ϵ t ) = ( 1 − β t ) Cov ( x t − 1 ) + β t Cov ( ϵ t ) = ( 1 − β t ) I + β t I = 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*}
Cov ( x t ) = Cov ( 1 − β t x t − 1 + β t ϵ t ) = ( 1 − β t ) Cov ( x t − 1 ) + β t Cov ( ϵ t ) = ( 1 − β t ) I + β t I = I
x t − 1 \mathbf{x}_{t-1} x t − 1 が決定された時(定数であるとき)x t \mathbf{x}_{t} x t に対する条件付き確率密度関数は次のようになる。
q ( x t ∣ x t − 1 ) = N ( 1 − β t x t − 1 , β t I ) (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}
q ( x t ∣ x t − 1 ) = N ( 1 − β t x t − 1 , β t I ) ( 3 )
(論文ではx t \mathbf{x}_{t} x t に対する分布であることを確実に明示するためにN ( x t ; 1 − β t x t − 1 , β t I ) \mathcal{N}(\mathbf{x}_{t}; \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1}, \beta_{t}\mathbf{I}) N ( x t ; 1 − β t x t − 1 , β t I ) と表記した。)平均ベクトルと共分散行列が上記のようなのはそれぞれ以下のように確認できる。x t − 1 \mathbf{x}_{t-1} x t − 1 が決定されたとしよう(つまり定数である)。
E [ x t ∣ x t − 1 ] = E [ 1 − β t x t − 1 + β t ϵ t ] ( x t − 1 is constant vector ) = E [ 1 − β t x t − 1 ] + E [ β t ϵ t ] = 1 − β t x t − 1 + β t E [ ϵ t ] = 1 − β t x t − 1
\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*}
E [ x t ∣ x t − 1 ] = E [ 1 − β t x t − 1 + β t ϵ t ] ( x t − 1 is constant vector ) = E [ 1 − β t x t − 1 ] + E [ β t ϵ t ] = 1 − β t x t − 1 + β t E [ ϵ t ] = 1 − β t x t − 1
Cov ( x t ∣ x t − 1 ) = Cov ( 1 − β t x t − 1 + β t ϵ t ) ( x t − 1 is constant vector ) = Cov ( β t ϵ t ) = β t Cov ( ϵ t ) = β t I
\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*}
Cov ( x t ∣ x t − 1 ) = Cov ( 1 − β t x t − 1 + β t ϵ t ) ( x t − 1 is constant vector ) = Cov ( β t ϵ t ) = β t Cov ( ϵ t ) = β t I
画像x 0 \mathbf{x}_{0} x 0 が与えられたとき、ガウシアンノイズを反復的に加え損傷させた画像をx 1 , x 2 , … , x T \mathbf{x}_{1}, \mathbf{x}_{2}, \dots, \mathbf{x}_{T} x 1 , x 2 , … , x T としたら(その確率変数と表記法を一緒に使用することに注意しろ)、この全過程に対する確率密度関数は結合条件付き確率密度関数 q ( x 1 : T ∣ x 0 ) q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) q ( x 1 : T ∣ x 0 ) として与えられ、これを順方向過程 forward process または拡散過程 diffusion process と呼ぶ。x 0 : T \mathbf{x}_{0:T} x 0 : T がマルコフであるため、( 2 ) \eqref{2} ( 2 ) により、拡散過程は次のようにモデル化される。
q ( x 1 : T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) (4)
q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) = \prod\limits_{t=1}^{T} q(\mathbf{x}_{t} | \mathbf{x}_{t-1})
\tag{4}
q ( x 1 : T ∣ x 0 ) = t = 1 ∏ T q ( x t ∣ x t − 1 ) ( 4 )
一方、x 0 \mathbf{x}_{0} x 0 から任意のt t t に対してx t \mathbf{x}_{t} x t が決定される条件付き確率密度関数も明示的に表すことができる。α t = 1 − β t \alpha_{t} = 1 - \beta_{t} α t = 1 − β t とすれば、
x t = α t x t − 1 + 1 − α t ϵ t = α t ( α t − 1 x t − 2 + 1 − α t − 1 ϵ t − 1 ) + 1 − α t ϵ t = α t α t − 1 x t − 2 + α t 1 − α t − 1 ϵ t − 1 + 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*}
x t = α t x t − 1 + 1 − α t ϵ t = α t ( α t − 1 x t − 2 + 1 − α t − 1 ϵ t − 1 ) + 1 − α t ϵ t = α t α t − 1 x t − 2 + α t 1 − α t − 1 ϵ t − 1 + 1 − α t ϵ t
この時2つの正規分布の和は再び1つの正規分布として表すことができる。
X 1 ∼ N ( μ 1 , σ 1 2 ) X_{1} \sim \mathcal{N}(\mu_{1}, \sigma_{1}^{2}) X 1 ∼ N ( μ 1 , σ 1 2 ) とX 2 ∼ N ( μ 2 , σ 2 2 ) X_{2} \sim \mathcal{N}(\mu_{2}, \sigma_{2}^{2}) X 2 ∼ N ( μ 2 , σ 2 2 ) が独立であれば、
X 1 + X 2 ∼ N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 )
X_{1} + X_{2} \sim \mathcal{N}(\mu_{1} + \mu_{2}, \sigma_{1}^{2} + \sigma_{2}^{2})
X 1 + X 2 ∼ N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 )
ランダムベクトルに対しても同じ方法で成り立つ。
したがって次が成り立つ。
α t 1 − α t − 1 ϵ t − 1 + 1 − α t ϵ t ∼ N ( 0 , α t ( 1 − α t − 1 ) I + ( 1 − α t ) I ) = N ( 0 , ( 1 − α t α t − 1 ) 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*}
α t 1 − α t − 1 ϵ t − 1 + 1 − α t ϵ t ∼ N ( 0 , α t ( 1 − α t − 1 ) I + ( 1 − α t ) I ) = N ( 0 , ( 1 − α t α t − 1 ) I )
したがって、x t \mathbf{x}_{t} x t は以下のようである。
x t = α t α t − 1 x t − 2 + 1 − α t α t − 1 ϵ , ϵ ∼ 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})
x t = α t α t − 1 x t − 2 + 1 − α t α t − 1 ϵ , ϵ ∼ N ( 0 , I )
この過程を繰り返すと次が得られる。
x t = α t α t − 1 x t − 2 + 1 − α t α t − 1 ϵ = α t α t − 1 ( α t − 2 x t − 3 + 1 − α t − 2 ϵ t − 2 ) + 1 − α t α t − 1 ϵ = α t α t − 1 α t − 2 x t − 3 + α t α t − 1 ( 1 − α t − 2 ) ϵ t − 2 + 1 − α t α t − 1 ϵ = α t α t − 1 α t − 2 x t − 3 + 1 − α t α t − 1 α t − 2 ϵ ⋮ = ∏ s = 1 t α s x 0 + 1 − ∏ s = 1 t α s ϵ = α ‾ t x 0 + 1 − α ‾ t ϵ , ϵ ∼ N ( 0 , I ) , α ‾ t = ∏ s = 1 t α 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*}
x t = α t α t − 1 x t − 2 + 1 − α t α t − 1 ϵ = α t α t − 1 ( α t − 2 x t − 3 + 1 − α t − 2 ϵ t − 2 ) + 1 − α t α t − 1 ϵ = α t α t − 1 α t − 2 x t − 3 + α t α t − 1 ( 1 − α t − 2 ) ϵ t − 2 + 1 − α t α t − 1 ϵ = α t α t − 1 α t − 2 x t − 3 + 1 − α t α t − 1 α t − 2 ϵ ⋮ = s = 1 ∏ t α s x 0 + 1 − s = 1 ∏ t α s ϵ = α t x 0 + 1 − α t ϵ , ϵ ∼ N ( 0 , I ) , α t = s = 1 ∏ t α s ( 5 )
したがって、x 0 \mathbf{x}_{0} x 0 が決定されたとき、x t \mathbf{x}_{t} x t に対する条件付き結合密度関数は次のようになる。
q ( x t ∣ x 0 ) = N ( α ‾ t x 0 , ( 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}
q ( x t ∣ x 0 ) = N ( α t x 0 , ( 1 − α t ) I ) ( 6 )
α t \alpha_{t} α t が十分小さく(=β t \beta_{t} β t が1 1 1 に近ければ)T T T が十分大きいとα ‾ T = ∏ s = 1 T α s \overline{\alpha}_{T} = \prod_{s=1}^{T} \alpha_{s} α T = ∏ s = 1 T α s は0 0 0 に近くなり、次が成り立つだろう。
q ( x T ∣ x 0 ) → 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
q ( x T ∣ x 0 ) → N ( 0 , I ) as T → ∞
これはx 0 \mathbf{x}_{0} x 0 にガウシアンノイズを絶えず加えて作られたx T \mathbf{x}_{T} x T が標準正規分布を従うというアイデアを裏付ける数式である。
ノイズ除去過程 denoising process (逆方向過程 reverse process )今度は、ガウシアンノイズx T ∼ N ( 0 , I ) \mathbf{x}_{T} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) x T ∼ N ( 0 , I ) からノイズを徐々に除去してx 0 \mathbf{x}_{0} x 0 にする逆過程(ディノイジング )を考えてみよう。Feller によれば、前方過程が正規分布 または二項分布 の場合、十分に小さい拡散係数β \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.
すなわち、ディノイジングに関する確率密度関数をp p p と表記すれば、次が成り立つという意味である。q ( x t ∣ x t − 1 ) q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) q ( x t ∣ x t − 1 ) が正規分布を従うので、その逆過程は以下の通りである。
p ( x t − 1 ∣ x t ) = N ( μ ( x t , t ) , Σ ( x t , t ) )
p(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}(\mathbf{\mu}(\mathbf{x}_{t}, t), \boldsymbol{\Sigma}(\mathbf{x}_{t}, t))
p ( x t − 1 ∣ x t ) = N ( μ ( x t , t ) , Σ ( x t , t ))
逆方向過程もまたマルコフ連鎖であるため、標準正規分布から抽出されたランダムガウシアンノイズx T \mathbf{x}_{T} x T から徐々にノイズを削減し、特定の画像x 0 \mathbf{x}_{0} x 0 となる全過程に対する結合確率密度関数は次のように表現される。
p ( x 0 : T ) = p ( x T ) ∏ t = 1 T p ( x t − 1 ∣ x t )
p(\mathbf{x}_{0:T}) = p(\mathbf{x}_{T}) \prod\limits_{t=1}^{T} p(\mathbf{x}_{t-1} | \mathbf{x}_{t})
p ( x 0 : T ) = p ( x T ) t = 1 ∏ T p ( x t − 1 ∣ x t )
拡散過程q ( x 0 : T ) q(\mathbf{x}_{0:T}) q ( x 0 : T ) と異なり、ディノイジング過程p ( x 0 : T ) p(\mathbf{x}_{0:T}) p ( x 0 : T ) は我々が知らないため推定すべき対象である。パラメータθ \theta θ を持ち、p p p を近似する関数をp θ p_{\theta} p θ と表記しよう。x T \mathbf{x}_{T} x T に対する確率密度関数はp ( x T ) = N ( 0 , I ) p(\mathbf{x}_{T}) = \mathcal{N}(\mathbf{0}, \mathbf{I}) p ( x T ) = N ( 0 , I ) であることを知っているので、
p θ ( x 0 : T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) (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 θ ( x 0 : T ) = p ( x T ) t = 1 ∏ T p θ ( x t − 1 ∣ x t ) ( 7 )
各々のp ( x t − 1 ∣ x t ) p(\mathbf{x}_{t-1} | \mathbf{x}_{t}) p ( x t − 1 ∣ x t ) が正規分布を従うことは知っているが、平均ベクトルと共分散行列は知らない。したがって、これらも近似すべき対象であり、p θ ( x t − 1 ∣ x t ) p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) p θ ( x t − 1 ∣ x t ) を次のように表すことができる。
p θ ( x t − 1 ∣ x t ) = N ( μ θ ( x t , t ) , Σ θ ( x t , t ) )
p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}(\mu_{\theta}(\mathbf{x}_{t}, t), \Sigma_{\theta}(\mathbf{x}_{t}, t))
p θ ( x t − 1 ∣ x t ) = N ( μ θ ( x t , t ) , Σ θ ( x t , t ))
新しいデータを生成するために求めるべきものは、データx 0 \mathbf{x}_{0} x 0 に対する確率密度関数p ( x 0 ) p(\mathbf{x}_{0}) p ( x 0 ) である。これを知っていれば、ランダムに抽出し既存のデータと同じ分布を従う新しいデータを生成することができる。p ( x 0 ) p(\mathbf{x}_{0}) p ( x 0 ) を近似する関数はp θ ( x 0 ) p_{\theta}(\mathbf{x}_{0}) p θ ( x 0 ) であり、パラメータθ \theta θ を持つ。p θ ( x 0 ) p_{\theta}(\mathbf{x}_{0}) p θ ( x 0 ) をp ( x 0 ) p(\mathbf{x}_{0}) p ( x 0 ) と似せる方法は、p θ ( x 0 ) p_{\theta}(\mathbf{x}_{0}) p θ ( x 0 ) を尤度 と見て、最大尤度推定法を使用することである。p p p が正規分布なので対数尤度を使用するのが数学的により簡単であり、相対的エントロピー(クルバック・ライブラー発散) にも自然に結びつく。log p θ ( x 0 ) \log p_{\theta}(\mathbf{x}_{0}) log p θ ( x 0 ) を最大化することは− log p θ ( x 0 ) -\log p_{\theta}(\mathbf{x}_{0}) − log p θ ( x 0 ) を最小化することと等しいので、ここから始めよう(勾配降下法 を使用するから)。したがって、E q ( x 0 ) [ − log p θ ( x 0 ) ] \mathbb{E}_{q(\mathbf{x}_{0})}[-\log p_{\theta}(\mathbf{x}_{0})] E q ( x 0 ) [ − log p θ ( x 0 )] を最小化するθ \theta θ を見つけることが目標である。まず、周辺/条件付き確率密度関数の定義に依って、p ( x ) p(\mathbf{x}) p ( x ) を次のように表現できる。
p θ ( x 0 ) = ∫ p θ ( x 0 : T ) d x 1 : T = ∫ p ( x 0 : T ) q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) d x 1 : T = ∫ q ( x 1 : T ∣ x 0 ) p ( x 0 : T ) q ( x 1 : T ∣ x 0 ) d x 1 : T = E q ( x 1 : T ∣ x 0 ) [ p ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ]
\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*}
p θ ( x 0 ) = ∫ p θ ( x 0 : T ) d x 1 : T = ∫ p ( x 0 : T ) q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) d x 1 : T = ∫ q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) p ( x 0 : T ) d x 1 : T = E q ( x 1 : T ∣ x 0 ) [ q ( x 1 : T ∣ x 0 ) p ( x 0 : T ) ]
すると、我々が最小化したい期待値を以下のように整理することができる。イェンセンの不等式 により、− log ( E [ X ] ) ≤ E [ − log X ] -\log (\mathbb{E}[X]) \le \mathbb{E}[-\log X] − log ( E [ X ]) ≤ E [ − log X ] だから、
E q ( x 0 ) [ − log p θ ( x 0 ) ] = E q ( x 0 ) [ − log ( E q ( x 1 : T ∣ x 0 ) [ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] ) ] ≤ E q ( x 0 ) [ E q ( x 1 : T ∣ x 0 ) ( − log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ) ] = E q ( x 0 : T ) [ − log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ]
\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*}
E q ( x 0 ) [ − log p θ ( x 0 )] = E q ( x 0 ) [ − log ( E q ( x 1 : T ∣ x 0 ) [ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ] ) ] ≤ E q ( x 0 ) [ E q ( x 1 : T ∣ x 0 ) ( − log q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ) ] = E q ( x 0 : T ) [ − log q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ]
最後の等号は条件付き確率密度関数の定義 q ( X , Y ) = q ( X ) q ( Y ∣ X ) q(X,Y) = q(X)q(Y|X) q ( X , Y ) = q ( X ) q ( Y ∣ X ) によって成立する。二つの期待値の形を積分形に直すとわかりやすいだろう。上の式に( 4 ) (4) ( 4 ) と( 7 ) (7) ( 7 ) を代入すると次のようになる。
E q ( x 0 ) [ − log p θ ( x 0 ) ] ≤ E q ( x 0 : T ) [ − log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] = E q ( x 0 : T ) [ − log p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) ∏ t = 1 T q ( x t ∣ x t − 1 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 1 T log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] = : 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*}
E q ( x 0 ) [ − log p θ ( x 0 )] ≤ E q ( x 0 : T ) [ − log q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ] = E q ( x 0 : T ) − log t = 1 ∏ T q ( x t ∣ x t − 1 ) p ( x T ) t = 1 ∏ T p θ ( x t − 1 ∣ x t ) = E q ( x 0 : T ) [ − log p ( x T ) − t = 1 ∑ T log q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) ] =: L
最後の等号は対数の性質 によって成立する。上の式の左辺は実際に減らしたいものだが計算が不可能である。実際のデータの分布q ( x 0 ) q(\mathbf{x}_{0}) q ( x 0 ) を知らないからだ。だが、右辺を見ると、計算すべきものはp ( x T ) p(\mathbf{x}_{T}) p ( x T ) とq ( x t ∣ x t − 1 ) q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) q ( x t ∣ x t − 1 ) で、最初のものは正規分布を仮定したので知っている。第二のものは拡散過程を実際に行うのでその値を得ることができる。したがって、右辺のL L L はすべて実際に計算可能な値で構成されているので、この値を計算して最小化すれば、不等式により左辺も最小化することができる。
ここで数式を操作して損失関数を計算に効率的に改善することができる。今L L L ではlog p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t} | \mathbf{x}_{t-1})} log q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) が含まれているが、これを計算するためにはp θ ( x t − 1 ∣ x t ) p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) p θ ( x t − 1 ∣ x t ) についてサンプリングする過程が必要だ。これは実際の値に対して分散が存在し、学習過程が不安定であることを意味する。それで、上の式をクルバック・ライブラー発散(KLD) が含まれた数式に書き直そう。今p θ ( x t − 1 ∣ x t ) p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) p θ ( x t − 1 ∣ x t ) とq ( x t ∣ x t − 1 ) q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) q ( x t ∣ x t − 1 ) は全て正規分布を従うと仮定したから、以下の公式にしたがってKLDの閉じた形 を得ることができ、分散なしに正確な損失関数を計算することができ、学習を安定的かつ効率的に行うことができる。
正規分布の相対的エントロピー :
2つの多変量正規分布 N ( μ , Σ ) N(\boldsymbol{\mu}, \Sigma) N ( μ , Σ ) とN ( μ 1 , Σ 1 ) N(\boldsymbol{\mu_{1}}, \Sigma_{1}) N ( μ 1 , Σ 1 ) 間の相対的エントロピーは次の通り。μ , μ 1 ∈ R D \boldsymbol{\mu}, \boldsymbol{\mu}_{1} \in \mathbb{R}^{D} μ , μ 1 ∈ R D の時、
D KL ( N ( μ , Σ ) ∥ N ( μ 1 , Σ 1 ) ) = 1 2 [ log ( ∣ Σ ∣ ∣ Σ 1 ∣ ) + Tr ( Σ 1 − 1 Σ ) + ( μ − μ 1 ) T Σ 1 − 1 ( μ − μ 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}
D KL ( N ( μ , Σ ) ∥ N ( μ 1 , Σ 1 ) ) = 2 1 [ log ( ∣ Σ 1 ∣ ∣Σ∣ ) + Tr ( Σ 1 − 1 Σ ) + ( μ − μ 1 ) T Σ 1 − 1 ( μ − μ 1 ) − D ]
L = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 1 T log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) − log p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ]
\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*}
L = E q ( x 0 : T ) [ − log p ( x T ) − t = 1 ∑ T log q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) − log q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ]
この時、第二項の分子をよく見ると、次のように書き換えられる。
q ( x t ∣ x t − 1 ) = q ( x t ∣ x t − 1 , x 0 ) by Markov property = q ( x t , x t − 1 , x 0 ) q ( x t − 1 , x 0 ) by def. of conditional pdf = q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) q ( x t − 1 , x 0 ) by def. of conditional pdf = q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) q ( x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) p ( x 0 ) q ( x t − 1 , x 0 ) p ( x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) p ( x 0 ) p ( x 0 ) q ( x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) 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*}
q ( x t ∣ x t − 1 ) = q ( x t ∣ x t − 1 , x 0 ) = q ( x t − 1 , x 0 ) q ( x t , x t − 1 , x 0 ) = q ( x t − 1 , x 0 ) q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t − 1 , x 0 ) q ( x t , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t − 1 , x 0 ) p ( x 0 ) q ( x t , x 0 ) p ( x 0 ) = q ( x t − 1 ∣ x t , x 0 ) p ( x 0 ) q ( x t , x 0 ) q ( x t − 1 , x 0 ) p ( x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) by Markov property by def. of conditional pdf by def. of conditional pdf by def. of conditional pdf
これを代入して次のように整理しよう。
L = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log ( p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) ) − log p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − ∑ t = 2 T log q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) − log p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log ( q ( x T − 1 ∣ x 0 ) q ( x T ∣ x 0 ) ⋅ q ( x T − 2 ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋯ q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 ) ) − log p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log ( q ( x T − 1 ∣ x 0 ) q ( x T ∣ x 0 ) ⋅ q ( x T − 2 ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋯ q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 ) ⋅ p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log ( q ( x T − 1 ∣ x 0 ) q ( x T ∣ x 0 ) ⋅ q ( x T − 1 ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋯ q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 ) ⋅ p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log p θ ( x 0 ∣ x 1 ) q ( x T ∣ x 0 ) ] = E q ( x 0 : T ) [ − log p ( x T ) q ( x T ∣ x 0 ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ log q ( x T ∣ x 0 ) p ( x T ) + ∑ t = 2 T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log p θ ( x 0 ∣ x 1 ) ] ( 8 ) = E q ( x 0 : T ) [ log q ( x T ∣ x 0 ) p ( x T ) ] + ∑ t = 2 T E q ( x 0 : T ) [ log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) ] − E q ( x 0 : T ) [ log p θ ( x 0 ∣ x 1 ) ]
\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*}
L ( 8 ) = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log ( q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) ) − log q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − t = 2 ∑ T log q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) − log q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log ( q ( x T ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋅ q ( x T − 1 ∣ x 0 ) q ( x T − 2 ∣ x 0 ) ⋯ q ( x 2 ∣ x 0 ) q ( x 1 ∣ x 0 ) ) − log q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log ( q ( x T ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋅ q ( x T − 1 ∣ x 0 ) q ( x T − 2 ∣ x 0 ) ⋯ q ( x 2 ∣ x 0 ) q ( x 1 ∣ x 0 ) ⋅ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log ( q ( x T ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋅ q ( x T − 1 ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋯ q ( x 2 ∣ x 0 ) q ( x 1 ∣ x 0 ) ⋅ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log q ( x T ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ − log q ( x T ∣ x 0 ) p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ log p ( x T ) q ( x T ∣ x 0 ) + t = 2 ∑ T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ log p ( x T ) q ( x T ∣ x 0 ) ] + t = 2 ∑ T E q ( x 0 : T ) [ log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ] − E q ( x 0 : T ) [ log p θ ( x 0 ∣ x 1 ) ] ( 8 )
( 8 ) (8) ( 8 ) の第一項は以下のような過程でKLDに関する式に書き換えることができる。
E q ( x 0 : T ) [ log q ( x T ∣ x 0 ) p ( x T ) ] = ∫ q ( x 0 : T ) log q ( x T ∣ x 0 ) p ( x T ) d x 0 : T = ∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log q ( x T ∣ x 0 ) p ( x T ) d x 0 : T by def. of conditional pdf = ∫ ∫ ∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log q ( x T ∣ x 0 ) p ( x T ) d x 1 : T − 1 d x T d x 0 = ∫ ∫ q ( x 0 ) q ( x T ∣ x 0 ) log q ( x T ∣ x 0 ) p ( x T ) d x T d x 0 by def. of marginal pdf = E q ( x 0 ) [ ∫ q ( x T ∣ x 0 ) log q ( x T ∣ x 0 ) p ( x T ) d x T ] = E q ( x 0 ) [ D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ]
\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*}
E q ( x 0 : T ) [ log p ( x T ) q ( x T ∣ x 0 ) ] = ∫ q ( x 0 : T ) log p ( x T ) q ( x T ∣ x 0 ) d x 0 : T = ∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) d x 0 : T = ∫∫∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) d x 1 : T − 1 d x T d x 0 = ∫∫ q ( x 0 ) q ( x T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) d x T d x 0 = E q ( x 0 ) [ ∫ q ( x T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) d x T ] = E q ( x 0 ) [ D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ] by def. of conditional pdf by def. of marginal pdf
論文ではE q ( x 0 : T ) = E q = E q ( x 0 ) \mathbb{E}_{q(\mathbf{x}_{0:T})} = \mathbb{E}_{q} = \mathbb{E}_{q(\mathbf{x}_{0})} E q ( x 0 : T ) = E q = E q ( x 0 ) で表記法を乱用しているので注意が必要である。もちろん、期待値の中の値はx 0 \mathbf{x}_{0} x 0 にのみ依存するので、他の確率変数に関して積分してもその値は1 1 1 なので結果は同じである。しかし、論文ではこのような説明が全くないので、読者が自主的にうまく読まなければならない。
今度は( 8 ) (8) ( 8 ) の第二項を見てみよう。第一項と同様にq ( x 0 : T ) q(\mathbf{x}_{0:T}) q ( x 0 : T ) をうまく操作してq ( x t − 1 ∣ x t , x 0 ) q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) q ( x t − 1 ∣ x t , x 0 ) が出てくるようにKLDの形で書くことができる。
∑ t = 2 T E q ( x 0 : T ) [ log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) ] = ∑ t = 2 T ∫ q ( x 0 : T ) log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) d x 0 : T = ∑ t = 2 T ∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) d x 0 : T = ∑ t = 2 T ∫ q ( x 0 ) q ( x 1 : t − 1 , x t + 1 : T ∣ x t , x 0 ) q ( x t ∣ x 0 ) log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) d x 0 : T = ∑ t = 2 T ∫ ∫ ∫ q ( x 0 ) q ( x 1 : t − 1 , x t + 1 : T ∣ x t , x 0 ) q ( x t ∣ x 0 ) log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) d x ( 1 : t − 2 , t + 1 : T ) d x t − 1 : t d x 0 = ∑ t = 2 T ∫ ∫ q ( x 0 ) q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) d x t − 1 : t d x 0 = ∑ t = 2 T ∫ ∫ q ( x 0 ) q ( x t ∣ x 0 ) D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) d x t d x 0 = ∫ q ( x 0 ) [ ∑ t = 2 T ∫ q ( x t ∣ x 0 ) D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) d x t ] d x 0 = E q ( x 0 ) [ ∑ t = 2 T E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] ]
\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*}
t = 2 ∑ T E q ( x 0 : T ) [ log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ] = t = 2 ∑ T ∫ q ( x 0 : T ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x 0 : T = t = 2 ∑ T ∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x 0 : T = t = 2 ∑ T ∫ q ( x 0 ) q ( x 1 : t − 1 , x t + 1 : T ∣ x t , x 0 ) q ( x t ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x 0 : T = t = 2 ∑ T ∫∫∫ q ( x 0 ) q ( x 1 : t − 1 , x t + 1 : T ∣ x t , x 0 ) q ( x t ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x ( 1 : t − 2 , t + 1 : T ) d x t − 1 : t d x 0 = t = 2 ∑ T ∫∫ q ( x 0 ) q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x t − 1 : t d x 0 = t = 2 ∑ T ∫∫ q ( x 0 ) q ( x t ∣ x 0 ) D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) d x t d x 0 = ∫ q ( x 0 ) [ t = 2 ∑ T ∫ q ( x t ∣ x 0 ) D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) d x t ] d x 0 = E q ( x 0 ) [ t = 2 ∑ T E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] ]
論文ではこれをE q [ ∑ t = 2 T D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] \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] E q [ t = 2 ∑ T D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] と表記していることに注意しよう。第一項と同様に依存しない変数であえて積分し直せば、論文の表記と一致するようにも書き直すことができる。
今( 8 ) (8) ( 8 ) は最終的に次のようにKLDを含む式に再び表すことができる。
L = E q ( x 0 ) [ D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ] + E q ( x 0 ) [ ∑ t = 2 T E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] ] − E q ( x 0 : T ) [ log p θ ( x 0 ∣ x 1 ) ]
\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*}
L = E q ( x 0 ) [ D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ] + E q ( x 0 ) [ t = 2 ∑ T E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] ] − E q ( x 0 : T ) [ log p θ ( x 0 ∣ x 1 ) ]
もちろん、上記のように説明したように、∫ q ( x t ′ ) f ( x t ) d x t ′ = f ( x t ) \int q(\mathbf{x}_{t^{\prime}}) f(\mathbf{x}_{t}) d\mathbf{x}_{t^{\prime}} = f(\mathbf{x}_{t}) ∫ q ( x t ′ ) f ( x t ) d x t ′ = f ( x t ) である積分トリックを使うと次のように一つの項にまとめて表現することもできる。
E q ( x 0 : T ) [ D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ⏟ L T + ∑ t = 2 T [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] ⏟ L t − 1 − log p θ ( x 0 ∣ x 1 ) ⏟ L 0 ]
\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]
E q ( x 0 : T ) [ L T D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) + t = 2 ∑ T L t − 1 [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] − L 0 log p θ ( x 0 ∣ x 1 ) ]
ここでq ( x t − 1 ∣ x t , x 0 ) q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) q ( x t − 1 ∣ x t , x 0 ) は次のように計算することができる。
条件付き確率の性質
p ( x ∣ y , z ) = p ( x , y ∣ z ) p ( y ∣ z )
p(\mathbf{x} | \mathbf{y}, \mathbf{z})
= \dfrac{p(\mathbf{x}, \mathbf{y} | \mathbf{z}) }{p(\mathbf{y} | \mathbf{z})}
p ( x ∣ y , z ) = p ( y ∣ z ) p ( x , y ∣ z )
q ( x t − 1 ∣ x t , x 0 ) = q ( x t , x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) = q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) = q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 )
\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*}
q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x 0 ) q ( x t , x t − 1 ∣ x 0 ) = q ( x t ∣ x 0 ) q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) = q ( x t ∣ x 0 ) q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 )
最後の等号は{ x t } \left\{ \mathbf{x}_{t} \right\} { x t } がマルコフであると仮定したために成り立つ。上の式の確率密度関数は( 3 ) (3) ( 3 ) 、( 6 ) (6) ( 6 ) で求めたのでそのまま代入すれば良い。
q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) = C exp ( − 1 2 ( x t − α t x t − 1 ) 2 ( 1 − α t ) ) exp ( − 1 2 ( x t − 1 − α ‾ t − 1 x 0 ) 2 ( 1 − α ‾ t − 1 ) ) exp ( − 1 2 ( x t − α ‾ t x 0 ) 2 ( 1 − α ‾ t ) ) = C exp [ − 1 2 ( 1 1 − α t x t T x t − 2 α t 1 − α t x t T x t − 1 + α t 1 − α t x t − 1 T x t − 1 + 1 1 − α ‾ t − 1 x t − 1 T x t − 1 − 2 α ‾ t − 1 1 − α ‾ t − 1 x 0 T x t − 1 + α t − 1 ‾ 1 − α ‾ t − 1 x 0 T x 0 − 1 1 − α ‾ t x t T x t + 2 α ‾ t 1 − α ‾ t x t T x 0 − α t ‾ 1 − α ‾ t x 0 T x 0 ) ]
\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*}
q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x 0 ) q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 ) = C exp ( − 2 1 ( 1 − α t ) ( x t − α t x 0 ) 2 ) exp ( − 2 1 ( 1 − α t ) ( x t − α t x t − 1 ) 2 ) exp ( − 2 1 ( 1 − α t − 1 ) ( x t − 1 − α t − 1 x 0 ) 2 ) = C exp [ − 2 1 ( 1 − α t 1 x t T x t − 1 − α t 2 α t x t T x t − 1 + 1 − α t α t x t − 1 T x t − 1 + 1 − α t − 1 1 x t − 1 T x t − 1 − 1 − α t − 1 2 α t − 1 x 0 T x t − 1 + 1 − α t − 1 α t − 1 x 0 T x 0 − 1 − α t 1 x t T x t + 1 − α t 2 α t x t T x 0 − 1 − α t α t x 0 T x 0 ) ] ( 9 )
ここでC = 1 ( 2 π ( 1 − α t ) ( 1 − α t ‾ ) ( 1 − α t ‾ ) ) D C = \dfrac{1}{\sqrt{ \left(2\pi \dfrac{(1-\alpha_{t})(1-\overline{\alpha_{t}})}{(1-\overline{\alpha_{t}})} \right)^{D} }} C = ( 2 π ( 1 − α t ) ( 1 − α t ) ( 1 − α t ) ) D 1 である。求める分布がq ( x t − 1 ∣ x t , x 0 ) q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) q ( x t − 1 ∣ x t , x 0 ) であるから、指数部分をx t − 1 \mathbf{x}_{t-1} x t − 1 に関して整理しよう。
( α t 1 − α t + 1 1 − α ‾ t − 1 ) x t − 1 T x t − 1 − 2 ( α t 1 − α t x t T + α ‾ t − 1 1 − α ‾ t − 1 x 0 T ) x t − 1 + [ ( 1 1 − α t − 1 1 − α ‾ t ) x t T x t + 2 α ‾ t 1 − α ‾ t x t T x 0 + ( α ‾ t − 1 1 − α ‾ t − 1 − α ‾ t 1 − α ‾ t ) x 0 T x 0 ]
\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*}
( 1 − α t α t + 1 − α t − 1 1 ) x t − 1 T x t − 1 − 2 ( 1 − α t α t x t T + 1 − α t − 1 α t − 1 x 0 T ) x t − 1 + [ ( 1 − α t 1 − 1 − α t 1 ) x t T x t + 2 1 − α t α t x t T x 0 + ( 1 − α t − 1 α t − 1 − 1 − α t α t ) x 0 T x 0 ]
加算された定数を次のように通分しよう。
( α t 1 − α t + 1 1 − α ‾ t − 1 ) = α t − α t α ‾ t − 1 + 1 − α t ( 1 − α t ) ( 1 − α ‾ t − 1 ) = 1 − α ‾ t ( 1 − α t ) ( 1 − α ‾ t − 1 )
\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})}
( 1 − α t α t + 1 − α t − 1 1 ) = ( 1 − α t ) ( 1 − α t − 1 ) α t − α t α t − 1 + 1 − α t = ( 1 − α t ) ( 1 − α t − 1 ) 1 − α t
( 1 1 − α t − 1 1 − α ‾ t ) = α t − α ‾ t ( 1 − α t ) ( 1 − α ‾ t ) = α t ( 1 − α ‾ t − 1 ) ( 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})}
( 1 − α t 1 − 1 − α t 1 ) = ( 1 − α t ) ( 1 − α t ) α t − α t = ( 1 − α t ) ( 1 − α t ) α t ( 1 − α t − 1 )
( α ‾ t − 1 1 − α ‾ t − 1 − α ‾ t 1 − α ‾ t ) = α ‾ t − 1 − α ‾ t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) = α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( 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 − 1 − α t α t ) = ( 1 − α t − 1 ) ( 1 − α t ) α t − 1 − α t = ( 1 − α t − 1 ) ( 1 − α t ) α t − 1 ( 1 − α t )
すると次のように整理される。
1 − α ‾ t ( 1 − α t ) ( 1 − α ‾ t − 1 ) x t − 1 T x t − 1 − 2 ( α t 1 − α t x t T + α ‾ t − 1 1 − α ‾ t − 1 x 0 T ) x t − 1 + [ α t ( 1 − α ‾ t − 1 ) ( 1 − α t ) ( 1 − α ‾ t ) x t T x t + 2 α ‾ t 1 − α ‾ t x t T x 0 + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x 0 T x 0 ]
\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*}
( 1 − α t ) ( 1 − α t − 1 ) 1 − α t x t − 1 T x t − 1 − 2 ( 1 − α t α t x t T + 1 − α t − 1 α t − 1 x 0 T ) x t − 1 + [ ( 1 − α t ) ( 1 − α t ) α t ( 1 − α t − 1 ) x t T x t + 2 1 − α t α t x t T x 0 + ( 1 − α t − 1 ) ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 T x 0 ]
x t − 1 T x t − 1 \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} x t − 1 T x t − 1 項の定数をまとめると、
1 − α ‾ t ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( x t − 1 T x t − 1 − 2 ( ( 1 − α ‾ t − 1 ) α t 1 − α ‾ t x t T + ( 1 − α t ) α ‾ t − 1 1 − α ‾ t x 0 T ) x t − 1 + [ α t ( 1 − α ‾ t − 1 ) 2 ( 1 − α ‾ t ) 2 x t T x t + 2 ( 1 − α t ) ( 1 − α ‾ t − 1 ) α ‾ t ( 1 − α ‾ t ) 2 x t T x 0 + α ‾ t − 1 ( 1 − α t ) 2 ( 1 − α ‾ t ) 2 x 0 T x 0 ] ) (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}
( 1 − α t ) ( 1 − α t − 1 ) 1 − α t ( x t − 1 T x t − 1 − 2 ( 1 − α t ( 1 − α t − 1 ) α t x t T + 1 − α t ( 1 − α t ) α t − 1 x 0 T ) x t − 1 + [ ( 1 − α t ) 2 α t ( 1 − α t − 1 ) 2 x t T x t + 2 ( 1 − α t ) 2 ( 1 − α t ) ( 1 − α t − 1 ) α t x t T x 0 + ( 1 − α t ) 2 α t − 1 ( 1 − α t ) 2 x 0 T x 0 ] ) ( 10 )
上の式の定数項を再び次のように整理できる。
[ α t ( 1 − α ‾ t − 1 ) 2 ( 1 − α ‾ t ) 2 x t T x t + 2 ( 1 − α t ) ( 1 − α ‾ t − 1 ) α t α ‾ t − 1 ( 1 − α ‾ t ) 2 x t T x 0 + α ‾ t − 1 ( 1 − α t ) 2 ( 1 − α ‾ t ) 2 x 0 T x 0 ] = [ α t 2 ( 1 − α ‾ t − 1 ) 2 ( 1 − α ‾ t ) 2 x t T x t + 2 ( 1 − α t ) ( 1 − α ‾ t − 1 ) α t α ‾ t − 1 ( 1 − α ‾ t ) 2 x t T x 0 + α ‾ t − 1 2 ( 1 − α t ) 2 ( 1 − α ‾ t ) 2 x 0 T x 0 ] = [ α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 ] 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*}
[ ( 1 − α t ) 2 α t ( 1 − α t − 1 ) 2 x t T x t + 2 ( 1 − α t ) 2 ( 1 − α t ) ( 1 − α t − 1 ) α t α t − 1 x t T x 0 + ( 1 − α t ) 2 α t − 1 ( 1 − α t ) 2 x 0 T x 0 ] = [ ( 1 − α t ) 2 α t 2 ( 1 − α t − 1 ) 2 x t T x t + 2 ( 1 − α t ) 2 ( 1 − α t ) ( 1 − α t − 1 ) α t α t − 1 x t T x 0 + ( 1 − α t ) 2 α t − 1 2 ( 1 − α t ) 2 x 0 T x 0 ] = [ ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 ] 2
これを( 10 ) (10) ( 10 ) に代入すると次が得られる。
1 − α ‾ t ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( x t − 1 T x t − 1 − 2 ( ( 1 − α ‾ t − 1 ) α t 1 − α ‾ t x t T + ( 1 − α t ) α ‾ t − 1 1 − α ‾ t x 0 T ) x t − 1 + [ α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 ] 2 ) = 1 − α ‾ t ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( x t − [ α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 ] ) 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*}
( 1 − α t ) ( 1 − α t − 1 ) 1 − α t ( x t − 1 T x t − 1 − 2 ( 1 − α t ( 1 − α t − 1 ) α t x t T + 1 − α t ( 1 − α t ) α t − 1 x 0 T ) x t − 1 + [ ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 ] 2 ) = ( 1 − α t ) ( 1 − α t − 1 ) 1 − α t ( x t − [ ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 ] ) 2
最後にこの式を( 9 ) (9) ( 9 ) に代入すると以下のようになる。
q ( x t − 1 ∣ x t , x 0 ) = 1 ( 2 π ( 1 − α t ) ( 1 − α t ‾ ) ( 1 − α t ‾ ) ) D exp [ − 1 2 ( x t − [ α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 ] ) 2 ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( 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 ( x t − 1 ∣ x t , x 0 ) = ( 2 π ( 1 − α t ) ( 1 − α t ) ( 1 − α t ) ) D 1 exp − 2 1 ( 1 − α t ) ( 1 − α t ) ( 1 − α t − 1 ) ( x t − [ ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 ] ) 2
これは次の多変量正規分布と同じである。
q ( x t − 1 ∣ x t , x 0 ) = N ( α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 , ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) I ) = N ( μ ~ t ( x t , x 0 ) , β ~ t I )
\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*}
q ( x t − 1 ∣ x t , x 0 ) = N ( ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 , ( 1 − α t ) ( 1 − α t ) ( 1 − α t − 1 ) I ) = N ( μ ~ t ( x t , x 0 ) , β ~ t I )
where μ ~ t ( x t , x 0 ) = α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 ,
\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},
where μ ~ t ( x t , x 0 ) = ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 ,
β ~ t = ( 1 − α ‾ t − 1 ) β t ( 1 − α ‾ t )
\tilde{\beta}_{t} = \frac{(1-\overline{\alpha}_{t-1}) \beta_{t}}{(1 - \overline{\alpha}_{t})}
β ~ t = ( 1 − α t ) ( 1 − α t − 1 ) β t
3 拡散モデルとノイズ除去オートエンコーダー 3.1 順方向過程とL T L_{T} L T 論文では拡散係数β t \beta_{t} β t を学習するパラメータではなく定数として固定する。L T L_{T} L T は次のように表現されるが、β t \beta_{t} β t が定数であれば学習するパラメーターがないので実際に損失関数を実装するときこの項を無視しても良い。
L T = D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) = D KL [ N ( α ‾ t x 0 , ( 1 − α ‾ t ) I ) ∥ N ( 0 , I ) ] = 1 2 [ log ( 1 − α ‾ t ) D + D ( 1 − α ‾ t ) + α ‾ t x 0 2 − D ]
\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*}
L T = D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) = D KL [ N ( α t x 0 , ( 1 − α t ) I ) ∥ N ( 0 , I ) ] = 2 1 [ log ( 1 − α t ) D + D ( 1 − α t ) + α t x 0 2 − D ]
3.2 逆方向過程とL 1 : T − 1 L_{1:T-1} L 1 : T − 1 著者はp θ ( x t − 1 ∣ x t ) = N ( μ θ ( x t , t ) , Σ θ ( x t , 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)) p θ ( x t − 1 ∣ x t ) = N ( μ θ ( x t , t ) , Σ θ ( x t , t )) で共分散行列はΣ θ ( x t , t ) = σ t 2 I \boldsymbol{\Sigma}_{\theta} (\mathbf{x}_{t}, t) = \sigma_{t}^{2} \mathbf{I} Σ θ ( x t , t ) = σ t 2 I とした。つまり、学習するパラメータを設定しなかった。実験的に以下の2つの環境に対して似た結果を得たという。
σ t 2 = β t or σ t 2 = β ~ t = 1 − α ‾ t − 1 1 − α ‾ 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}
σ t 2 = β t or σ t 2 = β ~ t = 1 − α t 1 − α t − 1 β t
左の設定はx 0 ∼ N ( 0 , I ) \mathbf{x}_{0} \sim \mathcal{N} (\mathbf{0}, \mathbf{I}) x 0 ∼ N ( 0 , I ) で抽出してデータセットに対して学習するときに最適であり、右の設定は固定された1つのx 0 ∼ N ( x 0 , I ) \mathbf{x}_{0} \sim \mathcal{N} (\mathbf{x}_{0}, \mathbf{I}) x 0 ∼ N ( x 0 , I ) で学習する時に最適だという。
今や損失関数L t − 1 L_{t-1} L t − 1 を見ると次のようだ。
L t − 1 = E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] = E q ( x t ∣ x 0 ) [ D KL ( N ( μ ~ t ( x t , x 0 ) , β ~ t I ) ∥ N ( μ θ ( x t , t ) , σ t 2 I ) ) ] = E q ( x t ∣ x 0 ) [ 1 2 ( log ( β ~ t σ t 2 ) D + D β ~ t σ t 2 + ( μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ) 2 σ t 2 − D ) ] = E q ( x t ∣ x 0 ) [ 1 2 σ t 2 ( μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ) 2 ] + C 2
\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*}
L t − 1 = E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] = E q ( x t ∣ x 0 ) [ D KL ( N ( μ ~ t ( x t , x 0 ) , β ~ t I ) ∥ N ( μ θ ( x t , t ) , σ t 2 I ) ) ] = E q ( x t ∣ x 0 ) 2 1 log ( σ t 2 β ~ t ) D + D σ t 2 β ~ t + σ t 2 ( μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ) 2 − D = E q ( x t ∣ x 0 ) [ 2 σ t 2 1 ( μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ) 2 ] + C 2
ここでC 2 C_{2} C 2 はθ \theta θ に依存しない定数である。それでμ θ \boldsymbol{\mu}_{\theta} μ θ はμ ~ t \tilde{\boldsymbol{\mu}}_{t} μ ~ t を予測するモデルである。ここでμ ~ t \tilde{\boldsymbol{\mu}}_{t} μ ~ t を明示的な形で解き出し、学習の対象をより明確にしよう。( 5 ) (5) ( 5 ) でx t \mathbf{x}_{t} x t を見るx 0 \mathbf{x}_{0} x 0 とϵ \boldsymbol{\epsilon} ϵ の関数としてx t ( x 0 , ϵ ) = α ‾ t x 0 + 1 − α ‾ t ϵ \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) = \sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} + \sqrt{1-\overline{\alpha}_{t}}\boldsymbol{\epsilon} x t ( x 0 , ϵ ) = α t x 0 + 1 − α t ϵ に置き換えれば、μ ~ t ( x t , x 0 ) \tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}) μ ~ t ( x t , x 0 ) は次の通り変わる。
μ ~ t ( x t , x 0 ) = α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 = α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t ( x 0 , ϵ ) + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) ( 1 α ‾ t x t ( x 0 , ϵ ) − 1 − α ‾ t α ‾ t ϵ ) = ( α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) α ‾ t ) x t ( x 0 , ϵ ) − α ‾ t − 1 ( 1 − α t ) 1 − α ‾ t ( 1 − α ‾ t ) α ‾ t ϵ = ( α t ( 1 − α ‾ t − 1 ) α t ( 1 − α ‾ t ) + ( 1 − α t ) ( 1 − α ‾ t ) α t ) x t ( x 0 , ϵ ) − ( 1 − α t ) 1 − α ‾ t α t ϵ = 1 α t ( ( α t − α ‾ t ) + ( 1 − α t ) ( 1 − α ‾ t ) x t ( x 0 , ϵ ) − β t 1 − α ‾ t ϵ ) = 1 α t ( x t ( x 0 , ϵ ) − β t 1 − α ‾ 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*}
μ ~ t ( x t , x 0 ) = ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 = ( 1 − α t ) α t ( 1 − α t − 1 ) x t ( x 0 , ϵ ) + ( 1 − α t ) α t − 1 ( 1 − α t ) ( α t 1 x t ( x 0 , ϵ ) − α t 1 − α t ϵ ) = ( ( 1 − α t ) α t ( 1 − α t − 1 ) + ( 1 − α t ) α t α t − 1 ( 1 − α t ) ) x t ( x 0 , ϵ ) − ( 1 − α t ) α t α t − 1 ( 1 − α t ) 1 − α t ϵ = ( α t ( 1 − α t ) α t ( 1 − α t − 1 ) + ( 1 − α t ) α t ( 1 − α t ) ) x t ( x 0 , ϵ ) − 1 − α t α t ( 1 − α t ) ϵ = α t 1 ( ( 1 − α t ) ( α t − α t ) + ( 1 − α t ) x t ( x 0 , ϵ ) − 1 − α t β t ϵ ) = α t 1 ( x t ( x 0 , ϵ ) − 1 − α t β t ϵ )
したがって上記のL t − 1 L_{t-1} L t − 1 は再び次のように整理される。
L t − 1 = E x t ( x 0 , ϵ ) [ 1 2 σ t 2 [ 1 α t ( x t ( x 0 , ϵ ) − β t 1 − α ‾ t ϵ ) − μ θ ( x t ( x 0 , ϵ ) , t ) ] 2 ] + C 2 (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}
L t − 1 = E x t ( x 0 , ϵ ) [ 2 σ t 2 1 [ α t 1 ( x t ( x 0 , ϵ ) − 1 − α t β t ϵ ) − μ θ ( x t ( x 0 , ϵ ) , t ) ] 2 ] + C 2 ( 11 )
すると結局、μ θ ( x t , t ) \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t) μ θ ( x t , t ) が学習すべき対象は1 α t ( x t ( x 0 , ϵ ) − β t 1 − α ‾ 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) α t 1 ( x t ( x 0 , ϵ ) − 1 − α t β t ϵ ) である。ここでx t \mathbf{x}_{t} x t は入力として与えられ、β t \beta_{t} β t は固定された定数だから実際に神経網μ θ ( x t , t ) \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t) μ θ ( x t , t ) が学習するべきはϵ = ϵ t \boldsymbol{\epsilon} = \boldsymbol{\epsilon}_{t} ϵ = ϵ t である。したがってパラメータθ \theta θ に依存する項はϵ \boldsymbol{\epsilon} ϵ だけである。
μ θ ( x t , t ) = 1 α t ( x t − β t 1 − α ‾ t ϵ θ ( x t , 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}
μ θ ( x t , t ) = α t 1 ( x t − 1 − α t β t ϵ θ ( x t , t ) ) ( 12 )
これはある意味で非常に当然であり直感的な結果である。なぜならx T \mathbf{x}_{T} x T はx 0 \mathbf{x}_{0} x 0 からノイズϵ t \boldsymbol{\epsilon}_{t} ϵ t を常に加えて作られたので、そのノイズをすべて知ることができればx 0 \mathbf{x}_{0} x 0 を復元できるからだ。もちろん、この説明自体は厳密ではなく直感的だが、上の論理展開によりそれが直感的であるだけでなく数学的にも妥当であることが分かる。
μ θ \boldsymbol{\mu}_{\theta} μ θ はp ( x t − 1 ∣ x t ) = N ( μ θ , σ t 2 I ) p(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}( \boldsymbol{\mu}_{\theta}, \sigma_{t}^{2}\mathbf{I}) p ( x t − 1 ∣ x t ) = N ( μ θ , σ t 2 I ) の平均ベクトルであった。したがって、x t \mathbf{x}_{t} x t が与えられたとき、x t − 1 ∼ p θ ( x t − 1 ∣ x t ) \mathbf{x}_{t-1} \sim p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) x t − 1 ∼ p θ ( x t − 1 ∣ x t ) は次のようにサンプリングされる(( 3 ) (3) ( 3 ) がどのようにして出てきたのかをもう一度見ろ)。
x t − 1 = 1 α t ( x t − β t 1 − α ‾ t ϵ θ ( x t , t ) ) + σ t z , z ∼ N ( 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}) \\
x t − 1 = α t 1 ( x t − 1 − α t β t ϵ θ ( x t , t ) ) + σ t z , z ∼ N ( 0 , I )
最終的に( 12 ) (12) ( 12 ) を( 11 ) (11) ( 11 ) に代入すると次が得られる。
E x t ( x 0 , ϵ ) [ 1 2 σ t 2 [ 1 α t ( x t ( x 0 , ϵ ) − β t 1 − α ‾ t ϵ ) − μ θ ( x t ( x 0 , ϵ ) , t ) ] 2 ] = E x t [ 1 2 σ t 2 [ 1 α t ( x t − β t 1 − α ‾ t ϵ ) − 1 α t ( x t − β t 1 − α ‾ t ϵ θ ( x t , t ) ) ] 2 ] = E x t [ 1 2 σ t 2 [ 1 α t β t 1 − α ‾ t ϵ − 1 α t β t 1 − α ‾ t ϵ θ ( x t , t ) ] 2 ] = E x t [ β t 2 2 σ t 2 α t ( 1 − α ‾ t ) [ ϵ − ϵ θ ( x t , t ) ] 2 ] = E x 0 , ϵ [ β t 2 2 σ t 2 α t ( 1 − α ‾ t ) [ ϵ − ϵ θ ( α ‾ t x 0 + 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*}
E x t ( x 0 , ϵ ) [ 2 σ t 2 1 [ α t 1 ( x t ( x 0 , ϵ ) − 1 − α t β t ϵ ) − μ θ ( x t ( x 0 , ϵ ) , t ) ] 2 ] = E x t [ 2 σ t 2 1 [ α t 1 ( x t − 1 − α t β t ϵ ) − α t 1 ( x t − 1 − α t β t ϵ θ ( x t , t ) ) ] 2 ] = E x t [ 2 σ t 2 1 [ α t 1 1 − α t β t ϵ − α t 1 1 − α t β t ϵ θ ( x t , t ) ] 2 ] = E x t [ 2 σ t 2 α t ( 1 − α t ) β t 2 [ ϵ − ϵ θ ( x t , t ) ] 2 ] = E x 0 , ϵ [ 2 σ t 2 α t ( 1 − α t ) β t 2 [ ϵ − ϵ θ ( α t x 0 + 1 − α t ϵ , t ) ] 2 ]
今までの説明を元に訓練とサンプリング過程を疑似コードで表すと次の通りである。
3.3 データスケーリング、逆方向過程デコーダー、そしてL 0 L_{0} L 0 今までの議論はすべて連続確率密度関数に関するものだった。画像データは{ 0 , 1 , … , 255 } \left\{ 0, 1, \dots, 255 \right\} { 0 , 1 , … , 255 } の値を持つ離散変数であるため、適切なスケーリングが必要だ。まず{ 0 , 1 , … , 255 } \left\{ 0, 1, \dots, 255 \right\} { 0 , 1 , … , 255 } の値は[ − 1 , 1 ] [-1, 1] [ − 1 , 1 ] で線形にスケーリングされる。そして作者たちは最終的にサンプリングの最後の過程p θ ( x 0 , x 1 ) p_{\theta}(\mathbf{x}_{0}, \mathbf{x}_{1}) p θ ( x 0 , x 1 ) を次のように置いた。
p θ ( x 0 ∣ x 1 ) = ∏ i = 1 D ∫ δ − ( x 0 i ) δ + ( x 0 i ) N ( x ; μ θ i ( x 1 , 1 ) , σ 1 2 ) d x
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
p θ ( x 0 ∣ x 1 ) = i = 1 ∏ D δ − ( x 0 i ) ∫ δ + ( x 0 i ) N ( x ; μ θ i ( x 1 , 1 ) , σ 1 2 ) d x
δ + ( x ) = { ∞ if x = 1 x + 1 255 if x < 1 , δ − ( x ) = { x − 1 255 if x > − 1 − ∞ if 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}
δ + ( x ) = { ∞ x + 255 1 if x = 1 if x < 1 , δ − ( x ) = { x − 255 1 − ∞ if x > − 1 if x = − 1
ここでx 0 i x_{0}^{i} x 0 i はx 0 \mathbf{x}_{0} x 0 のi i i 番目のピクセルを意味する。すなわち、画像のピクセル値x x x を[ x − 1 255 , x + 1 255 ] [x - \frac{1}{255}, x + \frac{1}{255}] [ x − 255 1 , x + 255 1 ] の区間と見なすということだ。
3.4 簡略化された訓練の目的 3.2節でϵ \boldsymbol{\epsilon} ϵ を予測できるようにL t − 1 L_{t-1} L t − 1 を求めたが、実験的には性能および実装面でも先頭の定数を取り去って次のように使用する方が良かったという。
L simple ( θ ) : = E t , x 0 , ϵ [ ( ϵ − ϵ θ ( α ‾ t x 0 + 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]
L simple ( θ ) := E t , x 0 , ϵ [ ( ϵ − ϵ θ ( α t x 0 + 1 − α t ϵ , t ) ) 2 ]
上の疑似コードに示されている通り、t t t は1 1 1 からT T T までの範囲で一様分布 から抽出する。