ModelCube(modelcube.cn)是博雅数智自主研发的一站式人工智能科研平台。为全国高校和科研机构的大数据和人工智能科研团队提供一站式科研服务。基于MLOps的实践和企业核心技术,实现了科研场景中全类型数据管理与标注,实验环境快速获取与灵活定制,模型的全生命周期管理,科研成果的管理与发布,以及 AI驱动的论文检索和学习等功能。
1 标准化流的定义
标准化流(Normalizing Flow,NF)是一种生成式模型方法,其目标是通过一系列可逆的变换,将一个复杂的概率分布转换成一个更简单的已知分布(比如高斯分布或均匀分布)。这些变换被设计成可逆的,这意味着可以反向进行,从简单分布生成样本,然后通过这些变换逆向得到原始复杂分布的样本。标准化流模型可用于生成高质量样本、密度估计和概率推断等任务。
之所以叫Normalizing Flows,是因为其包含两个概念:
标准化(Normalize):它可以将任意的复杂数据分布进行标准化,类似于数据预处理中常用的数据0均值1方差的标准化,但是要精细很多。 流(Flows):数据的分布可以非常的复杂,需要多个同样的操作组合来达到标准化的效果,这个组合的过程称为流。
2 常见名词解释
2.1 生成式模型
生成式模型(Generative Model)能够学习数据的分布,并利用这个分布生成新的数据样本。生成式模型是一类非常常见的统计机器学习方法,这类模型通过模型拟合观测数据的分布,分析数据背后产生的数学原理,一方面能够模拟样本产生的过程,合成高质量的数据,另一方面能够挖掘数据背后隐藏的结构化信息,能够用于帮助实际任务的推理过程。近年来,深度生成式模型(Deep Generative Model)能够生成极高质量的样本(如语音、图像、文字等),受到了学术界和工业界的广泛关注。从数学原理上,深度生成式模型可以分为四类:
变分自动编码器(VAE):VAE是变分推断这一方法的一种特殊形式,通过对先验分布做一些简单的假设和约束,找到模型在观测数据上的易于优化的对数似然值的下界(Evidence Lower BOund,ELBO)。 生成对抗网络(GAN):它包括一个生成器(Generator)和一个判别器(Discriminator),通过一种巧妙设计的最大最小训练方法,让模型生成器可以产生足以乱真的样本,在很多领域得到了广泛的应用。 自回归模型(AR):自回归模型是一种在序列建模里面常用的模型结果,它的想法很自然,通过将复杂的多变量联合分布拆解成有序相互依赖的条件概率分布来进行优化训练,这类模型在文本生成和语音生成领域取得了很好的应用成果。 标准化流(NF):标准化流模型通过构造一个可逆的变换函数,将任意复杂的数据分布变换为一些基本的简单分布(如单高斯分布、均匀分布等),通过巧妙设计的模型结构,模型可以对数据样本进行精确的最大似然估计。
其中,前两类模型,VAE和GAN,只是在隐式地学习数据空间的分布,并没有给出一个解析形式的概率分布函数。尽管能生成高质量的数据样本,这两类模型的训练难度较大,收敛的稳定性也比较差。与之相反的是,自回归模型和标准化流有清晰的概率分布函数和训练目标,所以训练难度较小。相对而言,自回归模型也存在一些明显的弊端,首先是需要逐点生成,并行化难度大,而且每个变量的生成只依赖其他变量中的一部分,因此生成的样本不是最优解,集束搜索一定程度上能缓解这个问题。
2.2 概率分布
标准化流中涉及的概率分布是指描述随机变量可能取值及其概率的数学模型。在标准化流的背景下,概率分布通常用于描述数据的特征或者模型参数。
常见的概率分布可以分为两类:
已知分布(Known Distributions):这些分布具有已知的数学形式和特定的参数。比如:
高斯分布(正态分布):一种连续分布,常用于描述自然界中的各种现象。 均匀分布:描述在一个有限区间内各值出现的概率均相等。 指数分布:描述随机事件首次发生的时间间隔的概率分布。 伯努利分布:描述仅有两种可能结果的随机变量分布。
复杂或未知分布(Complex or Unknown Distributions):这些分布可能没有一个明确的数学形式或参数。在标准化流中,我们试图通过变换,将已知的简单分布(如高斯分布或均匀分布)转换为更复杂、更灵活的分布。这些复杂分布可以是多模式、具有复杂结构或者适应性更强的分布。
标准化流模型利用变换层逐步改变数据分布的方式,使得从简单分布到复杂分布的转换变得可能。通过这些转换,我们希望能够更好地模拟和生成真实世界数据,并且在机器学习中更准确地对数据进行建模和处理。
2.3 可逆变换
“可逆分布”是指一个具备可逆性质的概率分布或变换。在标准化流中,可逆分布特指一个转换或映射,它是一个一对一的函数,允许在不丢失信息的情况下,在两个方向(正向和逆向)之间进行转换。
在概率密度函数中,这种可逆性质意味着从输入到输出的映射是一一对应的,因此可以从输出反向推导回输入。这种特性对于概率分布的转换至关重要,因为我们可以从简单的已知分布(比如高斯分布或均匀分布)出发,通过这些可逆变换将其转换为更复杂、更灵活的分布。
可逆变换也称为双射,这意味着对于输入空间中的每个点,都存在唯一的对应输出空间中的点,反之亦然。这种性质对于生成式模型、密度估计以及从简单分布中生成更复杂样本的过程非常重要。
在标准化流中,通过串联多个可逆的变换层,可以逐步将简单分布转换为复杂分布。这些变换层在可逆性的基础上,允许模型学习如何从一个分布变换到另一个分布,从而帮助生成更逼真的数据样本或者进行更准确的密度估计。
2.4 密度估计
密度估计是指通过观察到的数据样本,对数据的概率分布进行估计。在标准化流中,密度估计是指对数据的概率分布进行建模或估计其概率密度函数(Probability Density Function,PDF)。
通过密度估计,我们试图找到一个数学模型或函数来描述观测数据的分布情况。这种建模可以是参数化的,意味着我们假设数据遵循某种特定类型的分布,比如高斯分布、均匀分布等,并估计这些分布的参数。另一种是非参数化的密度估计,不对数据的分布形式作出假设,而是直接基于数据本身来估计分布,比如核密度估计等。
在标准化流中,通过一系列可逆的变换,我们尝试将简单的已知分布转换为更复杂、更逼真地描述数据的分布。密度估计在这个过程中扮演关键角色,因为我们希望得到一个能够准确描述数据特征和结构的概率密度函数,以便更好地模拟和生成符合真实数据特征的样本。
密度估计有助于我们了解数据的分布特征、推断数据可能的取值范围、进行数据预测和分类等任务。在标准化流中,通过对复杂数据分布进行密度估计,我们能够更好地理解数据并进行更精确的模型建立。
2.5 概率推断
概率推断是指根据观察到的数据和一个已知的概率模型,推断模型中未知参数或隐含变量的过程。在标准化流中,概率推断通常指的是通过对观测数据进行分析,推断模型参数或隐含变量的取值。
这种推断可以有不同的实现方式,其中一种常见的方法是贝叶斯推断。贝叶斯推断基于贝叶斯定理,结合了观测数据和先验知识,得出参数或隐含变量的后验概率分布。在这个过程中,我们通过观测数据更新先验分布,得到更精确和可信度更高的后验分布。
在标准化流中,概率推断可以用于估计模型的参数,或者对隐含变量进行推断。这对于理解数据、训练生成式模型以及进行预测都是非常重要的。
通过概率推断,我们可以利用已知的数据和模型,对模型中的未知变量或参数进行推断和估计。这种方法在机器学习中被广泛应用,尤其是在概率图模型、贝叶斯网络和深度学习等领域,有助于理解数据背后的规律并提高模型的预测能力。
标准化流模型利用这些概念和技术,通过一系列变换和逆变换,使得复杂的数据分布变得更易处理,从而可以应用在生成数据、估计数据分布等多个领域。
3 标准化流方法总结
3.1 NICE
这篇论文提出了一种名为非线性独立成分估计(NICE)的深度学习框架,用于建模复杂的高维密度分布。该框架基于一个理念:一个好的数据表示应该使数据的分布易于建模。为此,作者学习了一种非线性确定性数据变换,将数据映射到潜在空间,使得转换后的数据符合分解分布,即导致独立的潜在变量。作者参数化了这种转换,以便计算雅可比行列式和逆雅可比行列式,但仍保持了学习复杂非线性变换的能力,通过将其构建为简单模块的组合,每个模块基于深度神经网络。训练准则简单直接,即精确对数似然,具有可处理性。同时,无偏的祖先采样也很容易。作者展示了这种方法在四个图像数据集上产生了良好的生成模型,并且可用于修复图像中的缺失部分。
NICE: Non-linear Independent Components Estimation[1]. Laurent Dinh, David Krueger, Yoshua Bengio. ICLR 2014.
3.2 Real NVP
无监督学习概率模型是机器学习中的一个核心但具有挑战性的问题。特别是,设计具有可处理的学习、抽样、推理和评估的模型在解决这一任务中至关重要。作者通过使用实值非体积保持(Real NVP)变换,扩展这类模型的空间,这是一组强大的可逆和可学习变换,从而得到一个具有精确对数似然计算、精确抽样、精确潜在变量推理和一个可解释的潜在空间的无监督学习算法。作者通过抽样、对数似然评估和潜在变量操作,在四个数据集上展示了它对自然图像建模的能力。
Density estimation using Real NVP[2]. Laurent Dinh, Jascha Sohl-Dickstein, Samy Bengio. ICLR 2017.
3.3 Parallel WaveNet
这篇论文介绍了一种名为Probability Density Distillation的新方法,用于训练并构建一个并行前馈网络,从而改进了WaveNet的架构,实现了高保真度的语音合成。原始的WaveNet由于依赖顺序生成单个音频样本,不适用于当今的高并行计算机,难以在实时生产环境中部署。通过Probability Density Distillation方法,研究人员成功地训练了一个并行网络,其在保持质量不变的情况下,比原始的WaveNet实现了超过20倍的速度提升。Google已将这个系统投入生产,并正在实时为数百万用户提供Google Assistant查询服务。
Parallel WaveNet: Fast High-Fidelity Speech Synthesis[3]. Aäron van den Oord, Yazhe Li, Igor Babuschkin, Karen Simonyan, Oriol Vinyals, Koray Kavukcuoglu, George van den Driessche, Edward Lockhart, Luis C. Cobo, Florian Stimberg, Norman Casagrande, Dominik Grewe. ICML 2017.
3.4 Glow
这篇论文介绍了一种称为Glow(Generative Flow with Invertible 1×1 Convolutions)的新型标准化流模型,它使用了可逆的1×1卷积,属于流式生成模型的一种。这种模型在精确对数似然的可操作性、精确潜在变量推断的可操作性以及训练和合成的可并行性方面都非常有特点。作者通过使用这种方法在基准数据集上展示了对数似然的显著提升。更为引人注目的是,作者展示了一种优化纯对数似然目标的生成模型能够高效地实现逼真的合成和处理大型图像。
Glow: Generative Flow with Invertible 1*×*1 Convolutions[4]. Durk P. Kingma, Prafulla Dhariwal. NeurIPS 2018.
3.5 WaveGlow
这篇论文介绍了一种名为WaveGlow的基于标准化流的模型,能够从梅尔频谱图生成高质量的语音。WaveGlow结合了Glow和WaveNet的思想,以提供快速、高效和高质量的音频合成,无需自回归过程。该模型仅使用单个网络进行实现,使用单一成本函数进行训练:最大化训练数据的似然性,这使得训练过程简单而稳定。作者的PyTorch实现在NVIDIA V100 GPU上以超过500 kHz的速率产生音频样本。平均意见分数显示,WaveGlow提供的音频质量与当前公开可用的最佳WaveNet的实现一样好。
WaveGlow: A Flow-based Generative Network for Speech Synthesis[5]. Ryan Prenger, Rafael Valle, Bryan Catanzaro. ICASSP 2019.
3.6 Flow++
这篇论文探讨了基于标准化流的生成模型中存在的三种限制性设计选择,并提出了改进方案。这些设计选择涉及量化时使用均匀噪声、采用不够表现力的仿射流,以及在耦合层中仅使用卷积条件网络。在此基础上,论文提出了Flow++,这是一种新的基于标准化流的模型,目前在标准图像基准测试上是非自回归模型中性能最好的,用于无条件密度估计。
Flow++: Improving Flow-Based Generative Models with Variational Dequantization and Architecture Design[6]. Jonathan Ho, Xi Chen, Aravind Srinivas, Yan Duan, Pieter Abbeel. ICML 2019.
NICE: Non-linear Independent Components Estimation: http://modelcube.cn/paper/detail/620227
[2]Density estimation using Real NVP: http://modelcube.cn/paper/detail/2518636
[3]Parallel WaveNet: Fast High-Fidelity Speech Synthesis: http://modelcube.cn/paper/detail/245
[4]Glow: Generative Flow with Invertible 1×1 Convolutions: http://modelcube.cn/paper/detail/2387423
[5]WaveGlow: A Flow-based Generative Network for Speech Synthesis: http://modelcube.cn/paper/detail/1093610
[6]Flow++: Improving Flow-Based Generative Models with Variational Dequantization and Architecture Design: http://modelcube.cn/paper/detail/2539169
阅读原文,了解更多信息:ModelCube一站式人工智能科研平台
http://modelcube.cn/paper/reading-list-detail/35