Skip to main content

Normalizing_Flows

归一化流的核心优势在于:它能够直接计算精确的对数似然(Exact Likelihood),并且具有可逆性。

概率密度变换

归一化流的基本思想是通过一系列可逆的非线性变换,将一个简单的初始分布(例如标准正态分布 p0(z)p_0(z))映射到一个复杂的真实数据分布(例如图像或语音分布 px(x)p_x(x))。

数学原理

根据概率论中的变量代换定理(Change of Variables Formula),如果我们有一个可逆且可微的映射 f:RdRdf: \mathbb{R}^d \to \mathbb{R}^d,使得 x=f(z)x = f(z),那么 xx 的概率密度函数可以表示为:

px(x)=pz(z)det(f1x)=pz(f1(x))det(fz)1p_x(x) = p_z(z) \cdot \left| \det \left( \frac{\partial f^{-1}}{\partial x} \right) \right| = p_z(f^{-1}(x)) \cdot \left| \det \left( \frac{\partial f}{\partial z} \right) \right|^{-1}

这里的 fz\frac{\partial f}{\partial z}雅可比矩阵(Jacobian Matrix)

约束

为了让归一化流在深度学习中可行,模型的设计必须满足两个核心条件:

  1. 可逆性(Invertibility): 函数 ff 必须是双射。这意味着生成数据(从 zzxx)和推理潜变量(从 xxzz)共用同一套参数,且计算成本都要低。
  2. 雅可比行列式易计算(Efficient Jacobian): 在高维空间中,计算 d×dd \times d 矩阵的行列式通常是 O(d3)O(d^3) 的复杂度。归一化流通常通过设计三角雅可比矩阵来将复杂度降为 O(d)O(d)

优缺点

优点缺点
精确似然计算: 可以直接评估模型对数据的拟合程度。维度保持: 潜变量 zz 的维度必须与原始数据 xx 完全一致,导致计算量大。
潜空间推理: z=f1(x)z = f^{-1}(x) 是唯一的,不存在 VAE 中的后验近似误差。设计受限: 为了保证可逆和行列式易算,结构设计不能像普通 CNN 那样随意。
训练稳定: 不像 GAN 那样需要权衡生成器和判别器,目标函数就是最大化对数似然。计算开销: 处理高分辨率图像时,内存占用非常高。