27.7K Views
September 03, 22
スライド概要
大阪大学医学系研究科 特任助教
Diffusion Model 1
Intro Diffusion Modelを詳しく知りたい(数ヶ月前の自分) ● 少し前からDiffusion Modelという言葉をよく耳にする ● 詳しくはわからんが、ノイズを加えてゴニョゴニョしているらしい ● VAEは前に勉強したことあるけど、それの進化系? ● 論文は読んだけど、数式だらけでよく分からなかった ● 噂によると、GANを超えたらしい ● 右下のアインシュタインのイラストを見たことがある ● 話題のDALL·Eを詳しく知りたい 2
Intro Diffusion Modelを詳しく知りたい(数ヶ月前の自分) ● 少し前からDiffusion Modelという言葉をよく耳にする ● 詳しくはわからんが、ノイズを加えてゴニョゴニョしているらしい ● VAEは前に勉強したことあるけど、それの進化系? ● 論文は読んだけど、数式だらけでよく分からなかった ● 噂によると、GANを超えたらしい ● 右下のアインシュタインのイラストを見たことがある ● 話題のDALL·Eを詳しく知りたい 今回はDiffusion Modelの説明・数式の導出にフォーカスします ● 時間の都合上、GANとの比較・アインシュタインの話、DALL·E 2の話は今回はしません ● DALL·EなどのText to Imageについては希望があれば、またの機会にお話しようと思います。 3
Generative model (Statistical modeling) ● ● 手元の観測データxから隠れ変数zを推論する(pθ(z|x)) pθ(z|x)を事後分布(Posterior)とすると、ベイズルールから以下のように書ける ○ ○ ○ ● pθ(x|z)は尤度(Likelihood) pθ(z|x)は事前分布(Prior) pθ(x)は周辺尤度(Marginal likelihood) ただし、実際には分母の積分計算は解析的に解けない(intractable) 4
Variational Inference ● 分布qφ(z)でpθ(z|x)を近似させる(2つの分布のKLダイバージェンスを最小化する) ● pθ(z|x)を含むKLダイバージェンスの計算は解析的に解けないので、 ELBO(Evidence Lower Bound) 代わりにELBOを最大化することで、qφ(z)を近似させる 5
VAE(Variational Autoencoder) ● Variational Inferenceの近似を深層学習に拡張させた手法 ● qφ(z|x)の確率分布を関数で表現し、逆伝播を可能とした(Reparametrization trick) From Autoencoder to Beta-VAE | Lil'Log 6
Diffusion (Probabilistic) Model ● VAEはx→z→xのシンプルなモデル(Encoder・Decoder)で構成される ● Diffusion Modelでは、x→z→xのモデル(Encoder・Decoder)を時系列に拡張 Diffusion Models as a kind of VAE | Angus Turner 7
Diffusion (Probabilistic) Model ● 観測データx0と「同次元」の隠れ変数x1:Tにより、x0の生成過程をモデリング ● 隠れ変数の遷移はマルコフ連鎖(今の状態は直前の状態にのみ依存)を仮定 forward process reverse process ○ foward process .. 観測データにノイズを加えるプロセス( noising) ○ reverse process .. ノイズからデータを復元するプロセス( denoising) Improving Diffusion Models as an Alternative To GANs, Part 2 | NVIDIA Technical Blog 8
Diffusion (Probabilistic) Model Diffusion (Probabilistic) Modelの論文として有名なものは以下の2本 1. Deep Unsupervised Learning using Nonequilibrium Thermodynamics → Diffusion Modelのオリジナルの論文 2. Denoising Diffusion Probabilistic Models → 1.を発展させた論文(モデルをシンプルにして実装を容易にし、性能向上を実現) ○ 2.が最近のDiffusion Modelの進化を押さえる上で重要となる論文 ○ 2.の論文を理解することで Diffusion Modelの基本的なアイデアを押さえることができる (本スライドも2.の内容の説明を中心に書かれている) ○ Backgroundなどより深く理解したい場合は 1.も読むべき 9
Diffusion (Probabilistic) Model ● ● 観測データx0と「同次元」の隠れ変数x1:Tにより、x0の生成過程を定義するモデル 隠れ変数の遷移はマルコフ連鎖(今の状態は直前の状態にのみ依存)を仮定 reverse process ● reverse processを通じて、観測データの尤度を最大化するような遷移過程を学習する 10
Foward process ● 観測データにノイズを加えるプロセス ○ β1…βtはステップ毎のバリアンスのスケジュール ○ βを調整して徐々にノイズを加える ○ xtはパラメータβtと前の状態xt-1をパラメータとしたガウス分布 11
Reverse process ● ノイズからデータを復元するプロセス ○ ○ ○ foward processで生成されたノイズ xTから元の観測データ x0を復元する xt-1はパラメータμθ・Σθと前の状態xtをパラメータとしたガウス分布 観測データx0の尤度を最大化するような遷移過程を学習する (オリジナルの観測データに近づけることを目的として学習を行う) 12
Short summary ● ● foward process ○ 観測データにノイズを加えるプロセス ○ パラメータβをステップ毎に与えていき、完全なノイズデータを生成する reverse process ○ ノイズからデータを復元するプロセス ○ 観測データに近づけることを目的として学習を行う [2006.11239] Denoising Diffusion Probabilistic Models 13
Training ● Generative modelの目的は観測データxに近いデータを生成(復元)すること ● (大雑把に言えば)観測データxと生成データx’の違いを最小化することを目指す From Autoencoder to Beta-VAE | Lil'Log 14
Training ● Diffusion Modelもそのモチベーションは同様 ● 観測データx0の生成過程(reverse process)の尤度を最大化したい(pθ(x0)) →Negative log-likelihood(-logpθ(x0))を損失関数とすれば良い ● ただ、周辺化すると分かるが、この積分計算は解析的に解けない(intractable) 15
Training ● 損失関数として以下の関数を定義(Negative log-likelihood) ● 直接は解析的に解けないので、代わりに右式を最小化することを考える ○ KLダイバージェンスは常に非負なので上式が必ず成立する →どのような分布のKLダイバージェンスを計算するか 16
Training ● foward processはオリジナルの観測データにステップ毎にノイズを加える ● reverse processはノイズから元の観測データに近づけることを目指す foward processのノイズ過程を反転させるようなデノイジング(ノイズ除去)処理を行えば reverse processを通じて元のデータに近いデータを生成できそう reverse processをfoward processを反転させた確率分布を近づける 17
Training ● forward processはq(xt-1|xt)なので、反転させた分布はq(xt-1|xt) ● これはforward processの事後分布 ● reverse processのpθ(xt-1|xt)をforward processの事後分布q(xt-1|xt)に近づける ● 実際は特定の観測データx0で条件付けた場合のforward processの事後分布に近似させたいの foward process で、以下の最小化を目指す 18
Derivation ● (3)に(4)のKLダイバージェンスを代入 ● KLダイバージェンスを以下のように書き換える ● ベイズルールを利用してKLダイバージェンスのforward processを変形する 19
Derivation ● (6)に(7)を代入 20
Derivation ● (5)に(8)を代入 variational lower bound ● (9)のvariational lower boundの最小化問題に変形できた 21
Derivation ● variational lower boundの分子はforward process、分母はreverse process ● (1), (2)を(9)に代入して以下のように変形する 後の式変形のため、分母の p(xT)を外に出しておく 22
Derivation ● 続けてvariational lower boundの式変形を行う 23
Derivation ● 二番目のq(xt|xt-1)をベイズルールを用いて変形する ● (12)を(11)に代入する 24
Derivation ● 二番目の式のfoward processは任意の観測データのノイズ生成過程を示している ● 特定の観測データに対するノイズ生成過程としないと非常にhigh varianceになる →観測データx0で条件付ける 25
Derivation ● (14)を式変形する 26
Derivation ● (15)を式変形する Lt Lt-1 L0 27
Derivation ● 第一項(LT) ○ 論文ではforward processのパラメータβは固定[Ho. et al. 2020] ○ p(xT)はN(0,I)のガウス 分布 →learnableなパラメータを含まないので定数として扱う [2006.11239] Denoising Diffusion Probabilistic Models 28
Derivation ● 第二項(Lt-1) 29
Derivation ● 第二項(Lt-1) ○ varianceはステップ毎の定数(βt)で固定 [Ho et al. 2020] [2006.11239] Denoising Diffusion Probabilistic Models 30
Derivation ● 第二項(Lt-1) ○ Lt-1は2つの分布( forward processの事後分布と reverse process)の違いそのもの ○ 2つの分布はいずれもガウス分布であり、 KLダイバージェンスは解析的に計算できる ○ reverse processのvarianceを固定する場合、 varianceの違いはuncontrollable (learnableなパラメータを持たないので、 lossとして考慮しても意味はない) ○ reverse processのmeanが唯一のlearnableなパラメータであり、分布間の KLダイバージェンスの計算で はなく、reverse processのmeanを最適化するよう lossを設計すれば良い (reverse processのmeanをforward processの事後分布の meanに近づける) Deriving KL Divergence for Gaussians 31
Derivation ● meanは離散値なので、lossにはMSE(Mean Square Error)を使用 actual mean ○ predicted mean (17)を(18)に代入して変形しておく 32
Derivation ● reparametrizationにより、meanの計算を拡張 ○ foward processの分布からx0を定式化 reparametrization 33
Derivation ● (20)を(18)のactual meanに代入して以下のように変形する xtからノイズを引いている Diffusion Models as a kind of VAE | Angus Turner 34
Derivation ● (21)を(18)に代入する ○ train時にxtは与えられているので、 lossとして考慮する必要はない ○ reverse processではノイズεさえ予測できれば良い reparameterization Diffusion Models as a kind of VAE | Angus Turner 35
Derivation ● (22)を変形する .. forward process(encoder)で生成されるノイズ .. reverse process(decoder)で予測するノイズ 生成されたノイズを除去(最小化)するように学習 36
Derivation ● (23)のεθに(19)を代入 ○ tステップ(1 ≦ t ≦ T-1)毎の上式のlossを加算する 37
Derivation ● 第三項(L0) ○ 最後のreverse processのステップからデータを復元する過程 ○ 論文では画像を想定して以下のスケーリング処理を定義 38
Derivation ● 実験では簡素化した損失関数を使用 ○ Lt-1のスケーリングを無視 ○ L0を損失関数から除外 ○ この損失関数の方が実装が容易&元の関数と同様の性能だったため最終的にはこちらを採用 39
Training ● 訓練データからデータx0をサンプリング ● 一様分布からステップtをサンプリング ● ノイズεをサンプリング ● Gradient descentを用いて最適化 40
Summary Diffusion Model ● 生成過程の隠れ変数をマルコフ連鎖で繋いだグラフィカルモデル ● forward processを通じて、元のデータを徐々に「破壊」する(ノイズを加える) ● reverse processを通じて、破壊されたデータを復元する工程を「学習」する ● 復元工程を深層学習で正確に実現することで、生成モデルとしての高い性能を示した Ayan Das · An introduction to Diffusion Probabilistic Models 41
参考 [Blog] ● Diffusion Models as a kind of VAE | Angus Turner ● What are Diffusion Models? | Lil'Log ● The Annotated Diffusion Model [YouTube] ● Diffusion Models | Paper Explanation | Math Explained ● What are Diffusion Models? どれも分かりやすかったので、これらを参考に自身で式を追ってみることをオススメします 42