JA EN
体系生成モデル
·★ 会員·論文·14分で読めます

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

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

対象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(xtxt1)=N(xt;1βtxt1, β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(xtxt1)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(xtx0)=N(xt;αˉtx0, (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β\beta10410^{-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}、各 Lt1L_{t-1}L0L_{0} の3種類の項に分かれ、βt\beta_{t} を定数に固定しているため LTL_{T} は学習中の定数として無視できます(§3.1)。中間の項は、前向き過程の事後分布を x0\mathbf{x}_{0} で条件付けると扱える形になり(式6・7)、すべてのKLがガウス同士の比較になるので閉形式で計算できる(§2)。

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

式4を と再パラメータ化して展開すると、 が予測すべき量が露わになります(式10):

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

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

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

コメント

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