深度学习-推荐系统-CV-NLP人工智能/模式识别/机器学习精华专题机器学习与数据挖掘

驯估学(下)

2019-07-26  本文已影响8人  WilliamY

【对于最大化似然函数模型、以及似然函数在图像表示中的表示应用感兴趣的读者,请分别参阅“驯估学(上)”“驯估学(中)”。】

旁注:标准化流的数据预处理

标准化流是一系列生成式模型,它们将司空见惯的某些简单概率分布“转换”为更复杂的概率分布。

1
2
3
4
标准化流模型学习易处理的逆变换,以及雅可比行列式的变换。若能有效地计算这两个量,我们可以使用变量代换规则,计算变换后的分布的对数概率密度:

绝大多数标准化流程序在连续密度函数上运行(因此需要计算表示体积变化的雅可比行列式项)。不过最近有一些关于“离散流”的研究,使模型学习转换概率质量函数而不是密度函数(Tran et al. 2019, Hoogeboom et al. 2019)。我们在这篇博文中不讨论它们,只是说明,它们通过设计离散的基本分布,实现了双向离散变换。

除了前面提到的随机实数化之外,在训练图像数据的标准化流时,还有一些额外的技巧。

根据经验,在最大似然估计之前,将数据从[0,256]的范围缩放到单位间隔[0,1]上,有助于稳定训练,因为神经网络偏差通常在零附近。

为了防止越界问题,如果采样到基础分布的样本、通过流函数映射到区间(0,1)之外的点,我们可以通过逻辑斯蒂函数(sigmoid函数的反函数)将其重新缩放到(-\infty, \infty)。

我们可以将范围缩放和逻辑变换视为模型开始时的“预处理”流程。像对待任何其他双向映射函数一样,我们这里也必须考虑变换引起的体积变化。

这里要认识到的重要一点是,出于评估目的,像素密度函数应始终在连续区间[0,256]中计算,以便比较不同的流模型和自回归模型在同一数据中的似然值(最多可相差由于随机实数化引起的变分空隙【变分下限与真值之间的差】)。

下图显示了RGB图像的标准归一化流程,左侧是原始离散数据,右侧是基本密度函数(可以是高斯分布、逻辑分布或任何你喜欢的易处理的密度分布)。

image.png
生成式模型的似然值通常映射到实数空间(上图绿色框)报告。 从Dinh等人在2016年的工作开始,许多基于流的模型缩放像素到区间 ,并应用逻辑斯蒂函数(sigmoid函数的反函数)来提高边界条件的数值稳定性。

离散逻辑斯蒂函数的混合似然

使用分类分布对像素进行建模的一个缺点是,分类交叉熵损失不能告诉我们值为127的像素比值为0的像素、距离值为128的像素更接近。【也就是丢失了类别之间的相对关系。】对于观察到的像素值p,分类交叉熵的梯度相对于像素值是恒定的(因为损失将类别视为无序的)。尽管交叉熵梯度非零,但它被认为“稀疏”的,因为它不提供关于当下的分布与目标分布(以像素值衡量)的距离信息。理想情况下,当预测值远离观测值时,我们希望梯度的幅度更大;而当模型接近观测值时,我们希望梯度更小。

将像素建模为分类分布的一个更严重的缺点是,如果我们选择的特征表示高达或超过256个类别,就会遇到麻烦。例如,模拟R,G和B像素联合分布(有256 ^ 3类别!)或模拟比uint8更高精度像素编码的HDR图像。当我们试图存储神经网络激活值映射到上述类别所需的投影矩阵时,我们很快就会耗尽内存。

两篇同时发表的论文Inverse Autoregressive FlowPixelCNN++,通过将RGB像素建模为序数数据的概率分布来解决这些问题,来自交叉熵损失的梯度信息可以在正确方向上推动模型,同时模型仍保留离散概率。

我们可以通过逻辑斯蒂混合模型来建模连续像素概率密度,这是一种连续分布。为了恢复离散像素值的概率质量,我们可以使用逻辑斯蒂分布的属性方便地计算它的概率积分函数,即sigmoid函数。通过计算两个逻辑斯蒂函数的差值 CDF(x+0.5) -CDF(x-0.5),我们可以恢复介于两个整数像素值之间的总概率质量。


例如,对于连续的逻辑斯蒂分布,像素的值为127的概率,被建模为介于126.5和127.5之间的概率质量。概率模型还必须考虑边缘情况,使得并且,如概率分布的定义那样。

以这种方式表示像素的另一个好处,是提供了一次性处理更多类别的“奢侈”。这意味着PixelCNN ++可以一次性地模拟R、G和B像素通道。需要注意的是,你必须充分调整混合成分的数量(在Cifar 10上,5似乎已经足够了)。

类似于Tran et al. 2019在类别分布上设计离散的流函数,Hoogeboom et al. 2019通过使用离散化的逻辑斯蒂混合似然作为基本分布,来设计序数格式的离散流。后者的方法具备两个方面的优势:既能使用标准化流,很容易地处理了求逆和采样;同时避免了求解实数化的似然目标(这可能会优化对似然函数的标准差进行估计的损失下限)。两篇论文都令人非常兴奋,我希望将来对此写更多内容!

困惑度

对数似然也是评估语言建模领域中的生成式模型的常用度量。 没有排序的离散字母表的分布律构成的分类分布,是概率密度建模的最自然的选择。

起源于自然语言处理(NLP)领域的一个怪癖,语言模型的似然通常以“困惑度”为单位进行评估,其由下式给出:2^{H(p,q)}。 困惑度的倒数的对数\log_2 2^{-H(p, q)},即是平均对数似然-H(p,q)。 困惑度是一个直观的概念,因为逆概率是随机变量的“分支因子”,或着叫做随机变量的加权平均可选择数。 困惑度和对数似然之间的关系是如此简单,以至于一些论文(Image Transformer)将“困惑度”与对数似然互换地使用。

最后的总结

在这篇博文中,我们推导出最大化平均对数似然和信息压缩之间的关系。我们还提到了像素的离散似然模型和连续似然模型的几种建模选择。

一个更深层次的问题是,似然值是否是衡量/优化的正确目标。在NIPS 2016(现称为NeurIPS会议)上,我记得在生成式建模研讨会上曾有一翻非常激烈的争论,研究人员们辩论优化易处理的似然模型是否是一个好主意。

事实证明,优化和评估最大化似然模型是一个好主意,因为从那以后研究人员已经想出如何构建和扩展更灵活的似然模型,同时保持计算的易处理性。像Glow、GPT-2、WaveNet和Image Transformer这样的模型经过最大化似然的训练,可以生成具有惊人质量的图像、音频和文本。另一方面,有人可能会争辩说,生成式建模最终目的是与实际任务相结合,提高实际应用的性能,例如提高在标记数据集上、对模型进行微调时的分类准确性。【即数据增广。】对于这一点,我的同事Niki Parmar关于图像与文本的似然模型做出以下评论:

在文本中,通常存在一种规律,即更高的似然值将帮助下游任务达到的更好的性能,如GLUE。然而在图像上,我从其他同事那里听说,像素似然值不能用作图像分类等下游任务的预训练任务的指标。可能的原因是,与文本中的短语或单词相比,像素在特征表示方面语义很少。虽然这是一个开放性的问题,但我认为图像的表示学习和文本是完全不同的,几乎很难建立和衡量有效的指标。这个差异很有趣。

在未来的博客文章中,我将在本教程基础上,继续讨论优化对数似然的变分下界的生成模型的评估方法(例如变分自动编码器、重要性加权自动编码器)。

进一步阅读

致谢

非常感谢Dustin TranNiki ParmarVincent Vanhoucke审阅这篇博文的草稿。一如既往地,感谢你的阅读!

上一篇 下一篇

猜你喜欢

热点阅读