RealNVP
RealNVP は、NICE の additive coupling layer を affine coupling layer に拡張した flow-based model です。NICE よりも表現力が高く、exact likelihood と efficient sampling を両立します。
Affine coupling layer
Input を二つの部分 と に分け、次のように変換します。
ここで、 と は neural network です。
Inverse
Affine coupling layer は、次のように簡単に inverse を計算できます。
Jacobian determinant
Jacobian は triangular になるため、determinant は diagonal 成分の積として計算できます。
この性質によって、RealNVP は high-dimensional data に対しても likelihood を効率よく計算できます。
数式で見る RealNVP の coupling layer
RealNVP は affine coupling layer を使います。入力を二つに分け、片方はそのまま通し、もう片方を scale と shift します。
逆変換は簡単です。
Jacobian は triangular になるため、log determinant は scale の和だけで計算できます。
この式の気持ちは、「半分の変数を条件として使い、もう半分だけを変換することで、表現力と計算しやすさを両立する」というものです。Layer を重ねるときには、mask や permutation を変えて、すべての dimension が変換されるようにします。