归一化流(Normalizing Flows)的概率分布变换原理与可逆神经网络结构
归一化流(Normalizing Flows)是一种基于可逆变换的生成模型,其核心思想是通过一系列可逆映射将简单分布(如高斯分布)逐步变换为复杂目标分布,并利用概率密度变换公式精确计算生成数据的概率密度。
1. 核心问题与目标
问题:如何生成复杂分布的数据(如图像、文本),并精确计算新样本的概率密度?
难点:传统生成模型(如VAE)只能近似密度,GAN无法直接计算密度。
归一化流的解决方案:通过可逆变换链,显式地建模分布变换过程,实现精确密度估计。
2. 概率密度变换公式
若存在可逆映射 \(z = f(x)\),且 \(f\) 的雅可比矩阵可逆,则变量变换公式为:
\[p_X(x) = p_Z(f(x)) \cdot \left| \det \left( \frac{\partial f}{\partial x} \right) \right| \]
其中:
- \(p_Z\) 是简单先验分布(如标准高斯分布);
- \(\det \left( \frac{\partial f}{\partial x} \right)\) 是变换 \(f\) 的雅可比行列式,衡量体积缩放比例。
3. 流模型的基本结构
归一化流通过 \(K\) 个可逆变换串联:
\[x = z_0 \leftrightarrow z_1 \leftrightarrow \cdots \leftrightarrow z_K = z \]
最终密度为:
\[p_X(x) = p_Z(z_K) \prod_{k=1}^K \left| \det \left( \frac{\partial z_k}{\partial z_{k-1}} \right) \right|^{-1} \]
关键要求:
- 每个变换 \(f_k\) 必须可逆;
- 雅可比行列式需容易计算,否则链式求导复杂度太高。
4. 可逆变换的设计
(1)仿射耦合层(Affine Coupling Layer)
- 分割输入:将输入 \(z\) 拆分为 \(z_A\) 和 \(z_B\)(如按通道或空间分割)。
- 变换部分维度:
\[ z_B' = z_B \odot \exp(s(z_A)) + t(z_A) \]
其中 \(s(\cdot)\) 和 \(t(\cdot)\) 是任意神经网络(无需可逆)。
- 可逆性:逆变换直接推导:
\[ z_B = (z_B' - t(z_A)) \odot \exp(-s(z_A)) \]
- 雅可比行列式:因仅部分维度被变换,雅可比矩阵呈三角块结构,行列式为 \(\exp(\sum s(z_A))\),计算复杂度低。
(2)1×1 可逆卷积
- 作用:替换通道维度的固定排列,增强表达能力。
- 可逆性:卷积核权重矩阵需可逆(如初始化为正交矩阵)。
- 雅可比行列式:等于权重矩阵的行列式,可通过LU分解快速计算。
5. 训练目标
最大化对数似然:
\[\log p_X(x) = \log p_Z(f(x)) + \sum_{k=1}^K \log \left| \det \left( \frac{\partial z_k}{\partial z_{k-1}} \right) \right|^{-1} \]
实际训练时,最小化负对数似然损失:
\[\mathcal{L} = -\log p_X(x) \]
6. 代表性模型:RealNVP 与 Glow
- RealNVP:引入仿射耦合层与多尺度结构,通过交替掩码实现全局变换。
- Glow:在RealNVP基础上增加1×1可逆卷积和激活归一化(ActNorm),进一步提升生成质量。
7. 优缺点分析
优点:
- 精确密度估计,适合概率建模任务;
- 生成过程可解释,可通过逆变换插值、编辑隐变量。
缺点: - 要求变换严格可逆,网络设计受限;
- 高维数据中雅可比行列式计算仍具挑战性。
归一化流通过可逆变换链将分布变换过程显式化,实现了生成与密度估计的统一,为概率生成模型提供了重要工具。