生成モデル

に公開

はじめに

概要

  • シラバス:E資格2024#2
  • 生成モデルはどのようなものを理解する

キーワード

識別モデル, 生成モデル, 拡散モデル, フローベース生成モデル

学習内容

識別モデル(Discriminative Model)

  • 与えられた入力がどのクラスに属するかを学習するモデル
  • P(y|x)(入力xが与えられたときの、出力yの確率)を学習
  • データの分布そのものは学ばず、「分類の境界」を学ぶ
  • 例:画像認識、物体検出

生成モデル(Generative Model)

  • データ自体を生成できるようにすることを目的とするモデル
  • P(x,y) またはP(x)(データとラベルの同時分布、またはデータの分布そのもの)を学習
  • データの構造やパターンを学び、新しいデータを「作り出す」ことができる
  • 例:画像生成、テキスト生成、異常検知

拡散モデル(Diffusion Models)

  • ノイズからデータを徐々に再構成する生成モデル
  • 学習は時間ステップに分けて行われる
  • 高品質な生成が可能
  • 推論(生成)はやや遅い(多ステップ必要)

流れ

  • 順方向過程(forward process):画像などのデータに少しずつガウスノイズを加えていき、最終的に完全なノイズにする(拡散)
  • 逆方向過程(reverse process):学習したモデルが、そのノイズから徐々にデータを復元する(生成)

フローベース生成モデル(Flow-based Models)

  • 可逆な変換(invertible mapping)を使って、ノイズとデータを相互に変換する生成モデル
  • 明示的な確率分布P(x)を扱える
  • 推論が高速(1ステップ)でできる
  • 可逆性を保つため、ネットワーク設計に制約がある

特徴

  • ノイズ空間(潜在空間)とデータ空間を可逆な関数で結びつける
  • 潜在変数(通常はガウス分布)をデータに変換するだけで画像などを生成できる

拡散モデルとフローベースモデルの比較

比較項目 拡散モデル フローベース生成モデル
生成方式 ノイズ→徐々に復元(多ステップ) 潜在変数→可逆関数(1ステップ)
学習の難易度 比較的安定 変換関数が制限されるため設計が難しい
推論速度 遅い(多ステップ) 速い(1ステップ)
表現力・品質 非常に高い(特に画像) やや制限される(ただし高速)
確率密度の計算 できない(明示的でない) できる(明示的な P(x) を持つ)
有名モデル例 Stable Diffusion, Imagen, DDPM Glow, RealNVP, NICE
GitHubで編集を提案

Discussion