归一化流(Normalizing Flows)的概率分布变换原理与可逆神经网络结构
字数 1762 2025-11-01 09:19:03

归一化流(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} \]

关键要求

  1. 每个变换 \(f_k\) 必须可逆;
  2. 雅可比行列式需容易计算,否则链式求导复杂度太高。

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. 优缺点分析

优点

  • 精确密度估计,适合概率建模任务;
  • 生成过程可解释,可通过逆变换插值、编辑隐变量。
    缺点
  • 要求变换严格可逆,网络设计受限;
  • 高维数据中雅可比行列式计算仍具挑战性。

归一化流通过可逆变换链将分布变换过程显式化,实现了生成与密度估计的统一,为概率生成模型提供了重要工具。

归一化流(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. 优缺点分析 优点 : 精确密度估计,适合概率建模任务; 生成过程可解释,可通过逆变换插值、编辑隐变量。 缺点 : 要求变换严格可逆,网络设计受限; 高维数据中雅可比行列式计算仍具挑战性。 归一化流通过可逆变换链将分布变换过程显式化,实现了生成与密度估计的统一,为概率生成模型提供了重要工具。