Flow模型(正常化流模型,Normalizing Flow)是一类用于构建复杂分布的生成模型。它通过一系列可逆的变换将简单的基础分布(例如高斯分布)映射到复杂的目标分布。通过最大化数据在目标分布下的对数概率,我们可以训练这个模型。以下是Flow模型的理论推导以及最终的损失函数的详细过程。
Flow模型的基本原理
-
可逆变换:
设 z \mathbf{z} z 是简单基础分布(如高斯分布)的随机变量, x \mathbf{x} x是目标分布的随机变量。我们通过可逆变换 f f f将 z \mathbf{z} z变换为 x \mathbf{x} x,即:
x = f ( z ) \mathbf{x} = f(\mathbf{z}) x=f(z)
由于变换是可逆的,我们也有:
z = f − 1 ( x ) \mathbf{z} = f^{-1}(\mathbf{x}) z=f−1(x) -
概率密度的变换:
根据概率密度的变换公式,如果我们知道 z \mathbf{z} z的概率密度 p Z ( z ) p_Z(\mathbf{z}) pZ(z),那么 x \mathbf{x} x的概率密度 p X ( x ) p_X(\mathbf{x}) pX(x) 可以通过雅可比行列式进行变换:
p X ( x ) = p Z ( f − 1 ( x ) ) ∣ det ( ∂ f − 1 ( x ) ∂ x ) ∣ p_X(\mathbf{x}) = p_Z(f^{-1}(\mathbf{x})) \left| \det \left( \frac{\partial f^{-1}(\mathbf{x})}{\partial \mathbf{x}} \right) \right| pX(x)=pZ(f−1(x)) det(∂x∂f−1(x))
其中 ∣ det ( ∂ f − 1 ( x )