1. 拡散モデルの概要
1.1 生成モデルの種類
| モデル |
原理 |
特徴 |
| GAN |
敵対的学習 |
高速、モード崩壊 |
| VAE |
変分推論 |
潜在空間、ぼやけ |
| Flow |
可逆変換 |
正確な尤度 |
| 拡散 |
ノイズ除去 |
高品質、低速 |
1.2 拡散モデルの基本アイデア
- 拡散過程(Forward):データに少しずつノイズを加え、純粋なノイズに変換
- 逆拡散過程(Reverse):ノイズから少しずつノイズを除去し、データを復元
- ニューラルネットワークで逆拡散を学習
1.3 なぜ拡散モデルか
- 品質:GANを超える画像品質
- 多様性:モード崩壊なし
- 安定性:訓練が安定
- 制御性:条件付け生成に適する
2. DDPM
2.1 概要
DDPM(Denoising Diffusion Probabilistic Models)(Ho et al. 2020):
拡散モデルの実用化を実現した画期的論文。
2.2 拡散過程(Forward Process)
データx₀に段階的にガウスノイズを加える:
q(xₜ | xₜ₋₁) = N(xₜ; √(1-βₜ)xₜ₋₁, βₜI)
βₜ: ノイズスケジュール(時刻tでのノイズ量)
T: 総ステップ数(例:1000)
任意の時刻tに直接ジャンプ可能:
q(xₜ | x₀) = N(xₜ; √ᾱₜ x₀, (1-ᾱₜ)I)
ᾱₜ = Π(1-βₛ) (s=1からt)
2.3 逆拡散過程(Reverse Process)
ノイズから段階的にデノイズ:
p_θ(xₜ₋₁ | xₜ) = N(xₜ₋₁; μ_θ(xₜ, t), Σ_θ(xₜ, t))
μ_θ: ニューラルネットワークが予測する平均
Σ_θ: 分散(固定または学習)
2.4 ノイズ予測
実際には平均μではなく、加えられたノイズεを予測:
損失関数:
L = E[||ε - ε_θ(xₜ, t)||²]
ε: 実際に加えたノイズ
ε_θ: ネットワークが予測したノイズ
2.5 サンプリング
1. x_T ~ N(0, I) (純粋なノイズからスタート)
2. for t = T, T-1, ..., 1:
予測ノイズ ε_θ(xₜ, t) を計算
xₜ₋₁ = (xₜ - ノイズ項) / スケール + ランダムノイズ
3. return x₀
2.6 改良:DDIM
DDIM(Song et al. 2021):決定論的サンプリングで高速化。
- 1000ステップ → 50-100ステップ
- 同じ潜在変数から同じ画像を生成
3. 条件付け
3.1 条件付き生成
クラスラベル、テキスト、画像などで生成を制御。
3.2 Classifier Guidance
Dhariwal & Nichol (2021):
- 別途訓練した分類器の勾配を使用
- サンプリング時にクラス方向に誘導
- 追加の分類器が必要
3.3 Classifier-Free Guidance (CFG)
Ho & Salimans (2022):最も広く使われる手法。
訓練時:
- ランダムに条件cをドロップ(空条件∅に置換)
- 条件付き/無条件の両方を学習
サンプリング時:
ε̃ = ε_θ(xₜ, ∅) + w × (ε_θ(xₜ, c) - ε_θ(xₜ, ∅))
w: ガイダンススケール(通常3-15)
w=1: 通常の条件付き生成
w>1: 条件への準拠を強化
3.4 テキスト条件付け
- CLIP:テキストエンコーダ
- T5:より大きなテキストエンコーダ
- Cross-Attention:UNetにテキスト特徴を注入
4. Latent Diffusion
4.1 概要
LDM(Latent Diffusion Models)(Rombach et al. 2022):
ピクセル空間ではなく潜在空間で拡散を行う。
4.2 アーキテクチャ
画像空間 ← VAE Decoder ← 潜在空間 → 拡散過程
1. VAE Encoder: 画像 → 潜在表現 z(8倍ダウンサンプル)
2. 拡散モデル: 潜在空間で動作
3. VAE Decoder: 潜在表現 → 画像
4.3 利点
- 計算効率:512×512 → 64×64の潜在空間で処理
- メモリ効率:ピクセル空間の1/64
- 品質維持:VAEで情報を保持
4.4 UNet構造
拡散モデルのバックボーン:
- ResNetブロック
- Self-Attentionブロック
- Cross-Attention(テキスト条件付け)
- 時刻埋め込み
5. Stable Diffusion
5.1 概要
Stability AI(2022):LDMのオープンソース実装。
- LAION-5Bで訓練
- 商用利用可能なライセンス
- コミュニティで広く普及
5.2 バージョン
| バージョン |
特徴 |
| SD 1.5 |
基本版、広く使用 |
| SD 2.x |
OpenCLIP、768解像度 |
| SDXL |
大規模化、1024解像度 |
| SD 3 |
MMDiTアーキテクチャ |
5.3 カスタマイズ技術
- LoRA:低ランク適応、スタイル学習
- DreamBooth:特定の対象を学習
- Textual Inversion:新しい概念を埋め込み
- ControlNet:構造的制御(ポーズ、エッジ等)
5.4 ControlNet
Zhang et al. (2023):追加の構造条件で生成を制御。
- Canny Edge(輪郭)
- OpenPose(人体ポーズ)
- Depth Map(深度)
- Segmentation(領域分割)
6. DALL-E系
6.1 DALL-E (2021)
OpenAI:自己回帰Transformerによる画像生成。
- dVAEで画像をトークン化
- GPT的なTransformerで生成
- CLIPでリランキング
6.2 DALL-E 2 (2022)
拡散モデルベース:
- CLIP画像埋め込みから拡散
- uCLIP(unCLIP)アーキテクチャ
- 画質の大幅向上
6.3 DALL-E 3 (2023)
テキスト忠実度の革新:
- キャプション改善による訓練データ品質向上
- GPT-4とのネイティブ統合
- プロンプト理解力の大幅改善
6.4 Midjourney
独立した商用サービス:
- 芸術的なスタイルに強い
- v5、v6で継続的改善
- Discordベースのインターフェース
6.5 比較
| モデル |
強み |
| DALL-E 3 |
テキスト忠実度、GPT統合 |
| Midjourney |
芸術性、美的品質 |
| Stable Diffusion |
オープン、カスタマイズ |
| Imagen |
フォトリアリズム |
7. 動画生成
7.1 Sora
OpenAI(2024):テキストから長尺動画生成。
- 最大1分の高品質動画
- 物理的一貫性の理解
- Diffusion Transformerアーキテクチャ
7.2 技術的課題
- 時間的一貫性:フレーム間の整合性
- 計算コスト:画像の数十倍
- データ:高品質動画データの不足
7.3 その他の動画モデル
| モデル |
開発元 |
特徴 |
| Runway Gen-2/3 |
Runway |
商用利用可能 |
| Pika |
Pika Labs |
短い動画生成 |
| Kling |
Kuaishou |
長尺対応 |
| Veo |
Google |
高品質、制限公開 |
7.4 今後の展望
- 長尺・高解像度の両立
- 編集・制御機能の強化
- リアルタイム生成
8. 参考文献
基盤論文
- Ho et al. (2020). "Denoising Diffusion Probabilistic Models" NeurIPS(DDPM)
- Song et al. (2021). "Denoising Diffusion Implicit Models" ICLR(DDIM)
- Dhariwal & Nichol (2021). "Diffusion Models Beat GANs on Image Synthesis" NeurIPS
条件付け・実用化
- Ho & Salimans (2022). "Classifier-Free Diffusion Guidance" NeurIPS Workshop
- Rombach et al. (2022). "High-Resolution Image Synthesis with Latent Diffusion Models" CVPR(Stable Diffusion)
- Zhang et al. (2023). "Adding Conditional Control to Text-to-Image Diffusion Models" ICCV(ControlNet)
商用モデル
- Ramesh et al. (2022). "Hierarchical Text-Conditional Image Generation with CLIP Latents"(DALL-E 2)
- Betker et al. (2023). "Improving Image Generation with Better Captions"(DALL-E 3)