Emerging Convolutions for Generative Normalizing Flowsを読んだのでメモ
はじめに
Emerging Convolutions for Generative Normalizing Flowsを読んだのでメモ.
気持ち
Deepな生成モデルでGlowが登場して,flow-basedな生成モデルの利点が広く認知されたが,結局全単射な関数からしかモデルを構成できず,表現力を上げるには多層にする必要があった.そのせいで計算コストが上がってしまい扱いにくいという欠点が存在する.この論文ではGlowで提案された1x1Convをdxd Convに拡張して表現力を上げたというもの.
Generative flows
ここは過去散々メモを書いてきたので流石に今回は割愛.
Convolution
前提知識としてCNNにおける畳み込み(数学的にはcross-correlations)は行列とベクトルの積として表現可能ということを抑える.をベクトル化された画像(で展開,ただしはそれぞれ列と行,は幅を表す.)とし,をの重みとする.すると畳み込みの演算はとして表現可能.これはspatial domainでのgraph convolutionと同じロジック.Figure 2と3を見るとよくわかるはず.
一方で,normalizing flowの分野ではautoregressive convolutionという畳み込みが利用されることがある.autoregressive flow等についても過去いくつかメモを取ったので割愛.自己回帰モデルは各確率変数の依存関係からflow-basedなものと相性が良いのはよく知られていてautoregressive flowという文脈で広く研究されている.というのも,flow-basedな生成モデルは尤度の計算にヤコビアンの行列式を計算する必要があるが,自己回帰モデルではここの重い計算を単純化しやすいため.このautoregressive convolutionに従えば先ほどの畳み込みの定式化においてが三角行列になり,ヤコビアンの行列式がの体格成分の積として計算可能になる.
なぜ三角行列になるかという点において.autoregressive flowの文脈においては各画素ははという依存関係を持つ.すなわちある画素は以前に生成された画素とのみ依存関係を持つというもの.これを先ほどの畳み込みの枠組みで考えれば画像はと展開されているため,番目の画素は番目の画素としか依存関係がない.そのため,の行目において列目以降の値は0となる.(ここは論文に書いてない説明なのでnotation等は適当.)
とりあえずまとめると,は逆変換が可能でautoregressiveな設定を考えればヤコビアンの行列式も計算が楽ということ.
Emerging convolutions
この論文の提案手法であるemerging convolutionについて.先ほど見たようにautoregressive convolutionは逆変換可能だが,変換の自由度はautoregressiveのorder(ここでのorderは自己回帰の繰り返しの回数?)に制限される(convolutionは先ほどの定式化だとヤコビアンの行列式の計算が非現実的).そのためここではより自由度の高いinvertibleなconvolutionであるemerging convolutionを提案する.概要としては種々のautoregressive convolutionをつなぎ合わせるというもの(Figure 5がその図).
Square emerging convolutions
Autoregressive convはフィルタの形状が正方形ではないことが多く,ここで提案しているautoregressive convの組み合わせで得られる受容野(論文ではemerging receptive fieldと呼称)はFigure 5のように様々な形状をとる.それに対し,通常のDNNの枠組みにおいてはフィルタや得られる受容野の形状は正方形を成すことが多く,ライブラリ等における実装も正方形に最適化されている.実はある特定の二つのautoregressive convolutionによるemerging receptive fieldは正方形になるとのこと(どのようなconvかはFigure 5の一番下参照).これをsquare emerging convolutionとする.
のsquare emerging convolutionは二つのconvolutionとして表現することが可能.をその二つの畳み込みとし,を入力の特徴マップとすると次のような計算として表現可能.
はそれぞれcross-correlationとconvolutionを表す.
Invertible periodic convolutions
データによって周期性等を持つ場合があるため,そのようなデータにおいて効果的なinvertible periodic convolutionを提案.周期性のあるデータに対しては周波数空間における計算として扱えばヤコビアンの行列式も逆変換も扱いやすいという性質に基づくもの.別な言い方をすれば,周期性を仮定すれば重畳積分定理からデータとフィルタをDFTすれば要素積として計算可能ということ.これだけのことではあるが一応論文で丁寧に説明しているので軽く.
フィルタと入力における畳み込み(cross-correlations)は次のように表現可能.
をフーリエ変換を逆フーリエ変換とする.また,入力出力フィルタのフーリエ変換をとする.ただし,CNNにおける畳み込みはcross-correlationなのでをspatial domainにおいて反転したフィルタとして,convolutionのフーリエ変換として扱えるようにしている.すると周波数空間において元の計算は次のようになる.
これをchannelを考慮してとして表せば次のような行列式の形で表現できる.
は次元の行列で,はそれぞれ次元のベクトル.最後にと逆フーリエ変換すれば元の計算に一致する.フーリエ変換を利用した計算によりヤコビアンの行列式は次のようになる.
また,逆変換は逆行列を使って次のように計算できる.
でこの計算自体はある意味でglowにおけるconvの計算と同じなので,glowで提案されたLU分解を利用した計算が可能.ただしここではQR分解に修正したバージョンを利用.というのもglowのLU分解はpermutation行列が固定なので自由度が下がるということを問題視したため.QR分解を使った場合,重み行列はと表現される.直行行列はHouseholder reflectionからとして得られ,は次のように表現される.
は学習パラメータ.このQR分解を利用した表現により,ヤコビアンの行列式のはとして計算できる.
まとめ
Spatial domainでのgraph convolutionは確かに逆変換可能で盲点.畳み込みにautoregressiveの要請を入れて三角行列にすることで行列式と逆行列の計算を簡略化したのもなるほどな点.