规范化流是一类生成模型,在机器学习中通过将一系列可逆变换应用于简单的基础分布来显式建模概率分布。该方法利用概率的变量替换法则,将简单分布(如高斯分布)转换为复杂的目标分布。这种对似然的直接建模具有优势:负对数似然可以作为损失函数计算并最小化,并且可以通过从基础分布采样并应用流变换来生成新样本。相比之下,其他生成建模方法(如变分自编码器(VAEs)、生成对抗网络(GANs)和扩散模型)并不显式表示似然函数。
术语“规范化流”反映了两个方面:“规范化”指的是变换产生归一化的概率密度(积分为一),“流”指的是将基础分布“流动”到目标分布的变换的序列组合。基于流的模型已应用于图像生成、密度估计和异常检测等领域,,并且它们构成了更高级架构(如RealNVP和Glow)的基础。
方法
设 \( z_0 \) 是一个(可能多变量的)随机变量,其分布为 \( p_0(z_0) \。对于 \( i = 1, \dots, K \),设 \( z_i = f_i(z_{i-1}) \) 是从 \( z_0 \) 变换而来的随机变量序列。函数 \( f_1, \dots, f_K \) 必须是可逆的,,意味着逆函数 \( f_i^{-1} \) 存在。最终输出 \( z_K \) 对目标分布进行建模。
\( z_K \) 的对数似然由下式给出:
\[ \log p_K(z_K) = \log p_0(z_0) - \sum_{i=1}^K \log \left| \det \frac{d f_i(z_{i-1})}{d z_{i-1}} \right| \]
该公式源于变量替换规则,,该规则通过每个变换的雅可比矩阵的绝对行列式来调整密度。为了高效计算对数似然,,函数 \( f_1, \dots, f_K \) 应易于求逆,,并且其雅可比矩阵的行列式应易于计算。在实践中,,这些函数使用深度神经网络进行建模,,并通过最小化目标分布数据样本的负对数似然来训练。架构的设计使得网络的前向传播即可用于逆变换和雅可比行列式计算。例子包括NICE、RealNVP和Glow。
对数似然的推导
考虑 \( z_1 \) 和 \( z_0 \。注意 \( z_0 = f_1^{-1}(z_1) \。根据变量替换公式,,\( z_1 \) 的分布为:
\[ p_1(z_1) = p_0(z_0) \left| \det \frac{d f_1^{-1}(z_1)}{d z_1} \right| \]
利用逆函数定理,,逆变换的雅可比矩阵的行列式是前向变换的雅可比矩阵的行列式的倒数,,从而得出上述对数似然表达式。该推导通过归纳法扩展到多个变换。
架构创新
早期的基于流的模型专注于设计具有可处理雅可比矩阵的变换。NICE(非线性独立成分估计),由Dinh等人于2014年提出,,使用加性耦合层对输入进行分区并应用简单的仿射变换,,使得雅可比矩阵为三角矩阵且行列式为一。RealNVP(实值非体积保持)将其扩展为仿射耦合层,,允许缩放和平移操作,,在保持可逆性的同时提高了表达能力。Glow由Kingma和Dhariwal于2018年提出,,添加了可逆的1x1卷积和actnorm层,,使得在高分辨率图像上进行高效训练成为可能。
这些架构通常由多个耦合层组成,,每个耦合层带有置换或卷积以混合维度工可逆性通过构造保证,,雅可比行列式作为三角雅可比矩阵的对角元素乘积来计算,,这非常高效工
应用与比较
规范化流用于密度估计,,即学习数据集的概率分布,,以及用于生成采样,,即产生新的数据点工它们已应用于图像生成、音频合成和分子构象生成等领域工与以生成清晰样本但缺乏似然估计而闻名的GAN相比,,流提供精确的对数似然,,这对于模型比较和异常检测非常有用工与扩散模型相比,,流通常采样速度更快,,因为只需一次前向传播,,而扩散模型需要迭代去噪工然而,,由于需要可逆架构和雅可比计算,,流的训练可能计算成本高昂工它们可能还需要更多参数来捕捉复杂分布,,相比其他方法工
训练与优化
训练规范化流涉及最小化训练数据的负对数似然工损失函数为:
\[ \mathcal{L} = -\frac{1}{N} \sum_{n=1}^N \log p_K(x_n) \]
其中 \( x_n \) 是数据样本工这通常使用随机梯度下降来完成工变换的可逆性确保了对数似然的良好定义,,并且雅可比行列式作为前向传播的一部分进行计算工正则化技术(如权重衰减和dropout)可以应用于网络参数工
相关概念
规范化流是人工智能和神经网络更广泛领域的一部分工它们常与其他生成模型(如生成对抗网络和变分自编码器)进行比较工该领域的研究已由斯坦福人工智能实验室和伯克利人工智能研究等机构推进,,并由达芙妮·科勒和阿尼玛·阿南德库马尔等研究者推动工其理论基础与机器学习和深度学习相关联工