メタデータとか

Chris J. Maddison, Andriy Mnih, Yee Whye Tehの論文.ICLR2017のレビュー中の論文.最終著者のアラートで流れてきたので読んだ.

同じくICLR2017に投稿中のGumbel-Softmaxとほぼコンフリクトしてる.

本題

VAEで出てきたreparametarization trickは,ガウス分布とベルヌーイ分布に対して行われていた.今回は,潜在変数 次元のone-hotベクトル (深層学習では離散値はone-hotベクトルで表現されることが多いため) とする.実際にはこれが複数あるが単純なケースとして1つの例で紹介する.VAEで多変量ガウス分布の平均ベクトルと共分散行列の対角成分をencoderで求めたように,カテゴリカル分布のパラメータをencoderで推定する.推定するまではいいが,そのパラメータをもつカテゴリカル分布に従って離散値をサンプルし,one-hotベクトルを構成しなければならない.とりあえず離散値をサンプルすることを考えると,reparametarization trickと同様に単純な分布からサンプル値を構成する.これには第1著者らが過去にNIPSに通した論文の中でGumbel-Max trickと呼ぶ方法を使うことができる.サンプルする離散値は, 次元ベクトルの正の実数に対して

によって構成できる.Gumbel分布自体は , という単純な分布のサンプルから計算できる.

Google 翻訳させてもnzwがよくわからなかったのだが, だと 対応する次元以外は0になってしまうので, 次元については勾配が消えてしまうためGumbel-Max trickは今回の用途には不適切らしい.そこで離散値をサンプルせずに直接one-hotベクトルを構成する Concrete distribution を導入する.

これが 要素となる.temperature で0に近いほどone-hotベクトルになり,大きいほど離散一様分布のパラメータを要素に持つようなベクトルに近くなる.よってone-hotベクトルの近似を求めている.

実験で使ってるネットワークは馴染みがないので読み飛ばした.

その他

  • 付録に証明やreparametarization trickのチートシートがあるので,参考になる
  • VAEに限らず中間層で離散値がとれるはず
  • VAEを離散値にしてKerasで試したところ,adam/nadamだとlossが NaN になってしまって厳しい気持ちになった