
摘要
归一化流(Normalizing Flow)是一种高效的生成建模方法,具有快速采样能力。然而,基于流的模型存在两个关键问题:其一,当目标分布位于低维流形(manifold)上时,由于潜在空间分布与数据分布之间维度不匹配,基于流的模型可能表现不佳;其二,对于离散数据,基于流的模型可能退化为点质量的退化混合分布(degenerate mixture of point masses)。为解决上述两个问题,本文提出一种新颖的去量化方法——PaddingFlow,该方法通过在归一化流中引入填充维度的噪声来提升模型性能。实现PaddingFlow仅需调整归一化流的维度,因此方法实现简单且计算开销极低。此外,填充维度的噪声仅添加至填充维度,这意味着PaddingFlow能够在不改变原始数据分布的前提下实现去量化。相比之下,现有去量化方法通常需要对数据分布进行修改,这可能对模型性能造成负面影响。我们在多个主流无条件密度估计基准上验证了所提方法,涵盖五个表格数据集、四个图像数据集(用于变分自编码器,VAE模型),以及条件密度估计任务中的逆运动学(Inverse Kinematics, IK)实验。实验结果表明,PaddingFlow在所有测试任务中均取得了优于现有方法的表现,证明其在多种任务中具有广泛适用性。代码已公开,地址为:https://github.com/AdamQLMeng/PaddingFlow。
代码仓库
adamqlmeng/paddingflow
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| density-estimation-on-bsds300 | PaddingFlow | CD: 0.495 EMD: 0.0248 MMD-CD: 0.48 MMD-EMD: 0.0212 |
| density-estimation-on-caltech-101 | PaddingFlow | COV-L2: 98.7% MMD-L2: 17.9 |
| density-estimation-on-freyfaces | PaddingFlow | COV-L2: 100% MMD-L2: 0.621 |
| density-estimation-on-mnist | PaddingFlow | COV-L2: 100% MMD-L2: 11.0 |
| density-estimation-on-omniglot | PaddingFlow | COV-L2: 98.8% MMD-L2: 20.3 |
| density-estimation-on-uci-gas | PaddingFlow | CD: 0.89 EMD: 0.131 MMD-CD: 0.39 MMD-EMD: 0.121 |
| density-estimation-on-uci-hepmass | PaddingFlow | CD: 13.8 EMD: 0.161 MMD-CD: 13.7 MMD-EMD: 0.153 |
| density-estimation-on-uci-miniboone | PaddingFlow | CD: 24.5 EMD: 0.268 MMD-CD: 24.0 MMD-EMD: 0.255 |
| density-estimation-on-uci-power | PaddingFlow | CD: 0.142 EMD: 0.105 MMD-CD: 0.135 MMD-EMD: 0.098 |