EM算法的九层境界:​Hinton和Jordan理解的EM算法

前言

为什么说EM算法是他们强强发力的领域呢?

这里我们讨论Hinton和统计大神Jordan的强强发力的领域。当Bayes网络发展到高级阶段, 概率图模型使得计算成为问题,由此开启了Variational Bayes领域。在“变の贝叶斯”里面, 我们解释了研究Variational Bayes,有3拨人。 第一拨人, 把物理的能量搬到了机器学习(参考 “给能力以自由吧!”)。 第二拨人, 就是Hinton,他将VB和EM算法联系了起来,奠定了现在我们看到的VB的基础。 第三拨人,就是Jordan, 他重建了VB的框架ELBO的基础。所以说EM算法扩展的VBEM算法,就是Hinton和Jordan共同发力的部分。

Hinton曾在采访中,不无感慨的说到, 他当时研究VB和EM算法的关系的时候, 主动去请教当时的EM算法的大佬们, 结果那些人说Hinton是异想天开,神经有问题。 但是最终, 他还是突破重围, 搞定了VBEM算法,打下了VB世界最闪光的那盏灯。老爷子真心不容易! 如果想切实深入到VB的世界, 我推荐Daphne Koller的神书“Probabilistic Graphical Models: Principles and Techniques”, 尤其其中的第8章:The Exponential Family 和第19章 Partially Observed Data。 这两章几乎是Hinton对VBEM算法研究的高度浓缩。 国内机器学习牛人王飞跃老师, 率领各路弟子花了5年时间翻译了这本神书!所以有中文版, 买了,反复阅读8、19章,要的!

为什么无监督深度学习突出成果都是Hinton和Jordan家的?

无监督深度学习,除了强化学习,主要包括BM、自动编码器AE和GAN领域。 1)这些领域中的DBN和DBM是Hinton搞的。2)AE中的经典,VAE是DP Kingma和M Welling搞得。 DP Kingma硕士导师是LeCun,LeCun的博士后导师是Hinton,并且Welling的博士后导师是Hinton。 3)而GAN是Ian Goodfellow和Yoshua Bengio的杰作, Goodfellow是Bengio的学生, 而Bengio的博士后导师是Jordan。 一句话, 无监督深度学习的经典模型几乎全是Hinton和Jordan家的。 为什么? 因为能彻底理解EM算法到深不见底的人非Hinton和Jordan莫属。

你现在明白彻底理解EM算法的重要性了吧? 下面我浅薄的纵向理解(忽略EM的各种变种的横向)EM算法的9层境界,再回头反思一下Hinton和Jordan等会对EM算法的理解到何种程度, 简直叹而观止!

EM算法理解的九层境界

  1. EM 就是 E + M
  2. EM 是一种局部下限构造
  3. K-Means是一种Hard EM算法
  4. 从EM 到 广义EM
  5. 广义EM的一个特例是VBEM
  6. 广义EM的另一个特例是WS算法
  7. 广义EM的再一个特例是Gibbs抽样算法
  8. WS算法是VAE和GAN组合的简化版
  9. KL距离的统一

第一层境界, EM算法就是E 期望 + M 最大化

最经典的例子就是抛3个硬币,跑I硬币决定C1和C2,然后抛C1或者C2决定正反面, 然后估算3个硬币的正反面概率值。

这个例子为什么经典, 因为它告诉我们,当存在隐变量I的时候, 直接的最大似然估计无法直接搞定。 什么是隐变量?为什么要引入隐变量? 对隐变量的理解是理解EM算法的第一要义!Chuong B Do & Serafim Batzoglou的Tutorial论文“What is the expectation maximization algorithm?”对此有详细的例子进行分析。

通过隐变量,我们第一次解读了EM算法的伟大!突破了直接MLE的限制(不详细解释了)。

至此, 你理解了EM算法的第一层境界,看山是山。

第二层境界, EM算法就一种局部下限构造

如果你再深入到基于隐变量的EM算法的收敛性证明, 基于log(x)函数的Jensen不等式构造, 我们很容易证明,EM算法是在反复的构造新的下限,然后进一步求解。

所以,先固定当前参数, 计算得到当前隐变量分布的一个下届函数, 然后优化这个函数, 得到新的参数, 然后循环继续。

也正是这个不停的构造下限的思想未来和VB方法联系起来了。 如果你理解了这个, 恭喜你, 进入理解EM算法的第二层境界, 看山看石。

第三层境界, K-均值方法是一种Hard EM算法

在第二层境界的基础上, 你就能随意傲游EM算法用到GMM和HMM模型中去了。 尤其是对GMM的深入理解之后, 对于有隐变量的联合概率,如果利用高斯分布代入之后: 

很容易就和均方距离建立联系:

但是,能不能说K-均值就是高斯分布的EM算法呢?不是, 这里虽然拓展到了相同的距离公式, 但是背后逻辑还是不一样, 不一样在哪里呢?K-均值在讨论隐变量的决定时候,用的是dirac delta 分布, 这个分布是高斯分布的一种极限。

如果你觉得这个扩展不太好理解, 那么更为简单直观的就是, k-均值用的hard EM算法, 而我们说的EM算法是soft EM算法。 所谓hard 就是要么是,要么不是0-1抉择。 而Soft是0.7比例是c1,0.3比例是c2的情况。

那么充分理解了k-均值和EM算法本身的演化和差异有什么帮助呢?让你进一步理解到隐变量是存在一种分布的。

如果你理解了这个, 恭喜你, 进入理解EM算法的第三层境界, 看山看峰。

第四层境界,EM 是 广义EM的特例

通过前3层境界, 你对EM算法的理解要跨过隐变量, 进入隐分布的境界。 如果我们把前面的EM收敛证明稍微重复一下,但是引入隐分布。

这样我们把Jensen不等收右边的部分定义为自由能(如果你对自由能有兴趣,请参考“给能量以自由吧!”,如果没有兴趣, 你就视为一种命名)。 那么E步骤是固定参数优化隐分布, M步骤是固定隐分布优化参数,这就是广义EM算法了。

有了广义EM算法之后, 我们对自由能深入挖掘, 发现自由能和似然度和KL距离之间的关系:

所以固定参数的情况下, 那么只能最优化KL距离了, 那么隐分布只能取如下分布:

而这个在EM算法里面是直接给出的。 所以EM算法是广义EM算法的天然最优的隐分布情况。 但是很多时候隐分布不是那么容易计算的!

前面的推理虽然很简单, 但是要理解到位真心不容易, 首先要深入理解KL距离是如何被引入的?

其次要理解, 为什么传统的EM算法, 不存在第一个最优化?因为在没有限制的隐分布(天然情况下)情况下, 第一个最优就是要求:

而这个隐分布, EM算法里面是直接给出的,而不是让你证明得到的。

这样, 在广义EM算法中,你看到两个优化步骤,我们进入了两个优化步骤理解EM算法的境界了。

如果你理解了这个, 恭喜你, 进入理解EM算法的第四层境界, 有水有山。

第五层境界,广义EM的一个特例是VBEM

在隐分布没有限制的时候, 广义EM算法就是EM算法, 但是如果隐分布本身是有限制的呢?譬如有个先验分布的限制, 譬如有计算的限制呢?

例如先验分布的限制:从pLSA到LDA就是增加了参数的先验分布!

例如计算上的限制:mean-field计算简化的要求,分量独立。

诸如此类限制, 都使得广义EM里面的第一步E优化不可能达到无限制最优, 所以KL距离无法为0。

基于有限制的理解, 再引入模型变分的思想, 根据模型m的变化, 对应参数和隐变量都有相应的分布:

并且满足分布独立性简化计算的假设:

在变分思想下, 自由能被改写了:

这样我们就得到了VBEM算法了:

如果你理解了这个, 恭喜你, 进入理解EM算法的第五层境界, 水转山回。

第六层境界,广义EM的另一个特例是WS算法

Hinton老爷子搞定VBEM算法后, 并没有停滞, 他在研究DBN和DBM的Fine-Tuning的时候, 提出了Wake-Sleep算法。 我们知道在有监督的Fine-Tuning可以使用BP算法, 但是无监督的Fine-Tuning,使用的是Wake-Sleep算法。

就是这个WS算法,也是广义EM算法的一种特例。 WS算法分为认知阶段和生成阶段。

在前面自由能里面,我们将KL距离引入了, 这里刚好这两个阶段分别优化了KL距离的两种形态。 固定P优化Q,和固定Q优化P。

所以当我们取代自由能理解, 全部切换到KL距离的理解, 广义EM算法的E步骤和M步骤就分别是E投影和M投影。 因为要求KL距离最优, 可以等价于垂直。 而这个投影, 可以衍生到数据D的流形空间, 和模型M的流形空间。

所以你认同WS算法是一种广义EM算法(GEM)之后, 基于KL距离再认识GEM算法。 引入了数据流形和模型流形。 引入了E投影和M投影。

不过要注意的wake识别阶段对应的是M步骤, 而sleep生成阶段对应的E步骤。 所以WS算法对应的是广义ME算法。 

如果你理解了这个, 恭喜你, 进入理解EM算法的第六层境界, 山高水深。

第七层境界,广义EM的再一个特例是Gibbs Sampling

其实,前面基于KL距离的认知, 严格放到信息理论的领域, 对于前面E投影和M投影都有严格的定义。 M投影的名称是类似的,但是具体是moment projection,但是E投影应该叫I投影,具体是information projection。 

上面这种可能不太容易体会到M投影和I投影的差异, 如果再回到最小KL距离,有一个经典的比较。 可以体会M投影和I投影的差异。 上面是I投影,只覆盖一个峰。 下面是M投影, 覆盖了两个峰。

当我们不是直接计算KL距离, 而是基于蒙特卡洛抽样方法来估算KL距离。

有兴趣对此深入的,可以阅读论文“On Monte Carlo methods for estimating ratios of normalizing constants”

这时候, 广义EM算法,就是Gibbs Sampling了。 所以Gibbs Sampling,本质上就是采用了蒙特卡洛方法计算的广义EM算法。

所以, 如果把M投影和I投影看成是一个变量上的最小距离点,那么Gibbs Sampling和广义EM算法的收敛过程是一致的。

VAE的发明者,Hinton的博士后, Max Welling在论文“Bayesian K-Means as a “Maximization-Expectation” Algorithm”中, 对这种关系有如下很好的总结!

另外, Zoubin Ghahramani, Jordan的博士, 在“Factorial Learning and the EM Algorithm”等相关论文也反复提到他们之间的关系。

这样, 通过广义EM算法把Gibbs Sampling和EM, VB, K-Means和WS算法全部联系起来了。 有了Gibbs Sampling的背书, 你是不是能更好的理解, 为什么WS算法可以是ME步骤,而不是EM的步骤呢?另外,我们知道坐标下降Coordinate Descent也可以看成一种Gibbs Sampling过程, 如果有人把Coordinate Descent和EM算法联系起来, 你还会觉得奇怪么?

现在我们发现VB和Gibbs Sampling都可以放到广义EM的大框架下, 只是求解过程一个采用近似逼近, 一个采用蒙特卡洛采样。 有了EM算法和Gibbs Sampling的关系, 现在你理解, 为什么Hinton能够发明CD算法了么? 细节就不展开了。

如果你理解了这个, 恭喜你, 进入理解EM算法的第七层境界, 山水轮回。

第八层境界,WS算法是VAE和GAN组合的简化版

Jordan的弟子邢波老师,他的学生胡志挺,发表了一篇文章, On Unifying Deep Generative Models,试图通过WS算法,统一对VAE和GAN的理解。 

对VAE的理解, 变了加了正则化的KL距离, 而对于GAN的理解变成了加Jensen–Shannon 散度。 所以, 当我们把广义EM算法的自由能, 在WS算法中看成KL散度, 现在看成扩展的KL散度。 对于正则化扩展, 有很多类似论文, “Mode Regularized Generative Adversarial Networks”, “Stabilizing Training of Generative Adversarial Networks through Regularization” 有兴趣可以读读。

所以对于VAE,类比WS算法的Wake认知阶段, 不同的是在ELBO这个VBEM目标的基础上加了KL散度作为正则化限制。 再应用再参数化技巧实现了VAE。

而对应到GAN,类比Sleep阶段,正则化限制换了JSD距离, 然后目标KL距离也随着不同GAN的变体也可以变化。 

所以, VAE和GAN都可以理解为有特殊正则化限制的Wake-Sleep步骤, 那么组合起来也并不奇怪。

这就是为什么那么多论文研究如何组合VAE/GAN到同一个框架下面去。目前对这方面的理解还在广泛探讨中。

如果你理解了这个, 恭喜你, 进入理解EM算法的第八层境界, 水中有水、山外有山。 

第九层境界,KL距离的统一

Jordan 大佬的一片论文, 开启了KL距离的统一, “On surrogate loss functions and f-divergences”。 里面对于所谓的正反KL距离全部统一到 f 散度的框架下面。 Jordan 首先论述了对于损失函数统一的Margin理论的意义。

然后把这些损失函数也映射到 f 散度:

然后微软的 Sebastian Nowozin, 把 f-散度扩展到GAN “f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization”。

然后对正反KL散度也做了一次统一。

对于 f-散度的理解离不开对Fenchel对偶的理解(参考“走近中神通Fenchel”)。

除了f-散度, 还有人基于bregman散度去统一正反KL散度的认知。 KL散度就是香农熵的bregman散度。

而Bregman散度本身是基于一阶泰勒展开的一种偏离度的度量。

然后再基于Bregman距离去研究最小KL投影, 函数空间采用香农熵(参考“信息熵的由来”)。

无论f-散度还是bregman散度对正反KL距离的统一, 之后的广义EM算法, 都会变得空间的最优投影的交替出现。 或许广义EM算法也成了不同流形空间上的坐标梯度下降算法而已coodinate descent。

如果你理解了这个, 恭喜你, 进入理解EM算法的第九层境界,山水合一。

小结

这里浅薄的介绍了理解EM算法的9层境界,托名Hinton和Jordan,着实是因为佩服他们俩和各自的弟子们对EM算法,甚至到无监督深度学习的理解和巨大贡献。想来Hinton和Jordan对此必定会有更为深刻的理解, 很好奇会到何种程度 。。。 最后依然好奇, 为啥只有他们两家的子弟能够不停的突破无监督深度学习?Hinton 老仙说, 机器学习的未来在于无监督学习!

原文发布时间为:2017-12-15

本文作者:史春奇

原文链接:EM算法的九层境界:​Hinton和Jordan理解的EM算法

时间: 2024-10-24 14:15:55

EM算法的九层境界:​Hinton和Jordan理解的EM算法的相关文章

神经网络算法的输入层节点有限制吗?

问题描述 神经网络算法的输入层节点有限制吗? 求大神告知神经网络的输入层中输入节点是不是不能太多,比如200个以上?跪求大神解答,在线等!!!

有算法能够遍历无向图中所有连通顶点的组合的算法么

问题描述 有算法能够遍历无向连通图中所有子连通图的算法么 解决方案 http://topic.csdn.net/u/20080621/09/914e6abf-9d77-420e-a89b-9924f2d3fb8b.html

《Mahout算法解析与案例实战》一一1.2 Mahout算法库

1.2 Mahout算法库 Mahout自从2008年兴起以来,发展迅速,从最开始的只有推荐系统到现在的多个算法模块,涵盖了很多行业.这些模块有聚类算法.分类算法.协同过滤算法和频繁项集挖掘算法,每个模块都含有一个或者几个不同的实现算法,下面分别进行介绍.1.2.1 聚类算法 中国有句古谚语"物以类聚,人以群分".一个聚类即是一类物体的集合,集合中的个体是相似的,不同聚类中的个体是不相似的.聚类的二维图如图1-1所示. 图1-1 聚类二维图 针对上面的数据,我们可以很容易地把它们分为右

c++-扫除算法求逆矩阵是神马!!!!扫除算法求逆矩阵是神马?

问题描述 扫除算法求逆矩阵是神马!!!!扫除算法求逆矩阵是神马? 代码怎么写,扫除算法求逆矩阵怎么写!!!谢谢啦!!!哪位大神指导我一下!!! 解决方案 矩阵求逆的算法扫除算法(sweep)求逆矩阵矩阵求逆的快速算法---------------------- 解决方案二: lz可参考 : http://blog.csdn.net/zmazon/article/details/8241348

再理解协同过滤算法

协同过滤算法是推荐系统中最古老,也是最简单高效的推荐算法.简单说协同过滤就是根据以往的用户产生的数据分析,对用户的新行为进行匹配分析来给用户推荐用户最有可能感兴趣的内容. 协同过滤算法是为了解决长尾现象,也就是说推荐系统是为了解决长尾现象而诞生的.因为在之前在有限的空间(如:书店的书架.服装店的衣架.商店的货架.网页的展示区域)只能摆有限的物品进行展示,造成大量的非热门物品很难进入人们的视野,也就无法产生任何价值.研究表明挖掘长尾内容,产生的效益很可能会超过头部.因为网络.计算机的发展使关注大数

C#数据结构与算法揭秘九

这节,我们说一说二叉树常见的应用的场景.呵呵.............. 定义一个哈夫曼树,首先,要高清楚什么是哈夫曼树.所谓哈夫曼树是又叫最优二叉树,指的是对于一组具有确定权值的叶子结点的具有最小带权路径长度的二叉树. 介绍哈夫曼树的一些基本概念. (1)路径(Path):从树中的一个结点到另一个结点之间的分支构成这两个结点间的路径. (2)路径长度(Path Length):路径上的分支数. (3)树的路径长度(Path Length of Tree):从树的根结点到每个结点的路径长度之和.

建模算法(九)——拟合 (转)

一.线性最小二乘法 1.基本思路 令,其r(x)是事先选定的一组线性无关的函数.ak是待定系数.然后拟合的准则就是使得yi与f(xi)的距离的平方和最小,称之为最小二乘准则 2.系数的确定 ,要使距离的平方和最小,那只要取得,使得取到极值,就可以解除待定系数ak,记 然后线性方程组为,所以当R列满秩,R'R是可逆的,所以方程组有唯一解 3.函数r(x)的选取 一般是直观的去判断用什么样的曲线.然后下面有一般常用的曲线 一般需要做变量代换,化为对a1和a2的线性函数. 然后可以多选几个r(x),然

5分钟理解一致性 hash 算法

转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179     一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用.        一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义

《大数据算法》一3.5 寻找频繁元素的随机算法

3.5 寻找频繁元素的随机算法 本节重新研究3.3节中讨论的问题,提出寻找频繁元素的随机算法.Misra-Gries算法通过扫描数据一次提供足够的信息,然后通过第二次扫描数据解决频繁元素发现问题,即扫描数据第一次过程中Misra-Gries算法计算一个数据结构,对于j∈[n]该数据结构可以获得其频率fj的足够准确估计fj.本小节提出另外两个频率估计的随机算法. 3.5.1 略图法 1.略图和线性略图 在处理数据流σ的过程中,令表示Misra-Gries算法中所需的数据结构.这种数据结构的一个缺点