DDIMと拡散サンプリングの高速化
拡散モデルの生成が遅い理由を断ち、学習はそのままで数十ステップへ短縮する原理を解説。決定論的サンプリングと確率流ODEの正体までつかめます。
- 1.DDIMはDDPMと同じ学習済みノイズ予測モデルをそのまま使い、サンプラだけを差し替える。非マルコフ過程として逆向き分布を再設計し、ノイズ再注入を消すことで決定論的にできる。
- 2.決定論化により1ステップで進める距離が大きく取れ、数百〜1000ステップを20〜50ステップへ圧縮できる。同じ初期ノイズが同じ画像へ写るため再現性と潜在空間補間も得られる。
- 3.DDIM更新式は確率流ODEのオイラー離散化に一致する。サンプリングは「学習済みスコア場が定めるODEを解く」問題に帰着し、より高次のソルバで更にステップを減らせる。
出発点:DDPMの遅さはどこから来るか
拡散モデルの学習と素朴な生成手順は 拡散モデルの数理 で扱いました。そこで残った最大の弱点がサンプリングの遅さです。DDPM(標準の拡散)は逆向き過程を1ステップずつ確率的に巻き戻すため、T=数百〜1000回のネットワーク評価が1枚の生成ごとに走ります。
この遅さの根は2つあります。(1) 各ステップで小さなガウスノイズをあえて足し戻す確率的な手続きであること、(2) 前向き過程を「直前の状態にだけ依存する」マルコフ連鎖として定義したため、刻みを大きくすると近似が崩れること。DDIM(Denoising Diffusion Implicit Models)は、この2点を同時に外します。鍵は、学習をやり直さず、サンプラの定式化だけを変えることです。
DDIMはDDPMと同一の損失(ノイズ予測の二乗誤差)で学習したモデル ε_θ(x_t, t) をそのまま流用します。両者の差は推論時の漸化式だけです。だから既存のDDPMチェックポイントに対し、コードを数行差し替えるだけでDDIMサンプリングへ移行できます。
非マルコフ化:周辺分布を保ったまま逆向きを作り直す
DDPMの学習が依存しているのは、実は前向き過程そのものではなく、その周辺分布 q(x_t | x_0) = N(√(ᾱ_t)·x_0, (1-ᾱ_t)·I) だけです。損失は x_t = √(ᾱ_t)·x_0 + √(1-ᾱ_t)·ε から計算され、途中の x_1…x_{t-1} の遷移の中身には触れません。
ここがDDIMの突破口です。周辺分布 q(x_t | x_0) を保つ前向き過程は、マルコフ連鎖以外にも無数に存在する。DDIMはあえて非マルコフ(x_{t-1} が x_t と x_0 の両方に依存する)な過程族を設計します。周辺分布が同じなので、この族のどれを選んでも、すでに学習済みの ε_θ がそのまま最適なまま使えるのです。
その族の逆向き1ステップは、パラメータ σ_t(注入ノイズの大きさ)を持つ次の形になります。
x_{t-1} = √(ᾱ_{t-1})·x̂_0 + √(1-ᾱ_{t-1}-σ_t²)·ε_θ(x_t,t) + σ_t·z
└─ x_0 の推定へ ─┘ └── x_t 方向へ向き直す ──┘ └ 確率項 ┘
ここで x̂_0 は予測ノイズから復元した元データの推定です。
x̂_0 = ( x_t − √(1-ᾱ_t)·ε_θ(x_t,t) ) / √(ᾱ_t)
σ_t を大きく取るとDDPMに一致し、σ_t = 0 に取ると確率項 σ_t·z が消えて完全に決定論的になります。この σ_t = 0 の選択こそがDDIMの中核です。
| 観点 | DDPM | DDIM (σ_t = 0) |
|---|---|---|
| 前向き過程 | マルコフ連鎖 | 非マルコフ(x_0 も参照) |
| 学習 | ノイズ予測 MSE | 同一(再学習不要) |
| 逆向き1ステップ | 平均へ寄せ + ノイズ再注入 | x̂_0 推定 → x_t 方向へ再投影(注入なし) |
| 典型ステップ数 | 数百〜1000 | 20〜50 |
| 同じ初期ノイズ→出力 | 毎回ばらつく | 常に同一(決定論的) |
なぜ決定論化で大幅に刻めるのか
各ステップの揺らぎ σ_t·z を消すと何が嬉しいのか。確率的サンプリングでは、刻みを粗くすると注入ノイズの累積が誤差として効き、品質が急速に崩れます。決定論的経路では注入項が無いため、1ステップで進める「距離」を大きく取っても破綻しにくい。結果として、隣接するステップを飛ばしてサブシーケンス(例: 1000ステップ中の50点だけ)を辿れます。
DDIMの式は連続するステップでなくても成立する点が重要です。任意の部分列 t_1 > t_2 > … を選び、各区間で「いまの x_t からノイズを予測 → x̂_0 を推定 → 次の時刻 t_{i+1} の周辺分布へ再投影」を繰り返すだけ。ネットワーク評価回数は選んだ点数に等しくなり、ここで20〜50回まで削れます。
同じ初期ノイズが常に同じ画像へ写るので、生成が再現可能になります。さらに初期ノイズ空間で2点を球面線形補間(slerp)すると、出力画像も滑らかに補間され、潜在空間の意味的な編集が可能になります。前向きを決定論的に逆走すれば、実画像を初期ノイズへ「符号化」して再構成・編集する経路も開けます。これらはDDPMの確率的サンプリングでは得にくい性質です。
確率流ODEとしての定式化
DDIMの真の正体は、連続時間で見ると明確になります。拡散過程は連続極限で確率微分方程式(SDE)として書け、その周辺分布をすべての時刻で一致させる決定論的なODE——確率流ODE(probability flow ODE)——が存在します。スコア(対数密度の勾配、スコアベースモデル 参照)を s_θ とすると概形は次です。
dx/dt = f(x,t) − (1/2)·g(t)²·s_θ(x,t)
学習済みのノイズ予測は ε_θ = −√(1-ᾱ_t)·s_θ の関係でスコアに変換できるので、ネットワークはこのODEの右辺を与えます。DDIMの離散更新式は、この確率流ODEを適切な変数で表したときのオイラー法による1次離散化に厳密に一致することが示されています。つまり:
- DDPMサンプリング = 対応するSDEを解く(拡散項あり、確率的)
- DDIMサンプリング = 確率流ODEを解く(拡散項なし、決定論的)
両者は同じスコア場を共有し、同じ周辺分布を持ちます。違いは「軌道に揺らぎを足すか、滑らかな決定論的曲線を辿るか」だけです。
- DDIMは DDPM と同じ重みを使う。再学習は不要で、変わるのは推論の漸化式のみ。
- DDPM の前向きはマルコフだが、DDIM は非マルコフ過程族を使う。両者は周辺分布
q(x_t|x_0)が一致するため学習が共有できる。 σ_t = 0で決定論化。σ_tを DDPM 相当に取ると元の確率的サンプリングへ連続的に戻る。- DDIM 更新は確率流 ODE のオイラー離散化。高次ソルバでさらに少ステップ化できる。
より速いソルバへ:DDIMの先
サンプリングが「ODEを解く」問題だと分かれば、数値解法の蓄積がそのまま使えます。DDIMはオイラー法(1次)に相当するので、高次のソルバを当てればステップ数を更に減らせます。代表例は、拡散ODEの線形項を解析的に積分し非線形項のみ数値化する DPM-Solver や、複数の過去評価を使う多段法(PLMS/PNDM)です。これらは10〜20ステップ、場合により数ステップ級まで圧縮します。
ただし高速化には条件があります。決定論的ODEソルバは、ガイダンス強度が高い場合(Classifier-Free Guidance を強くかけた条件付き生成)や、極端な少ステップでは離散化誤差が目に見える破綻を生むことがあります。実務では「ステップ数 × ソルバ次数 × ガイダンス強度」を品質と速度のトレードオフとして調整します。
決定論的サンプラは多様性がやや低下しがちで、確率的サンプラの方がモード網羅性で勝る場合があります。極端な少ステップは細部や高周波成分を落とすこともあります。学習済みモデルを変えずにサンプラだけ差し替えられるのが拡散の強みなので、用途ごとに DDPM/DDIM/高次ソルバを使い分けるのが定石です。
まとめ:学習は一つ、サンプラは選べる
DDIMの本質は、**「壊し方を変えても周辺分布さえ同じなら学習は共有できる」**という一点に集約されます。前向きを非マルコフ化して逆向きを再設計し、注入ノイズを消すと、サンプリングは確率流ODEを解く決定論的な手続きになります。これにより数百〜1000ステップが数十ステップへ縮み、再現性と潜在補間という副産物まで得られます。
拡散モデルは「学習目標」と「サンプラ」が分離された設計です。一度学んだスコア場(スコアベースモデル)の上で、どの軌道をどう刻んで辿るかは後から自由に選べる——DDIMはその自由度を最初に明確化した一手であり、以後の高速ソルバ研究すべての出発点になっています。
AI/機械学習 Article
DDIMと拡散サンプリングの高速化を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
拡散モデル
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 5
導入後に効く点
決定論化により1ステップで進める距離が大きく取れ、数百〜1000ステップを20〜50ステップへ圧縮できる。同じ初期ノイズが同じ画像へ写るため再現性と潜在空間補間も得られる。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 5
判断チェックリスト
- 自社の用途が「拡散モデル / 生成AI」に近いか確認する。
- 強みである「DDIMはDDPMと同じ学習済みノイズ予測モデルをそのまま使い、サンプラだけを差し替える。非マルコフ過程として逆向き分布を再設計し、ノイズ再注入を消すことで決定論的にできる。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。