“驯估学”(上)

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

写在前面

关于如何训练直接优化似然函数的生成式模型——例如自回归模型标准化流模型,本文将给读者提供一些实践建议。深度产成式建模领域正快速发展,我希望能为新手指南,为此本文将介绍不同研究论文中一致使用的基本术语,尤其是在建模更复杂的概率分布(如RGB图像时)也都通用的术语。

本文将讨论数学形式最简单的生成式模型(较易处理的密度估计模型),对建模图像像素的场景,提供了设计要点(在“驯估学(中)”一文可以找到)。读完本文后,你将了解定量地比较似然模型的方法,它们在比较网络架构和像素建模方式上有所差异的模型时仍然成立。

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

产成式建模的目标(实际上可以扩展到所有统计机器学习建模)是从一些(可能是条件分布的)概率分布中采样数据p(x)并学习一个模型p_\theta(x)去近似p(x)。建模允许我们在给定的原始数据向外推断的洞察力。以下是使用产成式模型的一些用途:

  • p(x)采样数据
  • 学习一个隐变量z的层级模型,用以解释x的现象;
  • 干预数据生成的过程,产生新的分布p_\theta(x|do(z))(请感兴趣的读者参看这篇文章)。注意,只有假设条件独立,并控制变量后,变量之间真正存在因果关系z→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 Distance)不同,后者无法保证在无限数据时渐进收敛到相同的结果(如果你关心图像的视觉质量,作为评价指标时它们是有用的)。

然而,大多数实验的数据和算力是有限的,因此度量的选择很重要。实际上,不同的度量将会使生成分布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(这与图像有多少像素无关!)。当然,我们通常不希望我们的生成式模型过度拟合这种极端情况,但在调试模型时,将它作为上限,检查模型的健全性是有用的。

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

【1.正字是“训诂学”,用通俗的语言解释词义叫“训”;用当代的话解释古代的语言叫“诂”,合起来就是指传统研究古书中词义的学科。“驯估学”的“驯”指训练,“估”指似然函数。
2.对于似然函数在图像领域的问题感兴趣的读者,敬请参看“驯估学”(中)(下)。】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,865评论 6 518
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 95,296评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 169,631评论 0 364
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,199评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,196评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,793评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,221评论 3 423
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,174评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,699评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,770评论 3 343
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,918评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,573评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,255评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,749评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,862评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,364评论 3 379
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,926评论 2 361