Avoiding Latent Variable Collapse with Generative Skip Modelsを読んだのでメモ
はじめに
Avoiding Latent Variable Collapse with Generative Skip Modelsを読んだのでメモ.勉強メモがわりにブログ始めてからずっと生成モデルしか勉強してない...
気持ち
VAEではdecoderが潜在変数を無視して画像を生成してしまうlatent variable collapseという現象がある.これはVAEが良いデータの表現を獲得できないことに繋がるため回避したい現象である.latent variable collapseが起こる要因は乱暴に言ってしまえば,evidence lower bound(ELBO)のKL項が最小化された結果priorと近似事後分布がほぼ一致してしまうことによる.
この論文ではこれを回避するためにskip connectionをdecoder側に導入して,理論的にも実験的にもlatent variable collapseが回避できることを示したという話.この理論的側面が気になって読んでみた.
latent variable collapse
まず必要となる式を諸々導出や定義を行いつつlatent variable collapseが起こる理由について簡単に.
VAEのdecoderはとして表現され,以下で表されるニューラルネットによってparameterizeされた指数型分布族と考えられる.
ここではlog-normalizerを表す.はのhierarchical function(要は多層のニューラルネット)で,以下のように表される.
ただし,は層目の隠れ状態を表す.
次に目的関数を考える.ELBOを以下の形で与える.
上のELBOは第一項目の自由度の高さがKL項を0にする要因となっていてlatent variable collapseを起こす. Latent variable collapseをさらに理解するためadversarial autoencodersで議論されていたaggregated posterior を考える.aggregated posteriorは次の形で表される.
するとELBOは式変形により次のように表現することができる.(具体的な式変形は割愛するが,以下のELBOにaggregated posteriorの具体形を代入して整理すれば元のELBOに戻る.)
ここでは相互情報量を表していて,その定義からと計算される.KL項が0になるとういうことは上記の形で表現されるELBOにおいて
となることを意味する.相互情報量が0であるということはが独立であることを意味していて,独立になるということはlatent variable collapseと同義.
avoid latent variable collapse
論文のメインの主張であるgenerative skip modelsについて.generative skip modelsのは以下のように表現できる.
各層において隠れ状態と潜在変数を入力とする関数を導入した形で,ResNetやU-Netにあるいわゆるスキップコネクションと同じものと考えればいい.この論文ではを以下の形で表す.
ここではシグモイドやReLUといった非線形関数では学習される重みパラメータ.
上記のようなモデルを与えるとgenerative skip modelにおける相互情報量は次のような関係を持つ.
すなわち提案手法の方が相互情報量が大きくなるため潜在変数との結びつきが強くなる.証明としては,は層を重ねるごとにとの関係性が薄れていくものである,すなわち,が成り立つことを使う.SKIP-VAEでは全ての層にが入力されるため逆に層を重ねるごとにと依存関係が増していく.よってが成り立つ.
この関係性を使えばELBOの最大化は次のような制約付きの形で表すことができる.
よってskip-vaeにおける目的関数は
となる.ただしはラグランジュ乗数ではデータ分布のエントロピーを表す.また最後の式の導出はaggregated posteriorで導入した関係性を使った.
まとめ
論文では目的関数導出後,4章で実験において目的関数をどう計算していくか具体的に説明していたが実装予定はないので割愛.アブストに理論的にlatent variable collapseを防ぐと書いてある割に相互情報量の不等式が雰囲気で導入されててなんだか腑に落ちない(自分の理解不足または英語力不足かも知れないけど).とは言え感覚としてはわかるので手法としては実装も容易だし優秀な気がする.