Flow Matching
Normalising Flows
令 \(\phi: \mathbb{R}^d \to \mathbb{R}^d\) 为 \(\mathbb{R}^d\) 上的连续可微函数,其具有逆函数 \(\phi^{-1}: \mathbb{R}^d \to \mathbb{R}^d\)。令 \(q_0(x)\) 为 \(\mathbb{R}^d\) 上的密度函数,令 \(p_1(\cdot)\) 为如下采样过程诱导的密度函数:
人话:\(q_0\) 是基础分布,\(p_1\) 是由函数 \(\phi\) 转换得到的分布。\(x\) 是 \(q_0\) 中采样的样本,\(y\) 是 \(p_1\) 中采样的样本。
可以计算得到 \(p_1\) 的密度函数:
通过转换函数 \(\phi\) 将基础分布 \(q_0\) 转换为另一个分布 \(p_1\) 是有趣的,但这种转换在生成建模中的应用有限。因为生成建模的目标是仅使用可用样本来近似一个分布。因此,需要变换 \(\phi\) 将来自简单分布(如 \(\mathcal{N}(\mathbf{0}, \mathbf{I})\))的样本映射到大致的数据分布。简单的线性变换是不够的,因为数据分布具有高度非高斯特性。因此我们使用神经网络作为变换函数 \(\phi_\theta\)。现在关键任务是优化神经网络的参数 \(\theta\)。
Learning Flow Parameters by Maximum Likelihood
我们使用 \(p_{1} \triangleq\left[\phi_{\theta}\right]_{\#} p_{0}\) 表示流 \(\phi_\theta\) 的参数密度函数。
学习参数 \(\theta\in\Theta\) 的一个自然的优化目标是考虑最大化模型的如下数据概率:
将 \(\phi_\theta\) 参数化为深度神经网络会导致几个限制:
- 如何强制可逆性?
- 如何计算逆函数?
- 如何高效计算雅可比矩阵?
因此,设计流 \(\phi\) 需要在流的表达能力(以及模型的表达能力)与上述考虑之间进行权衡,以便流能够高效地训练。
Residual FLow
特别是,计算雅可比行列式通常计算昂贵(需要在流中进行 \(d\) 次自动微分传递),因此我们在 \(\phi\) 中施加结构。
Full-rank residual

To be continued

浙公网安备 33010602011771号