## 定義 拡散モデル(diffusion model、正式には diffusion probabilistic model)は、確率的生成モデルのパラメーター $p_\theta$ を学習するための枠組みである。現実世界の複雑なデータ分布から出発し、Markov 連鎖でノイズを段階的に加えて解析的に扱いやすい分布(典型的には標準正規分布)へ帰着させる**拡散過程**(diffusion process、関数 $q$)と、その逆向きにノイズを段階的に除去してデータ分布に従うサンプルを生成する**逆拡散過程**(reverse diffusion process、関数 $p_\theta$)の対で構成される潜在変数モデルである。原論文(Sohl-Dickstein et al., 2015, "Deep Unsupervised Learning using Nonequilibrium Thermodynamics")は、確率モデルにおける tractability(解析的計算可能性)と flexibility(表現力)のトレードオフを、確率モデルを「Markov 連鎖の終点として明示的に定義する」ことで解決する枠組みとして拡散モデルを提案した。拡散モデルは $p_\theta$ の具体的な構成(ネットワークアーキテクチャ)とは独立な枠組みであるため、原論文が想定した以外の画像モデル(U-Net、Vision Transformer など)にも自由に差し替えられる。(Source: [[@2025__Gihyo__原論文から解き明かす生成AI - Chapter 5 拡散モデルと画像生成]] §5.2) ## 拡散過程と逆拡散過程が同じ関数系になることの数学的保証 拡散モデルの根幹をなす性質として、**ある条件のもとで拡散過程の変換 $q$ と逆拡散過程の変換 $p$ が同じ関数系で表現できることが数学的に保証されている**。この保証がなければ、拡散過程で正規分布に沿ってノイズを加えても、それを打ち消す逆拡散過程が同じ正規分布の形で書ける理由がない。この妥当性は Feller(1949, "On the Theory of Stochastic Processes, With Particular Reference to Applications")の Markov 過程理論に遡る。 導出の骨子は以下のとおりである。ある状態が Markov 過程で確率的に変化する状況下で、微小時間・微小変化を仮定すると、確率遷移が満たす方程式として**前向き方程式**(forward equation)と**後ろ向き方程式**(backward equation)の2つが導出される。 - 離散状態では、状態遷移確率が満たす Chapman-Kolmogorov 方程式に微小時間 $dt$ での遷移確率を代入し $dt\to0$ の極限を取ると前向き方程式が、$dr\to0$ の極限を取ると後ろ向き方程式が得られる。両者は出発点が同じで、遷移前・遷移後のどちらを固定してどちらを変数とするかの違いに過ぎない。 - 連続状態(1次元座標での粒子拡散)でも同様の議論が展開でき、微小時間 $dt$ における変位の期待値・分散がともに $O(dt)$ であるという自然な仮定(ドリフト係数 $b(t,z)$・拡散係数 $a(t,z)$)のもとで、確率密度関数 $u(r,x;t,z)$ が満たす前向き方程式 $\frac{\partial u(r,x;t,z)}{\partial t} = -\frac{\partial}{\partial z}\bigl(b(t,z)u(r,x;t,z)\bigr) + \frac{1}{2}\frac{\partial^2}{\partial z^2}\bigl(a(t,z)u(r,x;t,z)\bigr)$ と後ろ向き方程式が導出される。両者は微小変化という条件下で同一の確率密度関数が満たす方程式である。 - さらに、確率密度関数が微小時間だけ発展する場合 $u(t+dt,x'\mid t,x)$ を Taylor 展開とデルタ関数のフーリエ変換を用いて計算すると、**確率密度関数の時間発展がガウス関数の形で記述される**という結論に達する。これが、DDPM が拡散過程・逆拡散過程の各ステップを正規分布で定式化できることの数学的根拠である。 『原論文から解き明かす生成AI』はこの一連の導出を式(5.1)〜(5.19)として自ら書き下しており、これは本書「はじめに」が「他の情報源ではあまり扱われないトピック」の代表例として名指しする箇所である。(Source: [[@2025__Gihyo__原論文から解き明かす生成AI - Chapter 5 拡散モデルと画像生成]] §5.2.1) ## DDPM の定式化 Denoising Diffusion Probabilistic Models(DDPM、Ho et al., 2020)は拡散モデルを画像生成に応用し世に広めた原論文である。 - **拡散過程**: $q(x_{1:T}\mid x_0)=\prod_{t=1}^T q(x_t\mid x_{t-1})$、$q(x_t\mid x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}\,x_{t-1},\beta_t I)$。ノイズの大きさを制御するパラメーター $\beta_1,\dots,\beta_T$ を用いる。 - **逆拡散過程**: $p_\theta(x_{0:T})=p(x_T)\prod_{t=1}^T p_\theta(x_{t-1}\mid x_t)$、$p_\theta(x_{t-1}\mid x_t)=\mathcal{N}(x_{t-1};\mu_\theta(x_t,t),\Sigma_\theta(x_t,t))$。$p(x_T)=\mathcal{N}(x_T;0,I)$ から出発する。 - **学習目的関数**: 負の対数尤度の変分下界を $L_T+\sum_{t>1}L_{t-1}+L_0$ に分解する。任意のタイムステップの $x_t$ を $x_0$ のみから閉形式でサンプリングできる性質($q(x_t\mid x_0)=\mathcal{N}(x_t;\sqrt{\bar\alpha_t}x_0,(1-\bar\alpha_t)I)$)を使うことで、任意のタイムステップを単独で取り出して効率的に学習できる。 - **ノイズ予測への単純化**: $\mu_\theta(x_t,t)$ の推定をノイズ $\varepsilon_\theta(x_t,t)$ の推定に置き換えたうえで、原論文はさらに重み項を無視した目的関数 $L_{simple}(\theta)=\mathbb{E}_{t,x_0,\varepsilon}\bigl[\|\varepsilon-\varepsilon_\theta(\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\varepsilon,\,t)\|^2\bigr]$ を提案する。この簡略化は学習を安定させるだけでなく、無視した重みがタイムステップ $t$ が小さいほど相対的に大きくなる構造を持つため、$L_{simple}$ はノイズ比率が大きく学習難度の高い領域($t$ が大きい領域)を重点的に学習させることになり、生成画像の質もむしろ向上する。 (Source: [[@2025__Gihyo__原論文から解き明かす生成AI - Chapter 5 拡散モデルと画像生成]] §5.2.2) ## 派生・応用(latent diffusion / DiT) 『原論文から解き明かす生成AI』第5章は、DDPM の拡散モデルを拡張する2つの周辺要素を経て Diffusion Transformer(DiT、Peebles and Xie, 2022)へ至る。 - **分類器なしガイダンス(classifier-free guidance)**: 逆拡散過程をクラス情報 $c$ で条件付ける手法。学習時に一定確率でクラス条件なし $\varepsilon_\theta(x_t,t,\varnothing)$ も学習し、生成時に条件あり・なしを $\tilde\varepsilon_\theta=\lambda\varepsilon_\theta(x_t,t,c)+(1-\lambda)\varepsilon_\theta(x_t,t,\varnothing)$ と線形結合してクラス情報の強調度をパラメーター $\lambda$ で調整する。 - **部分潜在空間拡散モデル(latent diffusion model)**: 画像空間より小さい潜在空間へ VAE でエンコードしてから拡散モデルを適用し、生成時にデコードして画像空間へ戻す。原論文の拡散モデルは観測変数と潜在変数の次元が同じだが、この手法は潜在変数の次元を落とすことで高解像度画像の計算負荷を抑える。 - DiT はこれら2つの要素を採用したうえで、拡散モデルの画像バックボーンを U-Net から [[Vision Transformer]] に置き換え、ラベル・タイムステップの条件付けを adaLN-Zero(適応的層正規化のゼロ初期化変種)で行う。詳細は [[Vision Transformer]] および章 source ページを参照。 (Source: [[@2025__Gihyo__原論文から解き明かす生成AI - Chapter 5 拡散モデルと画像生成]] §5.3) ## 拡散モデルとVAEの関係、スコアベースモデルとの一致(『ディープラーニングを支える技術〈2〉』による整理) 『ディープラーニングを支える技術〈2〉』第3章は、拡散モデルを VAE の潜在変数モデルの延長として位置づけたうえで学習法とスコアベースモデルとの関係を整理している。観測データ $x_0$ に潜在変数 $x_1,\dots,x_T$(拡散過程で得られるノイズ付きデータ)を対応させ、逆拡散過程を条件付き確率とみなすことで同時分布 $p(x_{0:T})$ を定義し、VAE と同様に対数尤度の下限である ELBO を最大化して最尤推定を実現する。 拡散モデルと VAE の重要な違いは2点ある。(1) 拡散モデルは拡散過程(VAE の認識モデルに相当)を学習しない固定モデルとして使う。(2) 拡散モデルは非常に多くのステップを使ってデータを徐々に変換し、各ステップは別パラメータを持たず、入力 $t$ が変わるだけで同じパラメータを共有するモデルを使う。(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 3 深層生成モデル]] §3.6) Jonathan Ho らは平均 $\mu(x_t,t;\theta)$ を直接モデル化する代わりに、加えられたノイズそのもの $\epsilon(x_t,t;\theta)$ を予測するよう学習対象を単純化し、この推定に U-Net アーキテクチャを使うことで生成品質を大きく向上させた(この単純化は『原論文から解き明かす生成AI』が導出する $L_{simple}$ と同じ単純化である)。また拡散モデルは、対数尤度 $\log p(x)$ の入力についての勾配(スコア関数)を学習するスコアベースモデル(score-based generative model)と深い関係があり、データにノイズを加えて元に戻す方向の期待値がスコア関数と一致するため、スコアマッチング目的関数と拡散モデルの ELBO は重みを調整すれば一致することが示されている。両モデルは動機づけが異なるにもかかわらず同じ目的関数で学習しているとみなせる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 3 深層生成モデル]] §3.6) ## 横断的知見 - **『原論文から解き明かす生成AI』は DDPM の $L_{simple}$ 単純化を式変形として詳細に導出するのに対し、『ディープラーニングを支える技術〈2〉』は同じ単純化を VAE との対比・スコアベースモデルとの一致という2つの理論的文脈の中に位置づける**: 前者(§5.2.2)はノイズ予測への単純化 $L_{simple}(\theta)=\mathbb{E}[\|\varepsilon-\varepsilon_\theta(\cdot)\|^2]$ を導出し、無視した重み項がタイムステップの大きい(ノイズ比率の大きい)領域を重点的に学習させる効果を持つことを示す。後者(ch.3 §3.6)は同じ単純化を、(1) VAE の ELBO 最大化との構造的な対応(認識モデルを固定するか学習するか)、(2) スコアマッチング目的関数との数学的な一致、という2つの既存理論との接続として説明する。前者が「なぜこの単純化が効くか」を式の重み構造から示すのに対し、後者は「この単純化がなぜ他の生成モデルの理論と両立するか」を示しており、相補的な理解を与える。(Source: [[@2025__Gihyo__原論文から解き明かす生成AI - Chapter 5 拡散モデルと画像生成]] §5.2.2, [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 3 深層生成モデル]] §3.6) - **拡散モデルの「認識モデルを学習しない」という特徴は、[[VAE(変分オートエンコーダ)]]の潜在変数モデルとしての定式化を裏返しにしたものである**: [[VAE(変分オートエンコーダ)]]は符号化器(認識モデル)と復号化器(生成モデル)の両方を学習し、ELBO最大化を通じて認識モデルが真の事後分布へ近づくことが学習の核心だった。拡散モデルは同じELBO最大化の枠組みを使いながら、認識モデルに相当する拡散過程を「ノイズを徐々に加える」という固定の(学習しない)操作に置き換える。この設計変更により、VAEが抱えていた認識モデルの学習困難性(表現力不足による近似誤差)という問題そのものを回避しつつ、多ステップ化によって各ステップの変換を単純にするというトレードオフを選んでいることが、両概念を突き合わせて初めて明確になる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 3 深層生成モデル]] §3.6, [[VAE(変分オートエンコーダ)]]の定義節) ## 未解決の問い - 拡散モデルにはスコアベースの定式化や確率過程の連続時間化など、本章が扱わない他の研究方向が存在する(本章は日本語書籍『拡散モデル データ生成技術の数理』を参考文献として挙げるにとどまる)。これらの定式化と、本章が導出した離散タイムステップの DDPM 定式化はどのように関係するか。(Source: [[@2025__Gihyo__原論文から解き明かす生成AI - Chapter 5 拡散モデルと画像生成]] §5.2 脚注18) - 逆拡散過程の分散 $\Sigma_\theta(x_t,t)=\sigma_t^2 I$ の選び方として、拡散過程と同じ分散 $\sigma_t^2=\beta_t$ と事後分布と同じ分散 $\sigma_t^2=\tilde\beta_t$ の2通りが実験的に似た結果を示すとされるが、なぜ両者が近い結果になるのかの理論的な説明は何か。『ディープラーニングを支える技術〈2〉』もHoらの2通りの分散選択(データ分布が正規分布のとき最適な $\sigma_t=\beta_t$、データ分布が定数のとき最適な $\sigma_t^2=\tilde\beta_t$)を紹介するが、どちらも「最適となる条件」を述べるにとどまり両者の中間的な状況での挙動には触れない。 - DDPM の LSUN 寝室クラスでの生成画像には枕やベッドの形など細部の不自然さが残ると報告されている。これは複雑な画像分布での再現難易度に起因すると考察されているが、DiT のような後継のバックボーンでこの不自然さはどこまで解消されるか。 - スコアマッチング目的関数と拡散モデルのELBOが「重みを調整すれば一致する」ことは『ディープラーニングを支える技術〈2〉』が結論のみを紹介する(Ho et al. 2020, Song et al. 2019への参照)。この重み調整の具体的な形と、$L_{simple}$ が採用する重みの単純化(すべての項を等しい重みで扱う)との関係は両ソースとも詳細に踏み込んでいない。 ## 関連 - ソース: [[@2025__Gihyo__原論文から解き明かす生成AI - Chapter 5 拡散モデルと画像生成]] / [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 3 深層生成モデル]] - 概念: [[Vision Transformer]] / [[Transformer]] / [[VAE(変分オートエンコーダ)]](拡散モデルが拡張する潜在変数モデルの基礎) - 実体: [[菊田遥平]] / [[岡野原大輔]] ## 出典 - [[@2025__Gihyo__原論文から解き明かす生成AI - Chapter 5 拡散モデルと画像生成]](§5.2, §5.2.1, §5.2.2, §5.3) - 菊田遥平, 『原論文から解き明かす生成AI』, 技術評論社, 2025, 第5章. - 岡野原大輔, 『ディープラーニングを支える技術〈2〉 ニューラルネットワーク最大の謎』, 技術評論社, 2022, 第3章, §3.6.