VAEとGAN — 潜在空間と敵対的学習
データを「見分ける」のではなく「作り出す」——それが生成モデルです。その二大源流である VAE(確率的に圧縮して復元する)と GAN(偽造者と鑑定士の攻防で磨く)を、潜在空間をドラッグしながら・分布の攻防を眺めながら理解します。
1. 「見分ける」から「作る」へ — 生成モデルとは
これまで学んだ分類器は、入力 x にラベル y を割り当てる判別モデル p(y|x) でした。生成モデルはその逆向きで、データそのものの分布 p(x) を丸ごと学ぶモデルです。分布が手に入れば、そこからサンプルする=本物そっくりの新しいデータを作れることになります。
実用上の共通戦略はこうです。ガウス分布のような簡単な分布からサンプルしたベクトル z を、ニューラルネットで複雑なデータ(画像・音声…)に変換する。この z が住む空間を潜在空間と呼びます。VAE と GAN の違いは、この「変換器」をどう学習させるかにあります。
2. VAE — 確率的に圧縮して、復元する
オートエンコーダは、入力 x を低次元の z に圧縮するエンコーダと、z から x を復元するデコーダのペアでした。VAE(変分オートエンコーダ)はここに確率を持ち込みます。エンコーダは z を1点に潰すのではなく、分布 q(z|x) = N(μ, σ²) として出力し、そこからサンプルした z をデコーダに渡します。
下のデモでは、2次元の潜在空間の点 z を直接ドラッグできます。z の第1軸が「丸み」、第2軸が「傾き」に対応するようデコーダが学習済み、という設定です。z を動かすと出力が連続的に変形することを確かめてください。
学習は「復元の正確さ」と「潜在空間の整地」の綱引きです。目的関数は対数尤度の下界 ELBO:
KL 項のおかげで潜在空間は原点まわりに滑らかに敷き詰められ、学習後は p(z) からサンプルしてデコードするだけで新しいデータを生成できます。
3. 潜在空間を歩く — 補間が「意味」を保つ理由
2つのデータ点をピクセル(画素)のまま平均すると、半透明の二重写しにしかなりません。ところが潜在空間で z を補間してからデコードすると、「中間の概念」に対応する自然な図形が現れます。スライダーで u を動かして比べてみてください。
4. GAN — 偽造者と鑑定士の腕比べ
GAN(敵対的生成ネットワーク)は尤度を一切書き下しません。代わりに2つのネットワークを競わせます。
- 生成器 G(偽造者):ノイズ z から偽データ G(z) を作り、鑑定士をだまそうとする。
- 識別器 D(鑑定士):入力が本物のデータか G の偽物かを見破ろうとする。
下のデモは1次元版です。本物のデータは2つの山を持つ混合ガウス分布(緑)、生成器は最初は大きくズレた1つのガウス(オレンジ)。識別器は毎ステップ最適な判定カーブ(水色)を引き直し、生成器はその判定を頼りに「本物と言われる方向」へ分布を動かします。
実は、生成分布 pg が固定のとき最適な識別器は解析的に書けます:
5. VAEとGAN、どちらが良い?
両者は「潜在ベクトル z をデータに変換する」点で同じ形をしていますが、学習信号がまったく違うため、得意・不得意がきれいに分かれます。
| VAE | GAN | |
|---|---|---|
| 学習の仕組み | 尤度の下界(ELBO)を最大化 | 2つのNNのミニマックスゲーム |
| 出力の質 | ぼやけがち(平均で妥協する) | シャープで写実的(その分歪みも大胆) |
| 学習の安定性 | 安定(普通の最適化で済む) | 不安定(モード崩壊・発振と隣り合わせ) |
| 潜在空間 | 整地されていて補間・編集向き | 滑らかだがエンコーダがない(逆写像は別途学習) |
| 尤度の評価 | 近似値(ELBO)を計算できる | 計算できない(暗黙的な分布) |
| 今日の主な役割 | 拡散モデルの潜在圧縮担当(例:Stable Diffusion) | 超解像・蒸留・質感付与の損失として現役 |
6. まとめ
- 生成モデルはデータの分布 p(x) を学ぶ。簡単な分布からの z をNNで変換するのが共通戦略。
- VAE:確率的な圧縮+復元。ELBOで安定に学べ、整った潜在空間(補間・編集向き)が得られるが、出力はぼやけがち。
- 再パラメータ化トリック z = μ + σ⊙ε がサンプリング越しの逆伝播を可能にする。
- GAN:識別器という「学習される損失関数」でシャープな出力を得る。ただし均衡探しゆえに不安定で、モード崩壊のリスクを抱える。