标签归档:EM

PRML读书会第十一章 Sampling Methods

Deep Learning Specialization on Coursera

PRML读书会第十一章 Sampling Methods

主讲人 网络上的尼采

(新浪微博: @Nietzsche_复杂网络机器学习

网络上的尼采(813394698) 9:05:00
今天的主要内容:Markov Chain Monte Carlo,Metropolis-Hastings,Gibbs Sampling,Slice Sampling,Hybrid Monte Carlo。

上一章讲到的平均场是统计物理学中常用的一种思想,将无法处理的复杂多体问题分解成可以处理的单体问题来近似,变分推断便是在平均场的假设约束下求泛函L(Q)极值的最优化问题,好处在于求解过程中可以推出精致的解析解。变分是从最优化的角度通过坐标上升法收敛到局部最优,这一章我们将通过计算从动力学角度见证Markov Chain Monte Carlo收敛到平稳分布。

先说sampling的原因,因为统计学中经常会遇到对复杂的分布做加和与积分,这往往是intractable的。MCMC方法出现后贝叶斯方法才得以发展,因为在那之前对不可观测变量(包括隐变量和参数)后验分布积分非常困难,对于这个问题上一章变分用的解决办法是通过最优化方法寻找一个和不可观测变量后验分布p(Z|X)近似的分布,这一章我们看下sampling的解决方法,举个简单的例子:比如我们遇到这种形式,z是个连续随机变量,p(z)是它的分布,我们求f(z)的期望。如果我们从p(z)中sampling一个数据集z(l),然后再求个平均来近似f(z)的期望so,问题就解决了,关键是如何从p(z)中做无偏的sampling。
为了说明sampling的作用,我们先举个EM的例子,最大似然计算中求分布的积分问题,我们在第九章提到了,完整数据的log似然函数是对隐变量Z的积分:
继续阅读

PRML读书会第十章 Approximate Inference

Deep Learning Specialization on Coursera

PRML读书会第十章 Approximate Inference

主讲人 戴玮

(新浪微博: @戴玮_CASIA

Wilbur_中博(1954123) 20:02:04

我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望、或者计算边缘概率分布、条件概率分布等等。 比如前面在第九章尼采兄讲EM时,我们就计算了对数似然函数在隐变量后验分布下的期望。这些任务往往需要积分或求和操作。 但在很多情况下,计算这些东西往往不那么容易。因为首先,我们积分中涉及的分布可能有很复杂的形式,这样就无法直接得到解析解,而我们当然希望分布是类似指数族分布这样具有共轭分布、容易得到解析解的分布形式;其次,我们要积分的变量空间可能有很高的维度,这样就把我们做数值积分的路都给堵死了。因为这两个原因,我们进行精确计算往往是不可行的。
为了解决这一问题,我们需要引入一些近似计算方法。

近似计算有随机和确定两条路子。随机方法也就是MCMC之类的采样法,我们会在讲第十一章的时候专门讲到,而确定近似法就是我们这一章讲的变分。变分法的优点主要是:有解析解、计算开销较小、易于在大规模问题中应用。但它的缺点是推导出想要的形式比较困难。也就是说,人琢磨的部分比较复杂,而机器算的部分比较简单。这和第十一章的采样法的优缺点恰好有互补性。所以我们可以在不同的场合应用变分法或采样法。这里我的一个问题是:是否可以结合二者的优点,使得人也不用考虑太多、机器算起来也比较简单?
变分法相当于把微积分从变量推广到函数上。我们都知道,微积分是用来分析变量变化、也就是函数性质的,这里函数定义为f: x -> f(x),而导数则是df/dx;与之相对,变分用到了泛函的概念:F: f -> F(f),也就是把函数映射为某个值,而相应地,也有导数dF/df,衡量函数是如何变化的。比如我们熟悉的信息论中的熵,就是把概率分布这个函数映射到熵这个值上。和微积分一样,我们也可以通过导数为0的条件求解无约束极值问题,以及引入拉格朗日乘子来求解有约束极值问题。比如说,我们可以通过概率分布积分为1的约束,求解最大熵的变分问题。PRML的附录D和E有比较详细的解释,我们后面也还会看到,这里就不多说了。
变分法这名字听起来比较可怕,但它的核心思想,就是从某个函数空间中找到满足某些条件或约束的函数。我们在统计推断当中用到的变分法,实际上就是用形式简单的分布,去近似形式复杂、不易计算的分布,这样再做积分运算就会容易很多。 比如,我们可以在所有高斯分布当中,选一个和目标分布最相似的分布,这样后面做进一步计算时就容易获得解析解。此外,我们还可以假设多元分布的各变量之间独立,这样积分的时候就可以把它们变成多个一元积分,从而解决高维问题。这也是最简单的两种近似。
继续阅读

PRML读书会第九章 Mixture Models and EM

Deep Learning Specialization on Coursera

PRML读书会第九章 Mixture Models and EM

主讲人 网络上的尼采

(新浪微博: @Nietzsche_复杂网络机器学习

网络上的尼采(813394698) 9:10:56
今天的主要内容有k-means、混合高斯模型、 EM算法。
对于k-means大家都不会陌生,非常经典的一个聚类算法,已经50多年了,关于clustering推荐一篇不错的survey:

Data clustering: 50 years beyond K-means。k-means表达的思想非常经典,就是对于复杂问题分解成两步不停的迭代进行逼近,并且每一步相对于前一步都是递减的。
k-means有个目标函数 :

假设有k个簇,是第k个簇的均值;每个数据点都有一个向量表示属于哪个簇,rnk是向量的元素,如果点xn属于第k个簇,则rnk是1,向量的其他元素是0。
上面这个目标函数就是各个簇的点与簇均值的距离的总和,k-means要做的就是使这个目标函数最小。 这是个NP-hard问题,k-means只能收敛到局部最优。
继续阅读

概率语言模型及其变形系列-PLSA及EM算法

Deep Learning Specialization on Coursera

本系列博文介绍常见概率语言模型及其变形模型,主要总结PLSA、LDA及LDA的变形模型及参数Inference方法。初步计划内容如下

第一篇:PLSA及EM算法

第二篇:LDA及Gibbs Samping

第三篇:LDA变形模型-Twitter LDA,TimeUserLDA,ATM,Labeled-LDA,MaxEnt-LDA等

第四篇:基于变形LDA的paper分类总结

第五篇:LDA Gibbs Sampling 的JAVA实现

第一篇 PLSA及EM算法

[Update 2012/12/21 为了解决部分朋友反映的网页图片无法显示的问题,更新PDF版本

下载地址 PLSA及EM算法-yangliuy]

前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法。接着我们分析如何运用EM算法估计一个简单的mixture unigram 语言模型和混合高斯模型GMM的参数,最后总结EM算法的一般形式及运用关键点。对于改进PLSA,引入hyperparameter的LDA模型及其Gibbs Sampling参数估计方法放在本系列后面的文章LDA及Gibbs Samping介绍。
继续阅读

理解EM算法

Deep Learning Specialization on Coursera

EM(Expectation-Maximization)算法在机器学习和自然语言处理应用非常广泛,典型的像是聚类算法K-means和高斯混合模型以及HMM(Hidden Markov Model)。笔者觉得讲EM算法最好的就是斯坦福大学Andrew Ng机器学习课的讲课笔记和视频。本文总结性的给出普遍的EM算法的推导和证明,希望能够帮助接触过EM算法但对它不是很明白的人更好地理解这一算法。

EM算法的目标是找出有隐性变量的概率模型的最大可能性解,它分为两个过程E-stepM-stepE-step通过最初假设或上一步得出的模型参数得到后验概率,M-step重新算出模型的参数,重复这个过程直到目标函数值收敛。我们设观察到的变量所组成的向量为[image],所有的隐性变量所组成的向量为[image],模型的参数为[image](一个或多个参数)。在聚类的情况下,[image]是潜在的类,而[image]就是需要分类的数据。我们的目标就是找出模型的参数[image]使得[image]出现的可能性最大,也就是使下面的对数可能性最大化:

[image]

注:这里仿照Andrew Ng 的用法使用[image]而不是[image],因为[image]是模型的参数而不是随机变量。关于为什么要用EM算法而不是不直接通过[image]得出[image],是因为这样可能会出现严重的overfitting (这里不详细说明,请参看Pattern Recognition and Machine Learning一书9.2.1)

假设[image][image]上一个概率分布,所以[image]

[image]

最后一步是根据Jensen不等式[image]如果[image]是凹函数,在这个式子中就是对数函数。[image]就是[image][image]就是[image] [image]是严格的 凹函数的时候,[image]中等号成立的条件是[image]是常数,也就是说在这个特定的式子中[image],满足这个条件加上之前的[image][image]其实就是后验概率[image](参看http://www.stanford.edu/class/cs229/materials.html Lecture notes: The EM Algorithm)。这就是EM算法中E-step的由来。

M-step一般来说就是个就是二次规划的问题,通过[image]得出[image]。这里也就不再赘述。

EM算法其实就是coordinate ascent E-step是将[image]视为常数,选择一个概率分布[image]使得目标函数[image]最大化, M-step就是保持[image]不变,选择[image]使得目标函数[image]最大化,因为每一步的目标函数都比前一步的值大,所以只要目标函数存在最大值,EM算法就会收敛。这个过程用图像表示就是:

E-step找到跟[image](黑色弧线)交于[image][image](蓝色弧线),M-step得到[image]取最大值时的[image],这样下去直到收敛。(此图源于Andrew)