体系 › 生成モデル
·無料·論文·14分で読めます

拡散モデルを1から理解する — ノイズを足して、引く

DDPM原論文(Ho et al., 2020)を本文だけを根拠に読む。ノイズを足す前向き過程と引く逆過程、なぜ目的関数が「ノイズを当てる」形に落ち着くのか、単純化した損失が尤度を悪化させながら品質を上げた理由、そしてステップ数と品質の関係。

要点

  • 拡散モデルとは、有限時間でデータに一致するサンプルを作るために変分推論で学習された、パラメータ付きマルコフ連鎖である。
  • 前向き過程は学習しない固定のノイズ付加で、式4により元画像から任意の時刻 tt へ一足飛びに飛べる。
  • 式10では右辺の未知が ϵ\boldsymbol{\epsilon} だけになるので、ネットワークはノイズを予測すれば平均を復元できる。
  • 式12の重みを捨てた LsimpleL_{\mathrm{simple}} は重み付き変分下界で、ϵ\boldsymbol{\epsilon} 予測と組むと IS 9.46 / FID 3.17 になった。
  • 生成はネットワークを TT 回呼ぶのでコストはステップ数に正比例し、CIFAR10 の256枚で17秒かかる。
対象imageタスクgeneration

Denoising Diffusion Probabilistic Models

一次資料 — この記事の根拠

論文の発表 2020-06-19→この解説の公開 2026-08-066年2か月後

Denoising Diffusion Probabilistic ModelsJonathan Ho, Ajay Jain, Pieter Abbeel · 2020-06-19 · v2arXiv:2006.11239論文ページ·PDF
原文の要旨(Abstract)を読む

We present high quality image synthesis results using diffusion probabilistic models, a class of latent variable models inspired by considerations from nonequilibrium thermodynamics. Our best results are obtained by training on a weighted variational bound designed according to a novel connection between diffusion probabilistic models and denoising score matching with Langevin dynamics, and our models naturally admit a progressive lossy decompression scheme that can be interpreted as a generalization of autoregressive decoding. On the unconditional CIFAR10 dataset, we obtain an Inception score of 9.46 and a state-of-the-art FID score of 3.17. On 256x256 LSUN, we obtain sample quality similar to ProgressiveGAN. Our implementation is available at https://github.com/hojonathanho/diffusion


ノイズを足す道を、逆にたどる

拡散モデルとは、有限時間でデータに一致するサンプルを作るために変分推論で学習された、パラメータ付きマルコフ連鎖です(§1)。この連鎖の遷移は「拡散過程」——データに少しずつノイズを加え、信号が壊れるまで進むマルコフ連鎖——を逆向きにたどるように学習されます。

ここに設計上の急所があります。論文いわく、拡散が少量のガウスノイズの積み重ねでできているなら、サンプリング側の遷移も条件付きガウスで足りる。これが「特に単純なニューラルネットのパラメータ化」を可能にした(§1)。壊し方を細かく刻めば、戻し方も単純な形で書ける、ということです。

前向き過程: 縮めて、足す

前向き過程は学習しません。分散スケジュール β1,…,βT\beta_1,\dots,\beta_T に従って固定されています(式2):

q(xt∣xt−1)=N(xt;1−βt xt−1, βtI)q(\mathbf{x}_{t}|\mathbf{x}_{t-1})=\mathcal{N}\left(\mathbf{x}_{t};\sqrt{1-\beta_{t}}\,\mathbf{x}_{t-1},\ \beta_{t}\mathbf{I}\right)
(1)

記号を日常語に置き換えると、q(xt∣xt−1)q(\mathbf{x}_{t}|\mathbf{x}_{t-1}) は「いま手元にある絵から、少しだけ汚れた次の絵を作る手順」、N\mathcal{N} は「釣鐘型のくじを引け」という指示で、セミコロンの後ろの2つはそのくじの中心と振れ幅です。言い換えると、1ステップごとに画像を 1−βt\sqrt{1-\beta_{t}} 倍に縮めてから分散 βt\beta_{t} のノイズを足す。絵をわずかに薄めて、その上に砂をまく——1ステップはそれだけです。縮めるのは、ノイズを足しても分散が膨らまないようにするためです(付録C)。

この過程には便利な性質があります。αt=1−βt\alpha_{t}=1-\beta_{t}、αˉt=∏s=1tαs\bar{\alpha}_{t}=\prod_{s=1}^{t}\alpha_{s} と置くと、任意の時刻 tt の状態が閉じた形で書ける(式4):

q(xt∣x0)=N(xt;αˉt x0, (1−αˉt)I)q(\mathbf{x}_{t}|\mathbf{x}_{0})=\mathcal{N}\left(\mathbf{x}_{t};\sqrt{\bar{\alpha}_{t}}\,\mathbf{x}_{0},\ (1-\bar{\alpha}_{t})\mathbf{I}\right)
(2)

ここで αˉt\bar{\alpha}_{t} は「tt ステップ後に元の絵がどれだけ残っているか」を表す1つの数、1−αˉt1-\bar{\alpha}_{t} は「どれだけノイズに置き換わったか」です。日常語に直すと、この式は「くじの中心は元画像を αˉt\sqrt{\bar{\alpha}_{t}} 倍に薄めたもので、振れ幅はノイズに明け渡した分ちょうど」と言っています。つまり元画像から任意のステップ数まで一足飛びに飛べる。1000回ループを回す必要がないので、tt をランダムに選んで学習できます(§2)。実験では T=1000T=1000、β\beta は 10−410^{-4} から 0.020.02 への線形増加。この値は [−1,1][-1,1] にスケールしたデータに対して十分小さく、前向きと逆向きがほぼ同じ関数形になることを保ちつつ、終点 xT\mathbf{x}_{T} の信号対雑音比を可能な限り小さくするために選ばれています(§4)。

逆過程は、勾配を少し下る操作に似ている

逆過程は p(xT)=N(0,I)p(\mathbf{x}_{T})=\mathcal{N}(\mathbf{0},\mathbf{I}) から始まる学習済みガウス遷移の連鎖です(式1)。学習は負の対数尤度の変分上界で行います(式3)。

ここで論文が指摘する対応関係が効いてきます。後述する ϵ\boldsymbol{\epsilon} 予測のパラメータ化を採ると、サンプリング手続き(Algorithm 2)はランジュバン動力学に似た形になり、ϵθ\boldsymbol{\epsilon}_{\theta} はデータ密度の学習された勾配として振る舞う(§3.2)。1ステップは「勾配に沿って少し動いて、ノイズを足す」に近い、ということです。

FIG 1勾配に沿って少しずつ動く操作の感覚。逆過程の1ステップが「学習された勾配で少し動く」に似ている(§3.2)という対応の下地。刻み幅の効き方を体感するための図で、論文が測った量ではない

変分上界を、扱える形にほどく

変分上界は分散を減らすために書き換えられます(式5)。LTL_{T}、各 Lt−1L_{t-1}、L0L_{0} の3種類の項に分かれ、βt\beta_{t} を定数に固定しているため LTL_{T} は学習中の定数として無視できます(§3.1)。中間の項は、前向き過程の事後分布を x0\mathbf{x}_{0} で条件付けると扱える形になり(式6・7)、すべてのKLがガウス同士の比較になるので閉形式で計算できる(§2)。

そこから Lt−1L_{t-1} は「μ~t\tilde{\boldsymbol{\mu}}_{t} と μθ\boldsymbol{\mu}_{\theta} の二乗誤差」に落ちます(式8)。素直に読めば、ネットワークは事後分布の平均 μ~t\tilde{\boldsymbol{\mu}}_{t} を当てればよい。ここまでは自然な流れですが、論文はもう一段だけ書き換えます。

未知は、ノイズだけになる

式4を xt=αˉtx0+1−αˉtϵ\mathbf{x}_{t}=\sqrt{\bar{\alpha}_{t}}\mathbf{x}_{0}+\sqrt{1-\bar{\alpha}_{t}}\boldsymbol{\epsilon} と再パラメータ化して展開すると、μθ\boldsymbol{\mu}_{\theta} が予測すべき量が露わになります(式10):

μθ(xt,t)=1αt(xt−βt1−αˉtϵθ(xt,t))\boldsymbol{\mu}_{\theta}(\mathbf{x}_{t},t)=\frac{1}{\sqrt{\alpha_{t}}}\left(\mathbf{x}_{t}-\frac{\beta_{t}}{\sqrt{1-\bar{\alpha}_{t}}}\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t},t)\right)
(3)

右辺を手順として読むと「手元のノイズまみれの画像から、ネットワークが当てたノイズを βt/1−αˉt\beta_{t}/\sqrt{1-\bar{\alpha}_{t}} 倍だけ差し引き、αt\sqrt{\alpha_{t}} で割って、前向き過程で縮めた分を戻す」。要するに、汚れを見積もって拭き取り、縮んだ分を引き伸ばす操作です。この式の要点は「右辺に出てくるのは xt\mathbf{x}_{t} と ϵ\boldsymbol{\epsilon} の2つだけ」ということです。xt\mathbf{x}_{t} はネットワークの入力として既に手元にある。だから未知は ϵ\boldsymbol{\epsilon} だけで、それだけを予測すれば平均が復元できる(式11)。代入すると目的関数は重み付きの ∥ϵ−ϵθ∥2\|\boldsymbol{\epsilon}-\boldsymbol{\epsilon}_{\theta}\|^{2} になり(式12)、これは複数のノイズ水準にわたるデノイジングスコアマッチングに似た形です(§3.2)。

論文は但し書きも忘れません。これは pθp_{\theta} の別のパラメータ化にすぎないので、有効性はアブレーションで確かめる、と(§3.2)。x0\mathbf{x}_{0} を直接予測する選択肢もあったが、初期実験でサンプル品質が悪かったとも書かれています。

学習も生成も、10行に収まる

学習 (Algorithm 1): x0 をデータから引く / t を 1..T から一様に引く
  ε ~ N(0, I) を引き、|| ε - ε_θ(√ᾱ_t x0 + √(1-ᾱ_t) ε, t) ||² を勾配降下

生成 (Algorithm 2): x_T ~ N(0, I)
  t = T..1 について
    z ~ N(0, I)(t=1 では z=0)
    x_{t-1} = (1/√α_t)( x_t - ((1-α_t)/√(1-ᾱ_t)) ε_θ(x_t, t) ) + σ_t z

学習側にループはありません。式4のおかげで、時刻 tt をランダムに1つ引いて1回ノイズを足すだけで済みます。

単純化した損失が、品質を上げた

論文はさらに、式12の重み βt22σt2αt(1−αˉt)\frac{\beta_{t}^{2}}{2\sigma_{t}^{2}\alpha_{t}(1-\bar{\alpha}_{t})} を捨てた形を使います(式14)。残るのは ∥ϵ−ϵθ∥2\|\boldsymbol{\epsilon}-\boldsymbol{\epsilon}_{\theta}\|^{2} だけ。これは変分下界そのものではなく重み付き変分下界であり、§4 の設定では小さい tt の項が相対的に軽くなります。小さい tt はごく僅かなノイズを取り除く課題なので、軽くして大きい tt の難しい除去にネットワークを集中させるほうが有益だ、というのが論文の説明です(§3.4)。

効果は表2に出ます。μ~\tilde{\boldsymbol{\mu}} 予測+真の変分下界(固定等方 Σ\boldsymbol{\Sigma})が IS 8.06 / FID 13.22、ϵ\boldsymbol{\epsilon} 予測+同条件が 7.67 / 13.51 とほぼ互角。ところが ϵ\boldsymbol{\epsilon} 予測+LsimpleL_{\mathrm{simple}} は IS 9.46 / FID 3.17 に跳ねます。一方、μ~\tilde{\boldsymbol{\mu}} を単純化目的で学習した場合と、ϵ\boldsymbol{\epsilon} 予測で分散を学習させた場合は不安定でスコアが載っていません。ε予測と単純化損失は、セットで初めて効く。

ステップ数と品質のトレードオフ

T=1000T=1000 は「サンプリング時のネットワーク評価回数を先行研究と揃えるため」に置かれた値で、掃引していないと明記されています(§4、付録B)。生成は Algorithm 2 のとおりネットワークを TT 回呼ぶので、コストはステップ数に正比例します。実測では、CIFAR10 の256枚が17秒、256×256256\times256 の128枚が300秒(付録B)。

長さについて論文が述べているのはこの点です。ガウス拡散の長さはデータ次元に縛られず、高速なサンプリングのために短くも、表現力のために長くもできる(§4.3)。逆過程の途中で x^0\hat{\mathbf{x}}_{0} を予測させると、大きなスケールの特徴が先に現れ、細部が最後に現れます。

関連して、レートと歪みの配分も測られています。表4では逆過程を最後まで回したとき rate 1.776 bits/dim・RMSE 0.951 なのに対し、900ステップ時点では 0.120 bits/dim・RMSE 12.02。ビットの大半は知覚できない歪みの記述に使われているわけです(§4.3)。ただしこれは進行的な非可逆符号としての解析であり、サンプリングを途中で打ち切った画像の品質を測ったものではありません。

限界と未検証点

論文自身が述べているもの:

過学習については、訓練とテストの符号長の差が最大 0.03 bits/dim であることを根拠に「過学習していない」と述べています(§4.3)。

FIG 2訓練誤差とテスト誤差の乖離が過学習の指標。DDPMはこの差(符号長)が0.03 bits/dim以下だったことを根拠に、過学習していないと述べている(§4.3)

※本記事執筆時点(2026年)の補足(原論文の主張ではなく筆者の注記): 数値はすべて2020年の本論文の報告値です。少ステップのサンプラーや潜在空間での拡散など後続の手法は本論文の範囲外であり、ここには含めていません。

現場ではこう使う

拡散モデルに実務で触るのは、画像生成基盤を扱うMLエンジニアが学習済みモデルを自社データで追加学習する、あるいは小さめのドメインで一から学習するときです。理論の全体を再導出する場面はまず来ませんが、下の値は設定ファイルにそのまま並びます。

触るパラメータ。 T(拡散ステップ数)、β\beta スケジュール(線形 10−4→0.0210^{-4}\to0.02)、EMAの減衰率 0.9999、dropout(CIFAR10 のみ掃引して 0.1)、学習率 2×10−42\times10^{-4}、バッチ 128(2562256^2 では 64)。自己注意は 16×1616\times16 解像度のブロック間に置き、時刻 tt はTransformerの正弦位置埋め込みとして各残差ブロックに加えます(付録B)。

落とし穴。 ①高解像度で学習率を据え置くと不安定になる。論文は 2562256^2 で 2×10−52\times10^{-5} まで下げています。②逆過程の分散を「学習させれば良くなる」と考えると壊れます(表2)。③EMAとdropoutは掃引していない既定値なので、外したときの挙動は論文の外側です。④生成コストはステップ数に比例し、ネットワークをT回呼びます。⑤FIDは訓練セット基準で3.17、テストセット基準で5.24。どちらの基準かを揃えずに数字を比較しない(§4.1)。

面接で問われる問い。 「なぜノイズを予測するのか」——式10が μθ\boldsymbol{\mu}_{\theta} に要求する量は xt\mathbf{x}_{t} と ϵ\boldsymbol{\epsilon} の線形結合で、xt\mathbf{x}_{t} は入力として既知だから未知は ϵ\boldsymbol{\epsilon} だけ(式11)。加えてデノイジングスコアマッチングと同形になる(§3.2)。「LsimpleL_{\mathrm{simple}} は変分下界と何が違うのか」——式12の重みを落とした重み付き下界で、小さい tt の項が軽くなり、尤度は悪化してサンプル品質は上がる(§3.4)。前提の道具立ては確率・統計、bits/dimの読み方は情報理論にあります。

まとめ

原論文: Ho, Jain, Abbeel, "Denoising Diffusion Probabilistic Models" (arXiv:2006.11239, 2020 / v2)

🎬 この内容の解説動画(Manim・字幕つき)

参考文献

  1. Jonathan Ho, Ajay Jain, Pieter Abbeel. (2020-06-19) Denoising Diffusion Probabilistic Models. arXiv:2006.11239論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

運営: TechAthletes · 編集方針 · 出典の付け方 · 訂正の記録

コメント

コメントにはログインが必要です