第六层境界,广义EM的另一个特例是WS算法
Hinton老爷子搞定VBEM算法后, 并没有停滞, 他在研究DBN和DBM的Fine-Tuning的时候, 提出了Wake-Sleep算法。 我们知道在有监督的Fine-Tuning可以使用BP算法, 但是无监督的Fine-Tuning,使用的是Wake-Sleep算法。
<img src="https://pic1.zhimg.com/50/v2-286f9939e821cd3f0632806738ab01a0_hd.jpg" data-caption="" data-size="small" data-rawwidth="1196" data-rawheight="532" class="origin_image zh-lightbox-thumb" width="1196" data-original="https://pic1.zhimg.com/v2-286f9939e821cd3f0632806738ab01a0_r.jpg"/>
就是这个WS算法,也是广义EM算法的一种特例。 WS算法分为认知阶段和生成阶段。
<img src="https://pic4.zhimg.com/50/v2-3cedb136d8aa7808071ffccb0ae18217_hd.jpg" data-caption="" data-size="small" data-rawwidth="1300" data-rawheight="726" class="origin_image zh-lightbox-thumb" width="1300" data-original="https://pic4.zhimg.com/v2-3cedb136d8aa7808071ffccb0ae18217_r.jpg"/>
在前面自由能里面,我们将KL距离引入了, 这里刚好这两个阶段分别优化了KL距离的两种形态。 固定P优化Q,和固定Q优化P 。
<img src="https://pic4.zhimg.com/50/v2-ae5fcf55ed247450ce8084ea43b8bc3b_hd.jpg" data-caption="" data-size="small" data-rawwidth="1310" data-rawheight="1010" class="origin_image zh-lightbox-thumb" width="1310" data-original="https://pic4.zhimg.com/v2-ae5fcf55ed247450ce8084ea43b8bc3b_r.jpg"/>
所以当我们取代自由能理解, 全部切换到KL距离的理解, 广义EM算法的E步骤和M步骤就分别是E投影和M投影。 因为要求KL距离最优, 可以等价于垂直。 而这个投影, 可以衍生到数据D的流形空间, 和模型M的流形空间 。
<img src="https://pic1.zhimg.com/50/v2-468b515b4d26ebc4765f82bf3ed1c3bf_hd.jpg" data-caption="" data-size="normal" data-rawwidth="464" data-rawheight="406" class="origin_image zh-lightbox-thumb" width="464" data-original="https://pic1.zhimg.com/v2-468b515b4d26ebc4765f82bf3ed1c3bf_r.jpg"/>
所以你认同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 。
<img src="https://pic3.zhimg.com/50/v2-bb16f97e3b82fb113b8ba475b6e51164_hd.jpg" data-caption="" data-size="small" data-rawwidth="666" data-rawheight="448" class="origin_image zh-lightbox-thumb" width="666" data-original="https://pic3.zhimg.com/v2-bb16f97e3b82fb113b8ba475b6e51164_r.jpg"/>
上面这种可能不太容易体会到M投影和I投影的差异, 如果再回到最小KL距离,有一个经典的比较。 可以体会M投影和I投影的差异。 上面是I投影,只覆盖一个峰。 下面是M投影, 覆盖了两个峰。
<img src="https://pic4.zhimg.com/50/v2-891a8c795f084923d7d913936af335ed_hd.jpg" data-caption="" data-size="small" data-rawwidth="1316" data-rawheight="780" class="origin_image zh-lightbox-thumb" width="1316" data-original="https://pic4.zhimg.com/v2-891a8c795f084923d7d913936af335ed_r.jpg"/>
当我们不是直接计算KL距离, 而是基于蒙特卡洛抽样方法来估算KL距离 。
<img src="https://pic1.zhimg.com/50/v2-6e39522a095e0d417634fd9d84253531_hd.jpg" data-caption="" data-size="small" data-rawwidth="1012" data-rawheight="716" class="origin_image zh-lightbox-thumb" width="1012" data-original="https://pic1.zhimg.com/v2-6e39522a095e0d417634fd9d84253531_r.jpg"/>
有兴趣对此深入的,可以阅读论文“On Monte Carlo methods for estimating ratios of normalizing constants”
这时候, 广义EM算法,就是Gibbs Sampling了。 所以Gibbs Sampling,本质上就是采用了蒙特卡洛方法计算的广义EM算法。
<img src="https://pic3.zhimg.com/50/v2-934635b34223baace727b634aa50c13f_hd.jpg" data-caption="" data-size="small" data-rawwidth="695" data-rawheight="664" class="origin_image zh-lightbox-thumb" width="695" data-original="https://pic3.zhimg.com/v2-934635b34223baace727b634aa50c13f_r.jpg"/>
所以, 如果把M投影和I投影看成是一个变量上的最小距离点,那么Gibbs Sampling和广义EM算法的收敛过程是一致的 。
<img src="https://pic2.zhimg.com/50/v2-58cb1338ae2e5dee38cce4b2ef44e4e8_hd.jpg" data-caption="" data-size="small" data-rawwidth="1046" data-rawheight="828" class="origin_image zh-lightbox-thumb" width="1046" data-original="https://pic2.zhimg.com/v2-58cb1338ae2e5dee38cce4b2ef44e4e8_r.jpg"/>
VAE的发明者,Hinton的博士后, Max Welling在论文“Bayesian K-Means as a “Maximization-Expectation” Algorithm”中, 对这种关系有如下很好的总结!
<img src="https://pic2.zhimg.com/50/v2-c09456c8096cf7625b6292e2142dbfd3_hd.jpg" data-caption="" data-size="small" data-rawwidth="1232" data-rawheight="560" class="origin_image zh-lightbox-thumb" width="1232" data-original="https://pic2.zhimg.com/v2-c09456c8096cf7625b6292e2142dbfd3_r.jpg"/>
另外, 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算法联系起来, 你还会觉得奇怪么?
<img src="https://pic4.zhimg.com/50/v2-c2e9aabea1d26cb927d553dd8e16b339_hd.jpg" data-caption="" data-size="small" data-rawwidth="958" data-rawheight="624" class="origin_image zh-lightbox-thumb" width="958" data-original="https://pic4.zhimg.com/v2-c2e9aabea1d26cb927d553dd8e16b339_r.jpg"/>
现在我们发现VB和Gibbs Sampling都可以放到广义EM的大框架 下, 只是求解过程一个采用近似逼近, 一个采用蒙特卡洛采样。 有了EM算法和Gibbs Sampling的关系, 现在你理解, 为什么Hinton能够发明CD算法 了么? 细节就不展开了。
<img src="https://pic4.zhimg.com/50/v2-de39e478652bd2fd7231e33722bd153f_hd.jpg" data-caption="" data-size="small" data-rawwidth="1192" data-rawheight="284" class="origin_image zh-lightbox-thumb" width="1192" data-original="https://pic4.zhimg.com/v2-de39e478652bd2fd7231e33722bd153f_r.jpg"/>
第八层境界,WS算法是VAE和GAN组合的简化版
Jordan的弟子邢波老师,他的学生胡志挺,发表了一篇文章, On Unifying Deep Generative Models,试图通过WS算法,统一对VAE和GAN的理解。
<img src="https://pic3.zhimg.com/50/v2-bce08a8d1984cb36e2f699eb5b4425d2_hd.jpg" data-caption="" data-size="small" data-rawwidth="1826" data-rawheight="902" class="origin_image zh-lightbox-thumb" width="1826" data-original="https://pic3.zhimg.com/v2-bce08a8d1984cb36e2f699eb5b4425d2_r.jpg"/>
对
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 。
<img src="https://pic3.zhimg.com/50/v2-856f23800b7806346d32617ffac58dad_hd.jpg" data-caption="" data-size="small" data-rawwidth="1226" data-rawheight="742" class="origin_image zh-lightbox-thumb" width="1226" data-original="https://pic3.zhimg.com/v2-856f23800b7806346d32617ffac58dad_r.jpg"/>
而对应到GAN,类比Sleep阶段,正则化限制换了JSD距离, 然后目标KL距离也随着不同GAN的变体也可以变化 。
所以, VAE和GAN都可以理解为有特殊正则化限制的Wake-Sleep步骤, 那么组合起来也并不奇怪。
<img src="https://pic1.zhimg.com/50/v2-06d46afb8aeed812b4e90f7befbe56cd_hd.jpg" data-caption="" data-size="small" data-rawwidth="2066" data-rawheight="246" class="origin_image zh-lightbox-thumb" width="2066" data-original="https://pic1.zhimg.com/v2-06d46afb8aeed812b4e90f7befbe56cd_r.jpg"/>
这就是为什么那么多论文研究如何组合VAE/GAN到同一个框架下面去。目前对这方面的理解还在广泛探讨中。
如果你理解了这个, 恭喜你, 进入理解EM算法的第八层境界, 水中有水、山外有山 。
第九层境界,KL距离的统一
Jordan 大佬的一片论文, 开启了KL距离的统一, “On surrogate loss functions and f-divergences”。 里面对于所谓的正反KL距离全部统一到 f 散度的框架下面。 Jordan 首先论述了对于损失函数统一的Margin理论的意义 。
<img src="https://pic2.zhimg.com/50/v2-c5cb9b042bca75db22ee685b9a0ad05d_hd.jpg" data-caption="" data-size="small" data-rawwidth="1258" data-rawheight="924" class="origin_image zh-lightbox-thumb" width="1258" data-original="https://pic2.zhimg.com/v2-c5cb9b042bca75db22ee685b9a0ad05d_r.jpg"/>
然后把这些损失函数也映射到 f 散度 :
然后微软的 Sebastian Nowozin, 把 f-散度扩展到GAN “f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization”。
然后对
正反KL散度也做了一次统一 。
对于 f-散度的理解离不开对Fenchel对偶的理解。
<img src="https://pic4.zhimg.com/50/v2-8baaac19cab3f150c684870f57ddbbab_hd.jpg" data-caption="" data-size="small" data-rawwidth="990" data-rawheight="140" class="origin_image zh-lightbox-thumb" width="990" data-original="https://pic4.zhimg.com/v2-8baaac19cab3f150c684870f57ddbbab_r.jpg"/>
除了f-散度, 还有人基于bregman散度去统一正反KL散度的认知。 KL散度就是香农熵的bregman散度。
<img src="https://pic4.zhimg.com/50/v2-1a59a80f718dc7d4c35ea19c456ead64_hd.jpg" data-caption="" data-size="small" data-rawwidth="832" data-rawheight="530" class="origin_image zh-lightbox-thumb" width="832" data-original="https://pic4.zhimg.com/v2-1a59a80f718dc7d4c35ea19c456ead64_r.jpg"/>
而Bregman散度本身是基于一阶泰勒展开的一种偏离度的度量。
然后再基于Bregman距离去研究最小KL投影, 函数空间采用香农熵(参考“信息熵的由来 ”)。
<img src="https://pic3.zhimg.com/50/v2-0b3d448679d2e1d644fc8f4e6f121349_hd.jpg" data-caption="" data-size="small" data-rawwidth="852" data-rawheight="412" class="origin_image zh-lightbox-thumb" width="852" data-original="https://pic3.zhimg.com/v2-0b3d448679d2e1d644fc8f4e6f121349_r.jpg"/>
无论f-散度还是bregman散度对正反KL距离的统一, 之后的广义EM算法, 都会变得空间的最优投影的交替出现 。 或许广义EM算法也成了不同流形空间上的坐标梯度下降算法而已coodinate descent。
如果你理解了这个, 恭喜你, 进入理解EM算法的第九层境界,山水合一 。
小结
这里浅薄的介绍了理解EM算法的9层境界,托名Hinton和Jordan,着实是因为佩服他们俩和各自的弟子们对EM算法,甚至到无监督深度学习的理解和巨大贡献。想来Hinton和Jordan对此必定会有更为深刻的理解, 很好奇会到何种程度 。。。 最后依然好奇, 为啥只有他们两家的子弟能够不停的突破无监督深度学习?Hinton 老仙说, 机器学习的未来在于无监督学习!