“驯估学”(上)

作者: WilliamY | 来源:发表于2019-07-17 11:49 被阅读18次

原题:Tips for Training Likelihood Models(似然模型的训练建议)
作者:Eric Jang
译者:尹肖贻

写在前面

本文要推荐给读者一点实践建议,关于训练直接优化似然函数的生成式模型——例如自回归模型标准化流模型——方面的。深度生成式建模是一个快速发展的领域,【受到不同领域和水平研究者的关注,】所以我希望本文能使更多的新手获益。【鉴于此,】我将介绍在不同的研究论文中一致使用的基本评估术语,特别是在建模更复杂的分布、如RGB图像时【也都通用的术语】。

本教程讨论了数学形式最简单的生成式模型(易处理的密度估计模型),对建模图像的像素的场景,提供了设计要素。读完本文后,你将了解定量地比较似然模型的方法。这些方法甚至在网络架构和像素建模方式上有所差异的模型之间,仍然成立。

散度最小化:生成式建模的一般框架

生成式建模的目标(实际上包括所有统计机器学习建模)是从一些(可能是条件的)概率分布中采集数据P(X)并学习一个模型p_\theta(X)去近似P(X)。建模允许我们在给定的原始数据向外推断的洞察力。以下是可以使用生成式模型执行的一些操作:

  • p(x)采样数据
  • 学习一个隐变量z的层级模型,用以解释x的现象;
  • 干预数据生成的过程,产生新的分布p_\theta(x|do(x))。注意,只有在控制变量后,变量之间真正存在因果关系z \rightarrow x的情况下,干预才会成功;
  • 对于某新样本点x',查询其是否服从我们的模型,以检测异常情况

建模条件概率分布具有更广泛的落地应用,因为我们可以将分类和回归问题转写为学习生成式模型的问题:

  • 机器翻译 p(英语句子|法语句子)
  • 机器起题名 p(题目|图像)
  • 最小化回归的目标损失 min. \frac{1}{2}(x-\mu)^2,在数学上等价于最大化对角线协方差的高斯分布的log似然估计:max. -\frac{1}{2}(x-\mu)^2

为了使p_\theta(X)匹配P(X),我们首先要提出两种分布之间距离的概念。 在统计学中,较常见的做法是设计一种较弱的“距离”概念,称为散度度量【度量或称“度规”】。与通常的距离度量不同,它是不对称的(D(P,Q)\neq D(Q,P))。 一旦我们在分布之间有形式化的散度度量,我们就可以尝试通过优化来最小化这个量。
有很多很多散度D(p_\theta||p)的形式化方法,通常合适的方法将被选做生成式建模算法的目标。这里列举了其中少数几种形式:

  • Maximum Mean Discrepancy (MMD)
  • Jensen-Shannon Divergence (JSD)
  • Kullback-Leibler divergence (KLD)
  • Reverse KLD
  • Kernelized Stein discrepancy (KSD)
  • Bregman Divergence
  • Hyvärinen score
  • Chi-Squared Divergence
  • Alpha Divergence

与【一般的】度量不同,两个分布之间的散度不需要对称。在无限数据和算力下,所有这些散度都得出相同的答案,即D(p_\theta || p) = 0当且仅当p_\theta \equiv p。请注意,这些散度的形式与主观感知评估指标(如Inception Score或Fréchet Inception距离)不同,后者无法保证在无限数据时收敛到相同的结果(但如果你关心图像的视觉质量,这些指标是有用的)。

然而,大多数实验拿到的数据和拥有的算力是有限的,因此度量的选择很重要。实际上,不同的度量将会使生成分布p_\theta(X)学到不同的定性性质。例如,如果目标密度p是多模态的,而模型分布q的表达能力不够,最小化前向KL(p||q)将收敛到模式覆盖。与此相对,最小化反向KL(q||p)可能导致模式丢失。请参阅此文,了解原因。

我们应当在最小化散度的框架下,思考生成式建模的目标,以恰当的原则选择散度的形式,以将欲得的性质从生成式模型映射到散度上去。它可以是隐式密度模型(GAN),特点是采样容易、但得不到对数概率形式;或者是基于能量的模型,特点是不能采样、但(非标准化的)对数概率形式容易处理。

这篇博文将使用最直接的指标:Kullback-Leibler散度(KLD),涵盖训练和评估的模型。这些模型包括自回归模型、标准化流和变分自动编码器(类似的模型)。优化KLD等价于优化对数概率,我们将在下一节中推导出二者等价的原因。

平均对数概率和压缩

我们想要建模P(X),通过随机过程,从这一概率分布生成数据。 我们通常假设,从足够大的数据集中采样,与从真实数据的生成过程中采样的情况,大致相同。【大数定理】 例如,从MNIST数据集中采样图像,等同于从创建MNIST数据集的真实手写过程中绘制样本。

给定一组测试图像x^1,...,x^N,独立同分布于p(x),其似然模型p_\theta的参数为\theta,我们希望最大化下面这个量:
\mathcal{L}(\theta) = \frac{1}{N}\sum_{i=1}^{N}\log p_\theta(x^i) \approx \int p(x) \log p_\theta(x) dx = -H(p, p_\theta)
【由此可见,】平均对数概率值,和负交叉熵蒙特卡洛估计是相等的,交叉熵发生在真实似然函数p和模型似然函数p_\theta之间。【由于】我们无法在实际操作中枚举所有的x^i【,所以使用了估计值】。用大白话说就是,我们把“最大化数据似然”,翻译为“最小化真实分布与模型分布之间的负交叉熵”。

多做一点代数,负交叉熵可以被KL散度(相对熵)和p的绝对熵重写:
\mathcal{L}(\theta) \approx \int p(x) \log p_\theta(x) dx = \int p(x) \log \frac{p_\theta(x)}{p(x)} dx + \int p(x) \log p(x)dx = -KL(p, p_\theta) - H(p)
香农源编码定理(1948)告诉我们,信息熵H(p)是传递p(x)的样本时、构造的无损编码之中、平均编码长度的下限。 更大的熵意味着更多的“随机性”,将是无法被【H(p)或更短长度的编码】无损压缩。 需要留意,当我们使用自然对数log_e计算熵时,将以“自然信息单位”或nats做单位【“natural”的前三个字母】;以log_2计算熵时,单位是我们熟悉的“bits”。H(p)这一项独立于\theta,最大化\mathcal{L}(\theta)实际上只相当于最小化KL(p,p_\theta)。这就是为什么最大似然等价于最小化KL散度的原因。

KL散度KL(p,p_\theta)或相对熵,等于编码方案p_\theta(x)为基准、编码p(x)数据所需消耗的“额外nats”数量的信息。 因此,负交叉熵的蒙特卡罗估计\mathcal{L}(\theta)也用nats作单位。

将两者【相对熵和绝对熵】放在一起【考虑】,交叉熵只不过是基于传输p_\theta的码本【即编码规则】、编码p的样本所需的平均编码长度。 我们首先必须支付至少H(p)nats这么多的“基本费”(因为它是最短编码),而后再支付额外的“罚款”KL(p, p_\theta) nats用来抵付从pp_\theta的任何偏差。

我们可以用一种非常可解释的方式比较两种不同模型的交叉熵:假设模型\theta_1的平均似然损失\mathcal{L}({\theta_1})、模型\theta_2的平均似然损失\mathcal{L}({\theta_2})。二者相减\mathcal{L}({\theta_1})-\mathcal{L}({\theta_2})导致熵项H(p)抵消,只剩下KL(p,p_{\theta_2}) - KL(p,p_{\theta_1})【译者按:原文写反了】。 此数量表示“从编码p_{\theta_1}切换到编码p_{\theta_2}时需要支付的惩罚”。
\mathcal{L}({\theta_1})-\mathcal{L}({\theta_2})=-KL(p, p_{\theta_1}) - H(p)-(-KL(p, p_{\theta_2}) - H(p))=KL(p,p_{\theta_2}) - KL(p,p_{\theta_1})
表达力、优化和泛化是优秀生成式模型的三个重要特性。似然值提供了可解释的度量,用于调试模型的这些特性。如果生成式模型不能记忆训练集,则会表现出优化(卡住)或表现力(欠拟合)方面的困难。

Cifar10图像数据集有50000个训练样本,因此记忆全部数据的模型将为训练数据集中的每个图像分配恰好1/50000的概率值,从而实现负信息熵log_2(\frac{1}{50000}),或每个图像15.6bits(这与图像有多少像素无关!)。当然,我们通常不希望我们的生成式模型过度拟合这种极端情况,但在调试模型时,将它作为上限,检查模型的健全性是有用的。

比较训练集和测试集之间的似然差异,可以告诉我们网络是在记忆训练集,还是具备到了推广到测试集的能力;或者可以用以检查模型是否存在缺漏,模型是否捕获到语义上有意义【但未必显式地体现在训练集中】的模式。

对图像建模感兴趣的读者,敬请参看“驯估学”(下)。

相关文章

  • “驯估学”(上)

    原题:Tips for Training Likelihood Models(似然模型的训练建议)作者:Eric ...

  • 驯估学(下)

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

  • “驯估学”(中)

    对似然函数感兴趣的读者,请参阅“驯估学”(上) 建模图像,分布若何? 有很多方法可以参数化图像。例如,你可以通过3...

  • 蒙古,荒原上的驯鹰人

    蒙古,荒原上的驯鹰人 | Joel Santos ​

  • 驯龙高手

    在今天,我看了驯龙高手。因为我决定看一部电影,然后把电影的情节写到文章上。我爸给我选了驯龙高手,所以我就看驯龙高手...

  • 学估值-衰退型公司估值

    衰退型公司有如下特征: 1)收入增长率低于通胀。 2)利润萎缩,甚至为负数。 3)失去了市场定价权。 4)市场份额...

  • 学估值-成熟型公司估值

    成熟型公司一般有下面几个特征: 1)收入增长率,利润率比较稳定。 2)很难有超额回报。 3)企业也有自己的护城河,...

  • 《经济学通史》读书摘要

    价值 经济学不谈“价值”,倒是强调“个人估值”(personal worth)概念。 一个人对某件物品的“个人估值...

  • 猫驯记_目录

    猫驯记_1_碰瓷 猫驯记_2_食欲 猫驯记_3_异状 猫驯记_4_瘟神 猫驯记_5_战瘟神 猫驯记_6_医院的日常...

  • 学估值-成长型公司估值

    自由现金流 = 净收入 + 折旧 - 资本支出 - 非现金营运资本变化 - (本金偿付- 新债发行)。这个东西不用...

网友评论

    本文标题:“驯估学”(上)

    本文链接:https://www.haomeiwen.com/subject/uqtnkctx.html