Sylvester Normalizing Flows for Variational Inferenceを読んだのでメモ
はじめに
Sylvester Normalizing Flows for Variational Inferenceを読んだのでメモ.planer flowの一般化であるSylvester normalizing flowを提案.planer flowは以前勉強した.
Normalizing flow
復習がてらnormalizing flowについて.
確率変数を関数
を使って
に変数変換する.その時,
の確率密度は次のように計算できる.
上記は変数変換の公式として知られていて調べればいくらでも出てくる.基本的にはも
も確率密度の定義から積分が1であるため
という関係が成り立つことから導かれる.
次にこの変数変換を変分推定に組み込むことを考える.初期の確率変数をdiagonal Gaussian
に従う確率変数とする.この変数
を
のように
回変数変換することを考える.すると確率密度
は以下の計算により求めることができる.
は
番目の変換のパラメータを表す.上記の
を変分事後分布とすると変分推論における下限の式は以下のように表現ができる.
通常の変分推論では変分事後分布は勾配計算のためにサンプリングを用いるため,サンプリングが簡単にできるような単純な分布である必要がある.それに対し,noramlizing flowは単純な分布から複雑な分布へ変換することで複雑な分布を変分事後分布として用いることが可能で,サンプリングも単純な分布から行うことができる.それにより変分推論の近似精度をあげることができるというもの.
先行研究ではこの変数変換の関数を以下のplanar flowと呼ばれる関数族で定義した.
各パラメータはとして定義されれ
は
のような全単射の活性化関数を表す.このplanar flowは
である限り逆変換が可能である.
またplanar flowのヤコビアンの行列式は以下の形で計算が可能.
ここでは
の導関数を表し,このように計算できることで行列式の計算コストが
になる(普通は
).
Sylvester normalizing flow
名前がかっこいい.ここでは次のようなresidual connectionを持つ隠れユニット数の単層ニューラルネットのような変換を考える.
各変数はで定義されている.この変換のヤコビアンの行列式は以下のSylvester's determinant identityを使うことにより求めることが可能とのこと.
ここでは
次元単位行列を表す.上記の関係を用いれば
の時に
行列の行列式を
行列の行列式として計算ができるため,計算コストの削減ができる.
このSylvester's determinant identityを使えば最初に定義した変換のヤコビアンの行列式は以下のように計算できる.
導出は普通に微分するだけ.嬉しいこととしてはのように計算している点で,さっきも書いたように行列のサイズが落ちるため計算コストが下がる.
注意としてこの変換自体は基本的には逆変換を持たない.逆変換を持つためにはが次のようなQR分解の形で表される必要がある.
ただし,は
上三角行列で
は
直交行列となる.この時ヤコビアンの行列式は次の形で表される.
最後はが直交行列であることを利用した.ここで
は上三角行列であるため行列式の計算オーダーは
となる.
この変換が逆変換を持つための十分条件は,が上三角行列で
が連続な関数である時,
が
かつ
が逆行列を持つという条件で与えられる.以下
がともに対角行列であるときの証明.
は直交行列であるため,
が張る部分空間は
として表すことができ,その直交補空間を
で定義する.すると
として分解することができる.ただし,
.当然,
となる.したがって関数
は
上のみで振る舞うことになる.したがって,
上での
の振る舞いのみを考えればよく,
に左から
をかければ
としてかける.ここでベクトルは
が張る部分空間上での
の座標を表す.ここでは
は対角行列であることを仮定しているため,
の各次元は独立であり,
という変換としてかける.よって各次元ごとに考えることができ,
であることから,
であることが言える.導関数が正の1次元の実関数は逆変換を持つため
は逆変換を持つ.よって
は逆変換を持つことが言え,その変換は
としてかける.論文では当然が三角行列の時の証明も行われているがかくのが面倒なのでここでは割愛.
実践的な面での課題ではパラメータの学習時にどのようにしてを直交行列として保ち続けるかという問題がある.ここでは
を直交行列として保ち続けるために,Orthogonal Sylvester flows, Householder Sylvester flows, Triangular Sylvester flowsの三つのflowを提案する.
Orthogonal Sylvester flows(O-SNF)
ここではを満たしながら以下の手順を用いることで
の直交性を保つ.ただし,行列の2-normは
で計算され,
は
の最大特異値を表す.
ただし実験の時にはを満たすように行ったらしい.
はフロベニウスノルム.この手順は微分可能なためbackpropに組み込めるので嬉しいという点も.
Householder Sylvester flows(H-NSF)
ここでは次のHouseholder変換の積によって直交行列を作る.ハウスホルダー変換は超平面上での反射を表していて,とすると
に直交する超平面上での反射(つまりハウスホルダー変換)は以下で与えられる.
これは計算コストは低くパラメータもしか持たないため嬉しい.ちなみに
直交行列は
回のハウスホルダー変換の積で記述できることが知られているらしい.注意としてはハウスホルダー変換を使う場合は,ハウスホルダー変換の結果が正方行列であるため
とする必要がある.
Triangular Sylvester flows(T-SNF)
これはを単位行列または置換行列として,flowの変換の過程で単位行列と置換行列が交互に現れるようなflow.つまり,
と
が上三角と下三角として交互にflowに現れるようにすることと等しい.すなわちT-SNFでは
は固定.
まとめ
実験的には3つのflowの性能はだいたい同じくらいっぽい.計算コストや実装の観点から言えばO-SNFかなあというところ.
Flow-basedな生成モデルは論文書く目処もついたのでそろそろ次の勉強ネタが欲しいところ.