先生は今日、別クラスの補講で不在。
先にVAE(Variational Autoencoder、変分オートエンコーダ)を予習しましょう。
Stable Diffusion の画像圧縮にも使われています。
VAE ってオートエンコーダの仲間?
オートエンコーダは入力を一度小さく圧縮(エンコード)して、その圧縮表現から元に戻す(デコード)ことを学ぶネットワークです。
VAE はその発展形なんです。
普通のオートエンコーダは圧縮点を「1点」で表すのに対し、VAE は圧縮先を「確率分布(平均と分散)」として表現するのが決定的な違いです。
確率分布?
あたしわかんない、もうちょい易しく頼む。
うーん、例えるなら——点で表すと「この写真=ここの1点」になるんですが、分布で表すと「この写真っぽいものは、このエリア全体に分布してる」みたいに、エリア指定になるんです。
エリアだと、そこから新しい点をとってきて別バージョンの画像が作れる、ってこと?
ましろちゃん、まさにそれ!
だから VAE は単なる圧縮・復元ツールじゃなくて、新しいデータをサンプリングできる生成モデルでもあるんです。
点で表すか、分布で表すか、の違いで、創造力が生まれるんですね。
うそっ!?
分布にするだけで生成までできるんだ。
数学ってつえー。
補足すると、VAE の学習では「入力を正確に再現する誤差(再構成誤差)」と「潜在分布を標準正規分布に近づける誤差(KLダイバージェンス)」を同時に最小化します。
この2つの項があるからこそ、潜在空間が滑らかになるんです。
ふぇぇ、KLなんとか…難しそう…でも、滑らかってことは、近い場所の点を選べば似た画像が出るってこと?
ましろ、その直感が大事。
実際、VAE の潜在空間は「近い点=似た画像」「遠い点=違う画像」になるように学習されるので、スムーズに画像を補間できる性質が生まれます。
じゃあ VAE 単体で Stable Diffusion みたいな絵が作れるの?
VAE 単体で生成される画像は、拡散モデルほどシャープではない傾向があります。
そのため Stable Diffusion では「VAE で画像を圧縮→拡散モデルで処理→VAE で復元」という分業体制にして、両者のいいとこ取りをしているんです。
VAE は縁の下の力持ち、って感じですね。
なるほどぉ、縁の下の力持ち、かっこいいっ!
補足: GAN と VAE、拡散モデルは生成モデルの3大柱と呼ばれ、それぞれ強みが違います。
GAN=シャープだが学習不安定、VAE=安定だが画像がぼやけがち、拡散=高品質だが計算コスト大、という整理でOK。
バドミントンで言うとアシスト・ストライカー・ディフェンダーみたいなもの、とジャスミンちゃんなら言いそうね。
ふふ。
つむぎ、読心術か?
でも確かにそんな整理で覚えるとわかりやすいね。
試験対策としては、VAE は①圧縮・復元②潜在空間が滑らか③サンプリングで生成、の3点で十分!
確認クイズ
VAE が通常のオートエンコーダと異なる点として最も適切なものはどれか。
- パラメータ数が少ない
- 潜在空間を確率分布として学習する
- 画像しか扱えない
- 教師ラベルが必要
こたえを見る
正解: 2. 潜在空間を確率分布として学習する
VAE は潜在空間を確率分布として学習するため、新しいデータを生成できる点が通常のオートエンコーダと異なります。パラメータ数や対象データ型、教師ラベル有無は本質的な違いではありません。