A Blog Entry on Bayesian Computation by an Applied Mathematician
$$
$$
関連ページ
1 概観
正規化流 (NF: Normalizing Flow) とは (Tabak and Vanden-Eijnden, 2010), (Tabak and Turner, 2013) が提案・造語した生成モデリングアプローチである.
ニューラルネットワークとしては画像生成を念頭に置いた密度推定モデルである NICE (Dinh et al., 2015)(のちに Real NVP (Dinh et al., 2017))が初期のものであり,正則化流を有名にした.
また変分推論のサブルーチンとして正則化流を使えば,効率的な reparametrization trick を可能にするというアイデア (Rezende and Mohamed, 2015) も普及に一役買ったという (Kobyzev et al., 2021).
アイデアとしては,ニューラルネットワークの一層一層を可逆に設計するという制約を課すのみである.
1.1 原理
1.1.1 基底分布の押し出しとしての生成モデリング
GAN,VAE,拡散モデル など,深層生成モデルは,潜在空間
このモデル
1.1.2 逆変換の利用
正規化流 (normalizing flow / flow-based models) では,拡散モデル に似て,「逆変換」を利用することを考える.
すなわち,
すると,
1.2 実装
従って,可逆なニューラルネットワーク
このとき,行列式
この条件はたしかにモデルに仮定を置いている.
しかしそれでも,深層ニューラルネットワーク
1.3 アーキテクチャ
次節 2 で紹介するカップリング流は大変親しみやすい.
その特別な場合として自己回帰流(第 3 節)があり,複雑な成分間の条件付き構造をモデリングできるが,その分高次元データに対する密度評価とサンプリングは遅くなる.
2 カップリング流
2.1 概要
ある可微分同相
(Kingma and Dhariwal, 2018) では,conditioner には ResNet を使っている.
この逆変換は
加えて,後半の成分
2.2 Real NVP
カップリング流を最初に提案したのが NICE (Non-linear Independent Component Estimation) (Dinh et al., 2015) であり,これを画像データに応用したのが (Dinh et al., 2017) の RealNVP (Real-valued Non-Volume-Preserving) である.
NICE では affine カップリング
実際に訓練する変換は
こうして得たカップリング層を,分割
2.3 GLOW (Kingma and Dhariwal, 2018)
Real NVP では簡単な置換 (permutation) が用いられていたところを,(Kingma and Dhariwal, 2018) では,
このことによる計算量の増加は,LU 分解の利用によって回避している.
OpenAI release に発表されているように,画像生成タスクに応用された.
3 自己回帰流
3.1 概要
自己回帰流 (autoregressive flow) とは,カップリング流のカップリング関数
入力
この逆は
自己回帰流の Jacobi 行列は上三角行列になるので,Jacobian は効率的に計算できる.
3.2 マスク付き自己回帰流 (MAF)
こうすることで
この方法を採用したのが MAF (Masked Autoregressive Flow) (Papamakarios et al., 2017) であった.
MAF では
3.3 逆自己回帰流 (IAF)
これにより
従って IAF はサンプリング用途に使われるが,その分 MAF より密度評価が遅くなってしまう (Papamakarios et al., 2017).
3.4 Parallel WaveNet でのサンプリング加速
Parallel WaveNet (Oord et al., 2018) では,WaveNet モデル
この KL 乖離度を最適化することで
4 1変数関数の積によるフロー
4.1 はじめに
カップリング流と自己回帰流はいずれも変換
この
そのためには,1次元の写像
このアプローチを element-wise flow ともいう (Kobyzev et al., 2021).
4.2 スプライン
指定した点
単調関数によって補間すると約束すれば,可逆な変換
スプラインを,2つの二次関数の商 (rational-quadratic spline) によって補間する方法を提案したのが,Neural Spline Flow (Durkan et al., 2019) である.
この方法では,指定した点
例えば von Mises 分布が次のようにモデリングできる:
5 残差フロー
5.1 はじめに
残差接続
iResNet (Invertible Residual Networks) (Behrmann et al., 2019) では,縮小写像
この方法のボトルネックは Jacobian の計算にある.愚直に計算すると入力の次元
Residual Flow (R. T. Q. Chen et al., 2019) では,Jacobian の推定に Monte Carlo 推定量を用いた.
5.2 Jacobian が計算可能な場合
Planar flow (Rezende and Mohamed, 2015) では隠れ素子数1の残差接続層を用いたものである:
ただし非線型な活性化関数
Planar flow の欠点は逆の計算が難しい点であり,現在広く使われるわけではない (Kobyzev et al., 2021).
他に,circular flow (Rezende and Mohamed, 2015) や Sylvester flow (Berg et al., 2019) も同様な解析的な Jacobian の表示を与えるアーキテクチャである.
Sylvester flow (Berg et al., 2019) は
5.3 Jacobian を推定する方法
仮に変換
Russian-roulette 推定量では,無限和を最初の
6 応用
6.1 変分推論のサブルーチンとして
変分推論における
この使い方を初めて提唱し,フローベースのアプローチを有名にしたのが (Rezende and Mohamed, 2015) であった.
このような変分ベイズ推論,特にベイズ深層学習に向けたフローベースモデルが盛んに提案されている.
Householder flow (Tomczak and Welling, 2017) は VAE の改良のために考えられたものである.直交行列で表現できる層を,直行行列の Householder 行列の積として表現することで学習することを目指す.
他にも IAF (Kingma et al., 2016), 乗法的正規化流 (Louizos and Welling, 2017), Sylvester flow (Berg et al., 2019) など.
6.2 ベイズ計算
Neural Importance Sampling (Müller et al., 2019) とは,困難な分布からの重点サンプリングの際に,提案分布を正規化流で近似する方法である.この際に
Boltzmann Generator (Noé et al., 2019) は名前の通り,多体系の平衡分布から正規化流でサンプリングをするという手法である.
(Hoffman et al., 2019) は IAF を用いて目標分布を学習し,学習された密度
6.3 密度推定
目標の分布
この
その後同様の発想は非線型独立成分分析 (Dinh et al., 2015),引き続き密度推定 (Dinh et al., 2017) に用いられた.
現在は MAF 3.2 の性能が圧倒的である.
6.4 表現学習
通常の VAE などは,あくまで
これを flow-based hybrid model (Nalisnick et al., 2019) という.これは予測と生成のタスクでも良い性能を見せるが,分布外検知などの応用も示唆している.
異常検知 (Zhang et al., 2020),不確実性定量化 (Charpentier et al., 2020) のような種々の下流タスクに用いられた場合は,VAE など NN を2つ用いる手法よりもモデルが軽量で,順方向での1度の使用で足りるなどの美点があるという.
6.5 生成
画像生成への応用が多い:GLOW (Kingma and Dhariwal, 2018) (OpenAI release), 残差フロー (R. T. Q. Chen et al., 2019) など.
動画に対する応用も提案されている:VideoFlow (Kumar et al., 2020).
言語に対する応用もある (Tran et al., 2019).言語は離散データであることが難点であるが,潜在空間上でフローを使うことも提案されている (Ziegler and Rush, 2019).
6.6 蒸留
純粋な生成モデリングの他に,IAF 3.3 は (Oord et al., 2018) において音声生成モデルの蒸留に用いられた.
WaveFLOW (Prenger et al., 2018), FloWaveNet (Kim et al., 2019) などもカップリング層を取り入れて WaveNet の高速化に成功している.
6.7 SBI
モデルの尤度は隠されており,入力
これはデータの分布のサンプルから学習して,似たようなデータを増やすという生成モデルのタスクに似ており,正則化流との相性が極めて良い (Cranmer et al., 2020).
この際,任意の分布
この方法はさらに,事後分布推定に特化することで,SMC-ABC などの従来の近似ベイズ計算技法の性能を超えていくようである (Greenberg et al., 2019).
BayesFlow (Radev et al., 2022) は観測データからモデルパラメータへのフローを,償却推論によって学習する.一度このフローが学習されれば,新たなデータの到着に対しても極めて安価な限界費用で推論を更新できる.
7 文献
Janosh Riebesell のリポジトリ awesome-normalizing-flows
に実装がまとめられている.
(Murphy, 2023) 第23章は入門に良い.詳細はサーベイ (Kobyzev et al., 2021), (Papamakarios et al., 2021) に譲られている.
(S. Chen and Gopinath, 2000) の時点では同様のアイデアは Gaussianization と呼ばれていた.
(Tabak and Vanden-Eijnden, 2010), (Tabak and Turner, 2013) が (S. Chen and Gopinath, 2000) のアイデアを推し進めて,確率測度のフローによる押し出しとしての正規化流の提案と命名を行った.このフローの学習は最尤推定によって行なっていた.
References
Footnotes
この考え方は,VAE ではデコーダーをエンコーダーを用いていたものを,1つの可逆な NN で済ましているようにみなせる.↩︎