274 Views
May 01, 25
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
KaiRA 生成Deep Learning輪読会 #2(2025/5/1) 生成Deep Leaning第2版 3.3-3.5:変分オートエンコーダ 京都大学工学部理工化学科B2 岡本 和優 0
アジェンダ ◼ 3.3 変分オートエンコーダ ◼ 3.4 潜在空間を調査する ◼ 3.5 まとめ 1
アジェンダ ◼ 3.3 変分オートエンコーダ ◼ 3.4 潜在空間を調査する ◼ 3.5 まとめ 2
エンコーダ VAEのエンコーダは各画像を、潜在空間内の多変量正規分布に写像する • オートエンコーダ:潜在空間の1点に直接写像 • 変分オートエンコーダ:潜在空間内のある1点の周りの多変量正規分布に写像 VAEのエンコーダは入力画像を、分布の平均(z_mean)と分散の対数(z_log_var)に写像する 3
サンプリング:再パラメータ化トリック 標準正規分布からεをサンプリングすることで逆伝播を可能にしている • エンコーダが写像した分布(平均𝜇、標準偏差𝜎)から、 𝑧 = 𝜇 + 𝜎εと𝑧をサンプリングしてデコーダに引き渡す (𝜀は平均0、分散1の正規分布𝑁(0, 1)からサンプリング) • エンコーダの出力(𝜇、log(σ2 ))をランダムなサンプリングとは無関係に デコーダーに引き渡せているから逆伝播が可能になっている VAE (Variational Autoencoder, 変分オートエンコーダ) | CVMLエキスパートガイド 4
エンコーダの実装 畳み込みで特徴抽出→平均と分散をそれぞれ線形層で出力 本の実装をPyTorchで書き直しています • class Sampling:エンコーダが出力した平均と分散 に従ってサンプリング σ = exp log σ = exp 2 log σ 2 log σ2 = exp( 2 ) • class Encoder:画像から畳み込みで特徴抽出 →2つの独立した線形層を用いて 平均と分散をそれぞれ出力 5
損失関数 再構成誤差+KL情報量で潜在空間の分布を標準正規分布に寄せる • オートエンコーダ:再構成誤差のみ • 変分オートエンコーダ:再構成誤差とKL情報量の組み合わせ エンコーダが出力したz_meanとz_log_varをパラメータに持つ正規分布を、 標準正規分布(平均0、分散1)から大きく外れないようにしたい →標準正規分布とのKL情報量を損失関数に用いる 1 𝐷𝐾𝐿 [𝑁(μ, σ)| 𝑁 0,1 = − (1 + log σ2 − 𝜇2 − 𝜎 2 ) 2 原論文のVAEは再構成誤差とKL情報量の単純な和だが、 その変形(β-VAE)では重みづけがなされている 6
デコーダと損失計算の実装 デコーダーはオートエンコーダと同様。損失計算にKL情報量の項を加える • 損失計算:再構成誤差とKL情報量の和 • デコーダー:サンプリングしたzから 転置畳み込みで画像を再構成 7
エンコーダに分布を出力させたこと・損失にKL情報量を利用したことの効果 どの点からもそれらしい画像が生成。極端なzはサンプリングされていない 新しく生成した画像 潜在空間の分布 →どの点でもそれらしい画像が生成されている! →極端な値からはサンプリングされていない (埋め込みがきちんと連続になっている) 8
アジェンダ ◼ 3.3 変分オートエンコーダ ◼ 3.4 潜在空間を調査する ◼ 3.5 まとめ 9
顔画像の生成 層の数と潜在空間の次元を増やすことでより複雑な画像も生成可能 • CelebAデータセットを利用 • 潜在空間の次元を200次元に • エンコーダとデコーダを構成する層を増やす 再構築された画像 潜在空間の分布 KL情報量の項の効果で潜在空間内の点の分布 が多変量標準正規分布に近くなっている →標準正規分布からサンプリングした点で 新たな画像をそれらしく生成可能 新らしく生成された顔 10
潜在空間内での計算 VAEの潜在空間は連続だから、ベクトルの計算を行うことで画像を操作できる 顔に特徴を加える 顔をモーフィングする ある属性を持つ画像がエンコードされた位置の 平均から、そうでない画像がエンコードされた 位置の平均を引くと、その属性を向いたベクト ルが得られる 2つの画像がエンコードされた点を結ぶ直線の 各点をデコードすることで画像を徐々に変化 させることができる z_new = z_A * (1 - alpha) + z_B * alpha これを加えることで生成される画像に特徴を加 えることができる z_new = z + alpha * feature_vector 11
アジェンダ ◼ 3.3 変分オートエンコーダ ◼ 3.4 潜在空間を調査する ◼ 3.5 まとめ 12
まとめ VAEは有用な生成モデルのひとつ • 各画像を潜在空間内の点ではなく分布にエンコードしている • 損失にKL情報量を加えることで、エンコーダの出力が極端にならないよう調整している • 潜在空間が連続になったおかげで、もっともらしい画像が生成されやすくなり、 生成される画像の操作などもできるようになった Google colabのリンク • vae_fashion_torch.ipynb • vae_face_torch.ipynb もっと理論的な話が知りたい人のために…… • VAEって結局何者なの? 13