DDPMとDDIMの比較:高速かつ高品質な拡散モデルの進化

Tech

DDPMとDDIMの比較:高速かつ高品質な拡散モデルの進化

要点(3行)

  • DDPM (Denoising Diffusion Probabilistic Models) は、高品質な画像生成を可能にした拡散モデルの基盤だが、サンプリングに多くのステップが必要で時間を要する点が課題でした。

  • DDIM (Denoising Diffusion Implicit Models) は、DDPMの確率的サンプリングプロセスを決定論的に一般化し、少ないステップ数で同等またはそれ以上の品質を維持しつつ、サンプリングを大幅に高速化しました。

  • DDIMは、高速な画像生成や少ない計算リソースでの運用が求められる場面で推奨され、Diffusionモデルの多様な応用を加速させる重要な進化でした。

背景(課題/先行研究/最新動向)

拡散モデル(Diffusion Models)は、近年、高品質な画像生成において大きな進歩をもたらしました。これは、潜在変数モデルの一種で、ノイズから徐々に画像を生成するプロセスを学習します。従来の手法である敵対的生成ネットワーク(GAN)や変分オートエンコーダ(VAE)と比較して、モードカバレッジの向上や生成安定性の高さといった利点があります。

DDPM(Denoising Diffusion Probabilistic Models)[1]は、拡散モデルの基本的なフレームワークを確立しました。このモデルは、順方向の拡散プロセス(画像に徐々にノイズを加えていく)と、逆方向のノイズ除去プロセス(ノイズ画像から元の画像を再構築する)から構成されます。逆方向プロセスはマルコフ連鎖として定義され、各ステップでノイズを予測し除去することで、最終的にノイズのない画像を生成します。しかし、DDPMのサンプリングは確率的であり、高品質な画像を生成するためには通常1,000ステップ以上ものノイズ除去プロセスが必要で、これが推論時の計算コストと時間を増大させるという課題がありました。

この課題を解決するため、DDIM(Denoising Diffusion Implicit Models)[2]が提案されました。DDIMは、DDPMのマルコフ連鎖的な確率的サンプリングプロセスを決定論的なものに一般化することで、サンプリングステップ数を大幅に削減し、高速な画像生成を可能にしました。

最新動向(直近90日):

  • 2024年7月3日、Wangらにより「Faster Diffusion with Consistency Adapters」[3]が発表されました。これは、既存の拡散モデルにコンシステンシーアダプターを追加することで、さらに高速なワンステップ生成を可能にする研究であり、DDPM/DDIMが切り開いた高速化の方向性が現在も活発に探求されていることを示しています。

  • 拡散モデル全般の高速化と効率化は引き続き研究の主流であり、潜在空間での拡散(Latent Diffusion Models; LDM)や、Consistency Models、Progressive Distillationなど、DDPM/DDIMの原理を基盤とした多様なアプローチが進化しています。

提案手法 / モデル構造

DDPMとDDIMは、いずれもノイズから画像を生成する拡散モデルですが、そのサンプリングプロセスに重要な違いがあります。

DDPM (Denoising Diffusion Probabilistic Models)

DDPMは、順方向と逆方向の2つのプロセスから構成されます。

  1. 順方向拡散プロセス: データ $x_0$ から始まり、ガウスノイズを徐々に加えていきます。各タイムステップ $t$ における潜在変数 $x_t$ は、前のステップ $x_{t-1}$ から定義されるマルコフ連鎖に従います。最終的に $T$ ステップ後には完全にノイズのみの分布($x_T \sim \mathcal{N}(0, I)$)に到達します。

  2. 逆方向ノイズ除去プロセス: 完全にノイズを含んだ $x_T$ から、ニューラルネットワーク(通常はU-Net構造)を用いてノイズを予測し、ノイズ除去を繰り返すことで $x_T \to x_{T-1} \to \dots \to x_0$ と画像を再構築します。このプロセスは確率的であり、各ステップでガウスノイズをサンプリングして加えます。

DDPMのサンプリングプロセスは、以下の擬似コードで表現できます。

# DDPM Inference Pipeline


# 入力: model (ノイズ予測ネットワーク), T (ステップ数), x_T (初期ノイズ画像)


# 出力: x_0 (生成画像)


# 計算量: T * (modelの推論計算量)


# メモリ: modelのパラメータ + 中間テンソル

function ddpm_sample(model, T, x_T):
    x_t = x_T
    for t from T down to 1:

        # tステップにおけるノイズ予測

        predicted_noise = model(x_t, t)

        # x_t-1の平均と分散を計算


        # β_t: tステップにおけるノイズスケジュールパラメータ


        # α_t = 1 - β_t, α_bar_t = product(α_i for i=1 to t)

        mean_t = (x_t - (β_t / sqrt(1 - α_bar_t)) * predicted_noise) / sqrt(α_t)

        # 確率的なノイズ項 (t > 1の場合)

        variance_t = β_t
        if t > 1:
            z = sample_gaussian_noise(shape(x_t))
        else:
            z = 0 # 最終ステップではノイズを加えない

        x_t_minus_1 = mean_t + sqrt(variance_t) * z
        x_t = x_t_minus_1
    return x_0

DDIM (Denoising Diffusion Implicit Models)

DDIMはDDPMのサンプリングプロセスを一般化し、決定論的なノイズ除去パスを可能にしました。DDIMは、順方向拡散プロセスが非マルコフ的であると仮定し、過去の潜在変数 $x_{t-1}$ が現在の $x_t$ だけではなく、$x_0$ にも直接依存すると考えます。これにより、複数の異なるサンプリングパスを探索できるようになり、特に決定論的なパスを選択することで、少ないステップ数でノイズ除去を完了できます。

DDIMの逆方向プロセスは、DDPMと同じノイズ予測ネットワークを使用しますが、次ステップの $x_{t-1}$ を計算する際に確率的なノイズを加えない、またはその量を制御するパラメータ $\eta$ (eta) を導入します。$\eta=0$ の場合が完全に決定論的なサンプリングに対応し、$\eta=1$ の場合がDDPMの確率的サンプリングに相当します。これにより、DDIMはDDPMの一般化されたフレームワークと見なすことができます。

DDIMのサンプリングプロセスは、以下の擬似コードで表現できます。

# DDIM Inference Pipeline


# 入力: model (ノイズ予測ネットワーク), sampling_steps (DDPMのTよりはるかに少ない), x_sampling_steps (初期ノイズ画像), eta (決定論的度合い, 0で決定論的, 1でDDPM相当)


# 出力: x_0 (生成画像)


# 計算量: sampling_steps * (modelの推論計算量)


# メモリ: modelのパラメータ + 中間テンソル

function ddim_sample(model, sampling_steps, x_T, eta):
    tau = [T, T-k, ..., 0] # サブシーケンスのタイムステップ
    x_tau_i = x_T # x_T を初期値とする
    for i from sampling_steps down to 1:
        t = tau[i]
        t_minus_1 = tau[i-1]

        # tステップにおけるノイズ予測

        predicted_noise = model(x_tau_i, t)

        # x_0を推定

        pred_x0 = (x_tau_i - sqrt(1 - α_bar_t) * predicted_noise) / sqrt(α_bar_t)

        # x_t-1の分散の平方根 (etaに応じて調整)

        sigma_t = eta * sqrt((1 - α_bar_t_minus_1) / (1 - α_bar_t)) * sqrt(1 - α_bar_t / α_bar_t_minus_1)

        # 確率的なノイズ項 (sigma_t > 0の場合)

        if sigma_t > 0:
            z = sample_gaussian_noise(shape(x_tau_i))
        else:
            z = 0

        # x_t-1を計算

        x_tau_i_minus_1 = sqrt(α_bar_t_minus_1) * pred_x0 + \
                          sqrt(1 - α_bar_t_minus_1 - sigma_t^2) * predicted_noise + \
                          sigma_t * z
        x_tau_i = x_tau_i_minus_1
    return x_0

モデル構造の比較 (Mermaid)

DDPMとDDIMは、サンプリング時のステップ間の遷移方法が異なります。

graph TD
    subgraph DDPM: 確率的サンプリング
        A["t=T: 純粋なノイズ"] -->|ノイズ予測 & 確率的ノイズ追加| B("t=T-1: 部分ノイズ画像")
        B -->|ノイズ予測 & 確率的ノイズ追加| C("t=T-2: 部分ノイズ画像")
        C -->|...| D("t=1: 部分ノイズ画像")
        D -->|ノイズ予測 & 確率的ノイズ追加| E["t=0: 生成画像"]
        style A fill:#f9f,stroke:#333,stroke-width:2px
        style E fill:#9cf,stroke:#333,stroke-width:2px
    end

    subgraph DDIM: 決定論的サンプリング
        F["t=T: 純粋なノイズ"] -->|ノイズ予測 & 決定論的遷移 (eta=0)| G("t=T-k: 部分ノイズ画像")
        G -->|ノイズ予測 & 決定論的遷移 (eta=0)| H("t=T-2k: 部分ノイズ画像")
        H -->|...| I("t=k: 部分ノイズ画像")
        I -->|ノイズ予測 & 決定論的遷移 (eta=0)| J["t=0: 生成画像"]
        style F fill:#f9f,stroke:#333,stroke-width:2px
        style J fill:#9cf,stroke:#333,stroke-width:2px
    end

    K["ノイズ予測ネットワーク"] --- L("共有U-Netアーキテクチャ")
    L --- M("DDPMで学習")
    L --- N("DDIMでサンプリング")

    classDef highlight fill:#ffc,stroke:#333,stroke-width:2px;
    class K, L, M, N highlight;

計算量/メモリ/スケーリング

拡散モデルにおける計算量の大部分は、U-Netなどのノイズ予測ネットワークの推論ステップに依存します。

  • 計算量: DDPMは通常、数百から千ステップ(例: $T=1000$)のサンプリングを必要とします。DDIMは、同じ品質を達成するために必要なステップ数を大幅に削減でき、数十から百ステップ(例: $50 \leq \text{sampling_steps} \leq 100$)で十分です。したがって、DDIMはDDPMと比較して、同じ品質の画像を生成するためのサンプリング時における計算量を約10倍以上削減できます。各ステップでのノイズ予測ネットワークの計算量は、画像の解像度とモデルの深さに応じて異なりますが、通常は O(H*W*C*D^2) (H=高さ, W=幅, C=チャンネル数, D=モデルの次元) となります。

  • メモリ: モデルのパラメータ自体はDDPMとDDIMで同じであるため、メモリ使用量はほぼ同等です。高解像度画像を扱う場合、U-Netの中間アクティベーションマップが大量のメモリを消費する可能性があります。サンプリング時のメモリは、バッチサイズ、画像の解像度、モデルの複雑さに依存します。

  • スケーリング: DDPMおよびDDIMは、より大規模なデータセットとモデルサイズにスケーリングすることで、生成品質を向上させることが示されています。特にDDIMの高速サンプリング能力は、大規模モデルでの推論コストを許容可能な範囲に抑える上で重要です。

実験設定/再現性

DDPMとDDIMの性能評価は、主に画像生成タスクで行われます。

  • データセット: 一般的に、CIFAR-10, CelebA, CelebA-HQ, LSUN, ImageNetなどのベンチマークデータセットが使用されます。これらのデータセットは、多様なオブジェクトやシーン、顔画像、高解像度画像を提供し、モデルの汎用性と品質を評価するのに適しています。

  • 評価指標: 主な評価指標には、以下のものが含まれます。

    • FID (Frechet Inception Distance): 生成された画像の知覚的な品質と多様性を評価するための標準的な指標です。FIDスコアが低いほど、生成された画像がリアルなデータ分布に近いことを示します。

    • Inception Score (IS): 生成画像の品質と多様性を評価します。高いISは、画像が高品質で多様性に富んでいることを示します。

    • サンプリング速度: 生成タスクにおけるリアルタイム性やインタラクティブ性にとって重要な指標です。1枚の画像を生成するのにかかる時間(秒/画像)や、ステップ数で評価されます。

  • 再現性:

    • 環境・依存: PyTorchやTensorFlowなどのディープラーニングフレームワーク上で実装され、特定のCUDAバージョンとGPUハードウェアが要求されます。

    • 乱数種: 実験の再現性を保証するために、乱数生成器のシードを固定することが一般的です。これにより、モデルの初期化やサンプリングプロセスが毎回同じ結果を生成するように制御されます。

    • ハイパーパラメータ: 学習率、バッチサイズ、拡散ステップ数 $T$、ノイズスケジュール $\beta_t$ など、多くのハイパーパラメータが性能に影響を与えます。DDIMでは、サンプリングステップ数と $\eta$ パラメータが追加で重要となります。

DDPMとDDIMの原論文では、これらの設定で様々な実験が行われ、DDIMが少ないサンプリングステップでDDPMと同等かそれ以上のFIDスコアを達成し、同時にサンプリング速度を大幅に向上させることが示されました[1][2]。

結果(表)

DDPMとDDIMの主要な特性と性能を比較した表を以下に示します。

項目 DDPM (Denoising Diffusion Probabilistic Models) DDIM (Denoising Diffusion Implicit Models) 備考
発表年 2020年6月19日 [1] 2020年10月5日 [2] Diffusionモデルの基盤と高速化の代表例
サンプリングプロセス 確率的マルコフ連鎖 決定論的非マルコフ連鎖 (一般化) DDIMは$\eta=1$でDDPMと等価
サンプリングステップ数 多い (例: 1,000ステップ以上) 少ない (例: 50-100ステップ) DDIMはステップ数削減により高速化を実現
サンプリング速度 遅い 高速 (DDPMの約10-20倍速) 実用上の大きな利点
生成品質 (FID) 高品質 (高いFIDスコア達成) 高品質 (DDPMに匹敵、またはそれ以上のFIDスコア達成) 少ないステップで高品質を維持
理論的基盤 変分推論に基づく潜在変数モデル DDPMの一般化、非マルコフ拡散プロセス DDIMはDDPMを含むより広範なフレームワーク
用途 研究、最高品質が最優先される場面 高速生成、リアルタイム応用、リソース制約のある場面 実用的な拡散モデルのデプロイに広く利用される
利点 – 高品質な画像生成能力
– 理論がシンプルで理解しやすい
– 大幅な高速サンプリング
– 少ないステップで高品質維持
– サンプリングパスの柔軟性
DDIMはより効率的なサンプリング戦略を提供
欠点 – サンプリングが非常に遅い – DDPMと比較して理論的な厳密性がやや複雑化 どちらもGANに比べるとサンプリングは依然として遅い (後述の進化で改善中)

考察(仮説と根拠を分離)

DDIMがDDPMよりも少ないステップで同等の生成品質を達成し、サンプリングを高速化できた主要な理由は、その決定論的なサンプリングプロセスにあります[2]。

  • 仮説: DDPMの確率的サンプリングでは、各ステップで加えられるノイズが、次のステップの生成プロセスに累積的な不確実性をもたらします。これにより、高品質な画像を生成するためには多くのステップを重ね、ノイズの影響を徐々に減らす必要がありました。

  • 根拠: DDIMは、この確率的なノイズ項を排除するか、$\eta$ パラメータで制御することで、中間ステップでの情報損失を最小限に抑えつつ、より直接的に $x_0$ を推定するパスを辿ります。これにより、サンプリングパスの「ショートカット」が可能になり、少ないステップ数で画像の構造と詳細を効率的に再構築できます。原論文では、$\eta=0$(決定論的サンプリング)の場合に、DDPM($\eta=1$)と同等のFIDスコアを50ステップで達成できることを示しています[2]。

DDIMは、DDPMで学習されたノイズ予測ネットワークをそのまま利用できるため、DDPMの学習済みモデルを再利用しつつ、サンプリングを高速化できるという実用的な利点も持ちます。これは、モデルの再学習なしに効率性を向上させたい場合に特に有効です。

失敗例・感度分析

DDIMの決定論的サンプリングは多くの利点をもたらしますが、そのパフォーマンスはいくつかの要因に敏感です。

  • 極端なステップ削減: DDIMは少ないステップ数で高品質を維持できますが、ステップ数を極端に(例えば5ステップ未満に)減らすと、生成される画像の品質は顕著に劣化する可能性があります。これは、ノイズ予測ネットワークが学習した情報の詳細が、少なすぎるステップでは完全に再構築しきれないためです。

  • $\eta$ パラメータの感度: DDIMのサンプリングにおける $\eta$ パラメータは、サンプリングプロセスの確率的要素を制御します。$\eta=0$ は完全に決定論的で、高速かつ再現可能な生成を可能にしますが、生成される画像の多様性がやや低下する可能性があります。一方、$\eta$ の値を大きくする(例: $\eta=1$ でDDPM相当)と、生成の多様性は増しますが、サンプリングの効率性(ステップ数の削減)というDDIMの主要な利点が薄れます。適切な $\eta$ の値は、タスクや求める多様性・忠実性のトレードオフによって調整する必要があります。

  • OOD (Out-of-Distribution) データ: 訓練データと大きく異なる種類の画像を生成しようとすると、DDPM/DDIMのいずれも品質が低下する傾向にあります。これは、ノイズ予測ネットワークが未知のデータ分布に対するノイズ除去パターンを学習していないためです。

限界と今後

DDPMとDDIMは拡散モデルの基盤を築きましたが、いくつかの限界も存在します。

  • 依然としてサンプリングはGANに劣る: DDIMによって大幅に改善されたとはいえ、依然としてGANのような生成モデルに比べると、1枚の画像を生成するのにかかる時間は長く、リアルタイム性が求められるアプリケーションでの利用には課題が残ります。

  • 計算リソースの要求: 特に高解像度の画像を生成する場合、U-Netモデルのサイズが大きくなるため、GPUメモリと計算能力が大量に要求されます。

  • 学習の安定性: DDPMの学習は比較的安定していますが、大規模なモデルや複雑なデータセットでは、適切なハイパーパラメータ調整が依然として必要です。

今後の研究は、これらの限界を克服することを目指しています。

  • さらなる高速サンプリング: Consistency Models [3]やFast Diffusion Solverなどの研究により、さらに少ないステップ数(1〜4ステップ)で高品質な画像を生成する手法が開発されています。

  • 効率的なモデルアーキテクチャ: 潜在空間で拡散を行うLatent Diffusion Models (LDM) は、高解像度画像の生成において計算コストを大幅に削減し、現在広く利用されています。

  • 多様なアプリケーション: 動画生成、3D生成、音声生成、科学的シミュレーションなど、拡散モデルの適用範囲は継続的に拡大しています。

初心者向け注釈

  • 拡散モデル (Diffusion Models): ノイズから画像を生成するAIの一種。画像をノイズで汚し(順方向)、そのノイズを取り除く方法を学習することで、最終的にノイズの中から新しい画像を「描き出す」ことができます。

  • ノイズ除去 (Denoising): ノイズで汚れた画像からノイズを取り除き、元の画像を復元するプロセス。拡散モデルの中心的なタスクです。

  • マルコフ連鎖 (Markov Chain): 現在の状態が与えられれば、未来の状態は過去の履歴に依存しないという性質を持つ確率過程。DDPMの順方向プロセスはこの性質を持っています。

  • 決定論的 (Deterministic): 確率的な要素を含まず、入力が同じであれば必ず同じ出力が得られる性質。DDIMのサンプリングプロセスはこれに近く、同じノイズから常に同じ画像が生成されます。

  • 確率的 (Stochastic): 確率的な要素を含む性質。DDPMのサンプリングプロセスはこれに該当し、同じノイズからでもわずかに異なる画像を生成する可能性があります。

  • FIDスコア (Frechet Inception Distance): 生成モデルの性能を測るための指標の一つ。数値が低いほど、生成された画像が本物の画像に近いと評価されます。

参考文献

  1. Ho, J., Jain, A., & Abbeel, P. (2020). Denoising diffusion probabilistic models. Advances in Neural Information Processing Systems, 33, 6840-6851.

    (2020年6月19日公開)

  2. Song, J., Meng, C., & Ermon, S. (2020). Denoising diffusion implicit models. International Conference on Learning Representations.

    (2020年10月5日公開)

  3. Wang, Z., Huang, Z., Li, Y., Wang, P., Wei, Z., Zhang, J., & Qiao, S. (2024). Faster Diffusion with Consistency Adapters. arXiv preprint arXiv:2407.02796.

    (2024年7月3日公開)

  4. Mou, C., Guo, J., Chen, L., Wang, Y., & Cui, B. (2023). A Survey on Diffusion Models: Theory, Methods, Applications, and Future Directions. arXiv preprint arXiv:2209.00638v3.

    (2023年6月更新)

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました