首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图灵时报·A-NICE-MC

欢迎来到《The Turing Times 图灵时报》第二期!

本周有幸请到心有麟熙在斯坦福人工智能实验室的好友Jiaming Song博士,为大家介绍他在马尔可夫链蒙特卡洛 (Markov Chain Monte Carlo, MCMC) 方向的最新研究成果《A-NICE-MC》。

1

贝叶斯推理 (Bayesian Inference)是机器学习中最重要的方法之一,目标是通过贝叶斯法则,通过先验知识 (prior)似然 (likelihood)推断后验 (posterior)

相比于大家通常使用的优化方法(例如随机梯度下降),贝叶斯推理方法能够更全面的描述预测模型的分布,其结果也比使用优化方法更加鲁棒。然而,在大多数情况下后验的计算十分困难,因此研究者们通常使用近似的方法来逼近真实的后验。

在机器学习中,贝叶斯推理的方法主要分为两种:

变分推断 (Variational Inference) :使用一个模型去拟合后验,求解对应的优化问题,但是拟合的效果会收到模型表达能力的限制。

马尔可夫链蒙特卡洛 (Markov Chain Monte Carlo, MCMC):通过在特殊的马尔可夫链 (Markov Chain) 上连续采样的方式无限逼近真实分布,但是需要很多样本和计算才能在有限样本内拟合的很好。

近些年来,因为随机梯度下降和深度学习模型的成功,变分方法和深度学习有着很好的结合,典型的例子包括变分自动编码器(Variational Auto-encoder, VAE)。

虽然随机梯度方法一定程度上带来了MCMC的提升,但是深度学习模型并没有为MCMC带来很大提升。这是因为比较成功的MCMC方法都依赖于人工设计的转移函数而不是参数化的转移函数,而且缺少合适的训练方法。

在这篇文章中,我们提出解决这两个问题的方法,使得训练参数化的MCMC转移函数成为可能。实验数据表明,我们得到的参数化MCMC比手工设计的基线效率高数倍到数十倍

目标分布

基线方法的采样(未还原真实分布)

我们的采样(可高效还原真实分布)

2

马尔可夫链的对抗学习方法

首先我们需要考虑,如何训练参数化的马尔可夫链?

假设我们从任意初始分布得到样本,然后通过神经网络得到下一个样本,不断迭代就可以得到一个样本的分布。我们的目标是学习合适的神经网络,使得样本分布可以收敛到一个特定的分布(例如数据分布)。

然而,传统的基于最大似然的生成模型方法在马尔可夫链上并不合适,因为求解任何一个点的似然都需要我们对所有可能得到这个点的路径求积分。不过,从马尔可夫链中获得样本非常容易,这使得我们考虑一些不基于似然的训练方法,例如对抗学习。

对抗学习是一种基于采样训练生成模型的办法。其中,我们引入一个判别网络尝试区分生成模型产生的样本和真实的样本,而生成模型的目标就是生成能过欺骗判别网络的样本。这种方式已经在很多领域取得较好的效果。

因此,我们使用对抗学习训练马尔可夫链的参数。我们的目标函数分为两个部分,分别使用了两种来源的样本:

第一部分:从初始分布开始通过有限步迭代采样,这保证了我们的迭代可以达到数据分布。

第二部分:从数据分布开始进行一步采样,来保证我们的迭代会收敛在数据分布。这两种方式的结合可以使得训练的转移函数可以最终达到数据分布。

如下图所示,其中D为判别模型,T为生成模型,p(x)为数据分布,p(z)为起始分布

我们在一些图像数据集上取得了不错的效果。代码见链接:

github.com/jiamings/markov-chain-gan

3

高效的马尔可夫链蒙特卡洛

马尔可夫链蒙特卡洛 (MCMC) 的情况要比马尔可夫链更为复杂,因为MCMC方法一般需要满足下面的平衡条件 (detailed balance)

在这个条件下,我们希望任意两个点之间的转移函数满足特定的要求,而这种要求对于一般的神经网络很难达到。因此,我们考虑使用一种特殊的名为NICE的神经网络。这种神经网络的最大好处是可逆性,通过函数的前向表达式,我们可以立刻得到该函数的逆的表达式

我们通过NICE构造一种特殊的转移函数更好的达到平衡条件,大致的思想是以相同的概率使用NICE函数和该NICE函数的逆,从而达成了一定的对称性。最终的模型大致如下图所示,其中我们使用NICE更好的达到了平衡的条件。

我们将我们的方法命名为A-NICE-MC

我们和哈密尔顿蒙特卡洛(Hamiltonian Monter Carlo, HMC)比较生成有效样本的效率。HMC是目前通常使用的MCMC方法中很强的基线,然而我们的方法可以持续的比HMC表现更好。在各种规模的问题上,我们的表现都比HMC好很多,最好的时候我们的方法效率可以优于HMC数十到上百倍

我们的文章已经在NIPS 2017发表。代码请见Github链接:

github.com/jiamings/a-nice-mc

END

感谢大家支持心有麟熙。还没有关注心有麟熙公众号的同学们请加DrJimFan或者扫下图二维码。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180311G05VCQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券