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な生成モデルは論文書く目処もついたのでそろそろ次の勉強ネタが欲しいところ.