よく来たな。今日はdiffusionモデルの基礎であるDPPM(Denoising Diffusion Probabilistic Models)の論文を読む。いつものようにまとめる。
ただ、ここで一つ注意として、俺はこれを読む前に生成モデルのEBMとSBMについてざっくり理解している。以下のサイトとかで勉強した。
この辺から理論が複雑になるので基礎理論を理解しておかないと、論文を読んでも何が分からないかすら分からない。これを前提にまとめていくのでそこだけ注意だ。
↓が今回読んでいく論文。
Abstract
1 Introduction
「拡散モデルと脱ノイズスコアマッチング、アニールされたLangevin dynamicsとの等価性を示す。」
ここについて詳しく聞いた↓
「対数尤度は他の尤度ベースモデルほど競争力がないが、サンプル品質は高い。」
ここについて解説↓
なぜ高い対数尤度が高品質なサンプルに直結しないのか
2 Background
拡散モデルの式はp_θ(x_0) = ∫ p_θ(x_0:T) dx_1:T として定義する。
これは、以下の変形ができる。
元の式:
p_θ(x_0) = ∫ p_θ(x_0:T) dx_1:T
展開すると:
p_θ(x_0) = ∫ ... ∫ p_θ(x_0, x_1, ..., x_T) dx_1 dx_2 ... dx_T
確率の連鎖律を適用:
p_θ(x_0) = ∫ ... ∫ p_θ(x_T) * p_θ(x_T-1|x_T) * ... * p_θ(x_0|x_1) dx_1 dx_2 ... dx_T
3で効いているのがマルコフ過程。
. マルコフ過程の仮定:
簡略化された条件付き確率:
マルコフ性がなければ:p(x_t | x_{t+1}, x_{t+2}, ..., x_T)
マルコフ性があれば:p(x_t | x_{t+1})
積分の簡略化:
p_θ(x_0:T) はいいが、そもそもなんで積分してんの?という質問には以下が答えだろう。
P(A) = ΣP(A,B) (Bの全ての可能な値について和を取る)
これとやっていることは同じで、確率分布なので積分しているということだ。
前方過程について
qは、x_t-1の状態からノイズを付加し、x_tにする式。
これは多変量ガウス分布なので、以下の式で表せられる。
なぜx_t-1の係数があるのか↓
こうしてノイズを付加したものに対して逆過程して画像を生成する。
ノイズ除去過程をpとする。このpは数学的に導出することはできない。よってここをデータによるニューラルネットワークの学習で求めるというのが拡散モデルだ。
最終的に上の式を最適化することで学習できる。
この式は単純にx0からxtまでノイズを付加したもの。以下のように求まる。
上のほうで示した目的関数の最適化をする。
いろいろやって式変形すると(5)の式になって、そこから(6)と(7)が導かれる。
これを使って学習をする。
3 Diffusion models and denoising autoencoders
3.1 Forward process and LT
前方過程がどういうものかを述べている。
ここでいきなりLTが出てきたが、以下が理由だ。
LTについては他のLtと違って最適化する必要がないということ。
変分下界がLT + L(T-1) + ... + L0の形を取る理由↓
3.2 Reverse process and L1:T −1
2について、共分散行列をイメージすると、その対角成分だけでいいよね、という話。しかも全ての成分はσt^2
なのでめちゃくちゃ簡略化されている。
4については、ここが重要なので詳しく聞いた。
なんでニューラルネットワークに(βt/√(1-ᾱt))をかけているのか?つまり前方過程で√(1-ᾱt)をかけているので正規化しているようだ。
変分推論でベイズの定理とか使うと以下が成立するらしい。平均が求まる。
μ_θ(xt, t) = 1/√αt * (xt - (βt/√(1-ᾱt)) * ε_θ(xt, t))
6のランジェバン動力学との関係について
Lt-1について考える
↓で、ここまでの話と、論文に出てくる式を結びつけて整理してもらった。
まず気になるのは式8がどこから出て来たのかということ。
これはつまり、pθ(xt-1|xt)とq(xt-1|xt, x0)というガウス分布があって、それぞれの分布の平均がμ̃t(xt, x0)とμθ(xt, t)。この差をなくすように最適化するのである。
補足として、逆拡散過程ではx0は未知なのでμθ(xt, t)となっている。
式9がどう出て来たか
xt(x0, ε) = √ᾱt x0 + √(1-ᾱt) εがどう出て来たかが結構凄くて、愚直に計算すればε1,ε2,…が出てくる。それがこんな簡単になっているのは中心極限定理を使っているようだ。こんなん分かるか。AIなかったら論文読めんぞ。
次は式10についてだ。式変形していくのだが、以下がどこからきたのかわからない。
↓拡散モデルの基礎から導かれるらしい。
ここまで来たら、式11はさきほど求めたものなので、これを突っ込んで計算すれば式12が求まる。
3.3 Data scaling, reverse process decoder, and L0
今まで、LT、L1:t-1について説明した。
この章ではL0について説明している。
式13は、前の層で求まった各成分の確率分布をスケーリングして離散的な数値にマッピングしている。Πがあるのは同時分布だから全てのピクセル成分を掛け算している。
3.4 Simplified training objective
4.1 Sample quality
4.2 Reverse process parameterization and training objective ablation
4.3 Progressive coding
Progressive lossy compression
ここ結構難しい。ただ、アルゴリズム3とアルゴリズム4を使って、図5を求めたようだ。
左のグラフはノイズ除去ステップが最初の段階で急激に下がっている。
最初の方が大まかな構造が決まる。つまり低周波な情報が決まっている。重要な情報が少ないステップで改善されるので効率的ですよね、という話。
中央のグラフ↓
右のグラフ
この辺の話でよく出てくる高周波とか低周波とかようやく意味が分かった。↓
Progressive generation
Connection to autoregressive decoding
↓何を言っているのか分からないので聞く。
なるほど。拡散モデルはノイズ付与→ノイズ除去というモデルだが、ある見方をすれば自己回帰モデルともとれるよ、という話か。
4.4 Interpolation
2つの異なる画像を潜在空間でブレンドすることで絶妙な画像が作れるという話。
でもそうなると、x̄t = (1-λ)x0 + λx'0 λではなく、x̄t = (1-λ)q(xt|x0) + λq(x't|x'0) λでは?と思ったので聞いてみたが、claude3も筆者が省略してx0と書いているのではないかと回答が来た。実際、図8の概念図をみると、こっちの方が正しいのではと思った。
5 Related Work
6 Conclusion