Normalizing Flow
Normalizing Flow は、simple な base distribution を、連続した invertible transformation によって複雑な data distribution へ変換する方法です。

画像出典: Lilian Weng, “Flow-based Deep Generative Models”。Simple な distribution が、複数の invertible transformation を通じて複雑な distribution に変換されます。
基本 idea
Base variable が simple な distribution に従うとします。
複数の invertible transformation を順に適用します。
この連続した transformation が flow です。
Log likelihood
Change of variables theorem を繰り返し適用すると、log density は次のようになります。
この式からわかるように、Normalizing Flow では次の二つが重要です。
- Transformation が invertible であること。
- Jacobian determinant が効率よく計算できること。
代表的な model
Normalizing Flow の代表的な model には、次のようなものがあります。
数式で見る複数 flow の合成
Normalizing Flow は、複数の可逆変換を合成して複雑な分布を作ります。
Log density は各変換の log determinant の和で計算できます。
この式の気持ちは、「一つ一つは計算しやすい可逆変換を何段も積み重ねることで、単純な Gaussian を複雑な data 分布へ曲げる」というものです。Flow は exact likelihood を計算できる一方で、可逆性と Jacobian 計算の制約が architecture に強くかかります。