機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

Neural Autoregressive Flowsを読んだのでメモ

はじめに

Neural Autoregressive Flowsを読んだのでメモ.表裏一体の関係にあったMAFとIAFを統合して一般化したneural autoregressive flow(NAF)を提案した論文.

お気持ち

この論文で問題としているのは,Variational InferenceにおいてIAFやMAFなどかなり質の良いモデルが作れるようになっているが,局所解の影響を受けやすいというところ(mode collapseのような現象).その原因は変換に使える関数の形が制限されていることにあるため,そこをもっとrichなものにして解決しようというもの.

その上で気をつけないといけないのはnormalizing flowを使った変分推定ではKLダイバージェンスの勾配はモンテカルロ推定などをしなければならないため以下の計算は扱いやすい必要がある.

ただし,p_Xはデータ分布でp_Yは近似事後分布,p_{target}は潜在変数\mathbf{y}の真の分布を表す.

Neural Autoregressive Flows

ここでは論文のnotationとは少し異なることに注意.

基本的にはAutoregressive Flowで用いられる変換の関数fニューラルネットに変えるというもの.すなわち

\displaystyle
y_t=f(x_t|\mathbf{x}_{1:t-1})=DNN(x_t|\phi(\mathbf{x}_{1:t-1}))

とする.何をしているかというと,入力はx_tスカラーでNNの重みが\mathbf{x}_{1:t-1}を入力とする関数から得られ,そこからy_tが計算されるというもの.つまりニューラルネットの構造としてはスカラーを入力としてスカラーを出力する.ここではこの重みを擬似パラメータと呼ぶ.この定式化の嬉しいところは,\frac{\partial y_t}{\partial x_t}と擬似パラメータの勾配が逆伝播によってもとまるというところ.

さらにここではfの構造として二つ,deep sigmoidal flows(DSF)とdeep dense sigmoidal flows(DDSF)というものを導入する. DSFは以下で定義される.

\displaystyle
y_t=\sigma^{-1}(\underbrace{w^T}_{d_{1\times d}}\sigma(\underbrace{a}_{d\times 1}\underbrace{x_t}_{1\times 1}+\underbrace{b}_{d\times 1})))

ここで\sigmaシグモイド関数を表し,\sigma^{-1}はlogit関数.logit関数を最後に使う理由はy_tの値が不当に0にならないようにするため.また\sum_iw_{i,j}=1,\:w_{i,j}>0,\:a_{s,t}>0,\:b\in\mathbb{R}^dとして定義される.またdは隠れ層のユニット数でw,aはsoftmaxの出力とsoftplusまたはexpの出力から得られる.ただし,DSFは隠れ層1層の入出力がスカラーMLPとして考えられるため表現力には限界がある.

そこでその問題を解決するためにDDSFは出力をベクトルとするようなモデルとして定義する.

\displaystyle
h^{l+1}=\sigma^{-1}(\underbrace{w^{l+1}}_{d_{l+1}\times d_{l+1}}\sigma(\underbrace{a^{l+1}}_{d_{l+1}}\odot \underbrace{u^{l+1}}_{d_{l+1}\times d_l}\underbrace{h^l}_{d_l}+\underbrace{b^{l+1}}_{d_{l+1}}))

ただし,d_0=d_L=1,\:\sum_ju_{kj}=1を満たしbを除き全て正の値を持つ.

ここで一つ問題が生じていて,DDSFの計算には\mathcal{O}(d^d)の擬似パラメータが必要となる.すると隠れ層の次元dが大きくなると実践的に計算が難しくなるため,conditional batch-normalizationなるものを使って関数f\mathcal{O}(d^2)の統計パラメータと\mathcal{O}(d)の擬似パラメータで表現したらしい.実際のところ実験においてはconditional weight normalizationを使ったとのこと.詳しくはappendixにあるそうだがちょっとしたtips的なところは興味ないので割愛.

まとめ

一応最後にNAFがuniversal density approximatorだという主張があったが証明の部分がピンとこなかったのでこのメモでは割愛してしまった.

Flow関連の生成モデルに関してある程度主要な部分はsurveyできたと思うからアウトプットとして論文書きたいなという気持ち.