混合分布を隠れ変数とするVAEの論文を読む

ランニングできず 英語できず

(1)  混合分布を隠れ変数とするVAEの論文を読む

   「VAE with a VampPrior」[1705.07120v3] VAE with a VampPrior

 KingmaのVAE(Variational Auto encoder)は深層学習に始めて生成モデルを導入した画期的な業績となっています。従来の深層学習は教師付学習しかできませんでしたがVAEによって初めて非教師学習や半教師学習ができる様になりました。即ちデータから隠れた変数や因子を推定することができる様になりました。 

 VAEの特徴はデータから隠れ変数として多次元のガウス分布を推定していました。

    下図はデータより多次元ガウス分布zの平均と分散を推定してます。

f:id:mabonki0725:20170912111732p:plain

 例えば下図の様に手書き文字から癖を見つけ、その癖で未知の手書き文字を書くことができました。

f:id:mabonki0725:20170419174520j:plain

 M先生によると人間の認識などは単純なので、多次元のガウス分布で十分との見解ですが、本論文では敢えて複雑な図形の認識のために混合分布を隠れ変数に採用しています。

 なお表題にあるvampPriorは混合分布のパラメータを示しています。

(1.2) 手法

 混合分布を導入するため2つの隠れ変数z_1 z_2を導入しています。各々の隠れ変数の推定のためEncodeとDecodeの両方が2層構造になっています。

 下図の(a)が従来のVAE(b)が本論文の提案モデルです。

   

f:id:mabonki0725:20170912112322p:plain

     隠れ変数を見つけるEncode過程をVariatinal Partとしています。2層構造ですが、これらは何れも多次元のガウス分布なので既存のVAEの手法で解けると考えられますが、損失関数の記述が無いので確認できません。

  q_\phi (z_i | x,z_2) \cdot q_\psi (z_2 | x)

  ここで 

                 q_\psi (z_2|x) = \mathcal{N} (z_2 | \mu_\psi(x),diag(\sigma_\psi^2(x))

                 q_\psi (z_1|x,z_2) = \mathcal{N} (z_2 | \mu_\phi(x,z_2),diag(\sigma_\phi^2(x,z_2))

f:id:mabonki0725:20170913081109p:plain

 問題はDecodeの生成過程 Generation Partで混合分布を使っています。

  q_\theta (x | z_1,z_2) \cdot p_\lambda (z_1|z_2)  \cdot p(z_2)

        ここで

    p(z_2) = \frac{1}{K} \Sigma_{k=1}^K q_\psi (z_2 | u_k)     混合分布

                p_\lambda(z_1 | z_2) = \mathcal{N} (z_2 | \mu_\lambda(x),diag(\sigma_\lambda^2(x))

 このu_1,u_2,  \dots ,u_kは本論文ではvampPriorと称していて、この論文の中核となる部分です。このVampPriorと\psiの推定は上図のDecode生成過程の逆伝播時に計算できるとしています。

 残念ながら、このvampPriorが求める詳細の記述はなく公開されているソースを当たるしかありません。

(1.3) 結果

 結果としては以下の3手法を比較しています。

    ・p(z_2) = \mathcal{N}(0,I)    正規標準分布を採用する

 ・p(z_2) = \frac{1}{K} \Sigma_{k=1}^K \mathcal{N}(u_k,diag(\sigma_k^2))    混合ガウス分布を採用する

 ・vampPrior(生成過程の逆伝播で解く)の混合分布で解く

  使用した試験のデータは5種類です。

 

 下表では正規分布とVampPriorとの比較です。上段4つの数字は対数尤度で下段2つは次元当たりの平均Bit(意味不明)です。

  Lはサンプルの抽出回数 

  HVAEはVAEにRNNや自己回帰モデルを統合したモデルらしい?

     convHVAEはHVAEにCNNを追加したもの

 何れもVampPriorが僅かに勝っています。

f:id:mabonki0725:20170912120949p:plain

  下図は得られた対数尤度の頻度分布です。VampPriorの分布にノイズが少ないとしています。

f:id:mabonki0725:20170912122402p:plain

 (1.3) 感想

 VAEは変分法を使った大変綺麗な式で構築され、それをネットワークで実現しています。KingmaのVAEは隠れ変数の分布を限定していませんが、多次元のガウス分布以外は提案していません。

 今回の論文は一般的なVAEでガウス混合分布を提案していると思っていましたが、VAE+混合ガウス分布の潜在変数の推定は相当難しいと考えられます。従ってVAEの構造自体を変えて実現しようとしています。その為ロジックも曖昧だし実験結果を見ても殆ど普通のVAEと差がありません。

 またM先生が言う様に画像認識に多峰性かつ多次元の混合分布が必要か疑問です。データ自体は多峰性かつ多次元で生成されていても、複雑な分布を人間は見抜くことはできないと思います。