目次
砂浜に描いた絵が波に消されていく——これがDiffusion Model(拡散モデル)の「順方向拡散」のイメージだ。そして、その消えていく過程を学習した後で、純粋なランダムノイズから逆方向に辿ることで画像を「復元」する——それが「逆拡散」であり、テキストから画像を生成する現代の画像生成AIの核心的な原理である。
なぜノイズから始めるのか
Diffusion Modelは一見奇妙な発想から出発する。「ランダムなノイズに少しずつノイズを加え、最終的に完全なガウスノイズにする過程を学習する。そして、その逆の過程(ノイズを徐々に取り除く)を学習すれば、ランダムなノイズから意味ある画像を生成できる」というものだ。
この発想の背景には、確率論・統計力学・スコアマッチングといった数学的基盤がある。
正方向拡散:画像をノイズに壊す過程
Diffusion Modelの学習は、まず「正方向拡散(Forward Diffusion)」の定義から始まる。
元の画像 x₀ から出発し、T ステップかけて徐々にガウスノイズを加えていく。各ステップで少量のノイズを加えるため、ステップ数 T は通常1,000〜4,000程度だ。最終的に x_T は元の画像の情報をほぼ失い、標準正規分布に近いランダムノイズになる。
数式で表すと:
q(x_t | x_{t-1}) = N(x_t; √(1-β_t) x_{t-1}, β_t I)
β_t は各ステップのノイズスケジュール(ノイズ量)を制御するパラメータだ。小さなβ_t を設定することで、1ステップごとの変化を小さく抑えながら徐々に画像を壊していく。
この正方向拡散は訓練データから直接計算できるため、学習は不要だ。重要なのは、任意のステップ t における x_t を、元画像 x₀ から直接計算できることだ(再パラメータ化のトリック):
x_t = √(ᾱ_t) x₀ + √(1-ᾱ_t) ε
ここで ε は標準正規分布からのノイズ、ᾱ_t は累積ノイズスケジュールだ。
逆拡散:ノイズから画像を生成する
Diffusion Modelが学習するのは、この正方向拡散の逆過程だ。
ランダムノイズ x_T から出発し、1ステップずつノイズを除去していくことで、最終的に x₀ を生成する。各ステップで「このノイズ画像から、どの方向にどれだけ動かせばよいか」を予測する。
この逆拡散の各ステップを予測するのがニューラルネットワークの役割だ。より具体的には、ネットワークは x_t と ステップ数 t を入力として、加えられたノイズ ε を予測する(ε-prediction)。
学習時の損失関数は単純だ:
L = E[||ε - ε_θ(x_t, t)||²]
つまり、実際に加えたノイズと、ネットワークが予測したノイズの差の二乗平均誤差を最小化する。このシンプルな目標関数により、GANのような不安定な敵対的学習を避けられる。
U-Net:ノイズ除去の担い手
逆拡散を担うニューラルネットワークとして広く使われるのがU-Netだ。もともとは医療画像のセグメンテーション用に開発されたアーキテクチャだが、ノイズ除去タスクに非常に適していることが判明した。
U-Netの特徴はその対称的な構造だ:
エンコーダ(ダウンサンプリング): 入力画像の解像度を段階的に下げながら、高レベルの特徴を抽出する。
ボトルネック: 最も圧縮された特徴表現。
デコーダ(アップサンプリング): 解像度を段階的に元に戻す。重要なのはスキップ接続で、エンコーダの各レベルからデコーダの対応レベルへ直接接続がある。
このスキップ接続により、細部の空間情報を保持しながらも高レベルの特徴を活用できる。ノイズ除去タスクでは、「どこにノイズがあるか」という局所的な情報と「この画像は何か」という大局的な情報の両方が必要なため、U-Netの構造が理想的にマッチする。
現代のDiffusion ModelではTransformerブロックをU-Netに組み込んだ構造も採用され、長距離依存関係をより効果的に捉えられるようになった。
テキスト条件付けの仕組み:CLIPとの統合
「青い海と夕日を描いてください」というテキストから画像を生成するには、テキスト情報を拡散過程に組み込む必要がある。ここで重要な役割を果たすのがCLIP(Contrastive Language-Image Pre-training)だ。
CLIPは大量の(テキスト、画像)ペアを使って、テキストと画像を同じベクトル空間にマッピングするよう学習したモデルだ。「猫が寝ている」というテキストのベクトルは、猫が寝ている画像のベクトルと近くなるよう訓練されている。
Diffusion Modelでのテキスト条件付けは以下のように行われる:
- テキストプロンプトをCLIPのテキストエンコーダでベクトルに変換
- このテキストベクトルをU-NetのAttentionメカニズムに入力
- Attentionがノイズ除去の各ステップでテキストの情報を参照
クロスアテンション(Cross-Attention)を使って、各ノイズ除去ステップでテキストベクトルを条件として取り込む。このメカニズムにより「雨」という単語に対して、雨に関連する視覚的特徴を生成に反映できる。
潜在拡散モデル:効率化のブレークスルー
標準的なDiffusion Modelはピクセル空間で拡散過程を実行するため、計算コストが非常に高い。1024×1024の画像を直接扱うと、必要なメモリと計算量は膨大になる。
この問題を解決したのが潜在拡散モデル(Latent Diffusion Model、LDM)だ。
LDMでは、まずオートエンコーダを使って画像を圧縮された潜在空間(Latent Space)にエンコードする。典型的には512×512の画像が64×64の潜在表現に圧縮される。拡散過程はこの圧縮された潜在空間で実行し、生成後にデコーダで元のピクセル空間に戻す。
計算効率は飛躍的に向上する——潜在空間でのサイズはピクセル空間の1/64以下になる場合がある。この手法を採用したのが、多くの人に知られているStable Diffusionだ。
DDPM と DDIM:サンプリング速度の改善
初期のDDPM(Denoising Diffusion Probabilistic Models)では1,000ステップの逆拡散が必要で、画像1枚の生成に数分かかった。
DDIM(Denoising Diffusion Implicit Models)はサンプリングプロセスを改良し、20〜50ステップでも十分な品質の画像を生成できるようにした。DDIMは逆拡散を確率的(ランダム)から確定的(決定論的)に変更することで、少ないステップで同等の品質を実現した。
さらにCFG(Classifier-Free Guidance)という技術により、テキスト条件へのコンプライアンスと生成多様性のトレードオフを制御できるようになった。CFGスケールを高くすると、プロンプトに忠実な画像が生成される一方、多様性は下がる。
GANとDiffusion Modelの比較
| 観点 | GAN | Diffusion Model |
|---|---|---|
| 学習安定性 | 不安定(モード崩壊リスク) | 安定 |
| 生成多様性 | 低い(モード崩壊) | 高い |
| 生成速度 | 高速(1回のフォワードパス) | 低速(多ステップ) |
| 出力品質 | 高品質 | 非常に高品質 |
| テキスト条件付け | 困難 | 容易 |
まとめ
Diffusion Modelは「ノイズを加えて壊す過程の逆を学ぶ」という逆説的な原理で動作する。正方向拡散で画像を徐々にノイズに変換し、逆拡散でノイズを取り除いていくU-Netを学習する。CLIPとのクロスアテンション統合によりテキスト条件付けを実現し、潜在拡散モデルにより実用的な計算効率を達成した。
GANのような敵対的学習の不安定性を避け、シンプルな損失関数で高品質な生成が可能なDiffusion Modelは、現代の画像生成AIのデファクトスタンダードとなった。その原理を理解することは、生成AI技術の本質的な仕組みを把握する上で不可欠だ。
免責事項 — 掲載情報は執筆時点のものです。料金・機能は変更される場合があります。最新情報は各公式サイトをご確認ください。