em算法java代码 em算法计算题( 二 )


然而对于计算后面的model部分的积分需要知道模型的概率分布,评估模型的概率分布需要计算一个标准化的分母,难以计算 。因此就需要依赖近似,由于p(v|h),p(h|v)都是可以分析公式表达,因此采用Gibbs sampler来数值逼近积分 。当然后来Hinton G E. Training products of experts by minimizing contrastive divergence[J].发现对于这一部分,Gibbs sampler 不需要多部的迭代,一次迭代就可以了 , 从而使的训练RBM的时间代价大大降低了,后来(A fast learning algorithm for deep belief nets , 2006)提出了贪婪式的训练多层DBN(stacked RBM) , 每层都是训练RBM,从而使的深度学习焕发新的活力(Reducing the dimensionality of data with neural networks,2006) 。
4.2 贝叶斯线性回归Bayesian Linear Regression BLR
这个模型是最为基础的,这个模型在PRML中,利用直接推断 , 变分法推断,MCMC采样都是可以做的em算法java代码;因此便于比较不同算法得到的结果 。之前,本来打算在这里以LDA主题模型来举例,虽然LDA的EM算法,变分法,以及Gibbs sampling 都是可以做的 , 但是模型太复杂,所以果断放弃了 , 以BLR模型作为例子说明 。
BLR是一个有向图模型,是一个典型的贝叶斯网络(虽然简单一点) 。如果以一个贝叶斯的视角来看 , 其中的隐变量便是线性参数w,以及各种超参数α,β.....,在贝叶斯的处理视角之下,这些都会赋予一个先验分布 。当然 , 有些模型书中也提到,有不同层次上的贝叶斯网络 。有的是仅仅对参数w赋予一个先验分布,而对于其他的参数(hyperparameter)仅仅是作为模型参数,就是假设是一个渡固定的数值,然后再通过learn evidence function,其实说白了就是MLE,来寻找最佳的超参数α,β.... 。相比于把线性参数w,以及各种超参数α,β.....全部作为放入到贝叶斯网络中 , 这样的做法显然简化了模型 , 降低了贝叶斯网络的复杂性 。这个技巧也在多处的论文中出现 。
从隐变量的角度来看 , 由于BLR模型相对简单,其中并没有随机隐变量,仅仅是一些参数w,以及各种超参数α,β..的环境隐变量 。
4.3 序列模型:隐马尔可夫链HMM与条件随机CRF
隐马尔可夫链HMM这个模型是一个有向图模型,典型的贝叶斯网络 , 只不过这个网络是一个线性链(linear chains),因此可以进行分析上推断,要知道对于一般网络,并不存在通用的实用的inference算法 。因为HMM是一个有向图模型 。但是(1)在PRML书中,以及李航《统计学习》中并没有把其当作一个贝叶斯网络来进行处理,对所有的参数比如发射概率,转移矩阵概率都是模型的参数,而不是通过赋予一个先验分布,从而纳入到贝叶斯网络框架之中 。因此对于模型而言,关键的便是通过MLE最大化P(X)来学习模型的参数,因为这里的有隐变量,因此在PRML,以及《统计学习》中都是通过EM算法做的 。(2)其实 , HMM是一个典型的线性链式的贝叶斯网络,因此对于通过对其参数赋予先验分布,进而从贝叶斯的角度,来对模型进行推断是一个非常自然的想法 。我在论文Sharon Goldwater, Thomas L Griffiths 论文 A Fully Bayesian Approach to Unsupervised Part-of-Speech Tagging,中作者采用了Bayesian HMM 重新做了POS任务 。作者在文中还详细罗列了Bayesian HMM 相比普通的HMM的优点:(a)可以使用先验知识,例如在POS中语言的认知可以加入到先验分布之中,而且(b)贝叶斯的推断 , 是通过一个后验分布推断参数,相比MLE点估计 , 会更加准确 。对于贝叶斯的推断,作者在文中使用了Gibbs sample抽样实现了数值采样推断模型 。最后作者比较了Gibbs sample+Bayesian HMM和普通的HMM +EM , 在POS任务效果更加好 。另外 , 对于本论文的作者Thomas L Griffiths , 第一次接触这个学者,是在读Gibbs sample in LDA这篇文章,作者推导了LDA的各种的条件分布,然后基于Gibbs sample 进行采样,记得Github上有Java版的实现代码,其推导十分严谨 , 并且有代码辅助 , 是学习LDA的一个捷径 。在近似推断方面可以看出Thomas L Griffiths是一个坚定的数值采样学派,而LDA的开山之作《Latent Dirichlet Allocation 》的作者David M. Blei,看了作者部分文章以后,发现这个人是在近似推断方面是一个变分法的坚定学派,在《Latent Dirichlet Allocation 》之中,便是通过变分法进行推断了 , David M. Blei还写了一个关于变分法的入门讲义pdf,网上可以搜到 。所以回看我们概率图视角,做机器学习推断是不可避免的,有的是变分法近似,有的是数值采样近似,也有的是EM算法试一试 。至于选择哪一种,就看你的问题哪一个比较简单了 。但是好像有的人对这些方面各有偏爱 。

推荐阅读