统计学习方法——EM算法

EM算法

也就是期望最大算法。由E—step 和 M—step组成,是一种迭代算法。用于解决隐变量的混合模型的参数估计。

首先用例子来说明一下:

现在一个班里有 50 个男生和 50 个女生,且男女生分开。我们假定男生的身高服从正态分布:,女生的身高则服从另一个正态分布: 。这时候我们可以用极大似然法(MLE),分别通过这 50 个男生和 50 个女生的样本来估计这两个正态分布的参数。

但现在我们让情况复杂一点,就是这 50 个男生和 50 个女生混在一起了。我们拥有 100 个人的身高数据,却不知道这 100 个人每一个是男生还是女生。

这时候情况就有点尴尬,因为通常来说,我们只有知道了精确的男女身高的正态分布参数我们才能知道每一个人更有可能是男生还是女生。但从另一方面去考量,我们只有知道了每个人是男生还是女生才能尽可能准确地估计男女各自身高的正态分布的参数。

这个时候有人就想到我们必须从某一点开始,并用迭代的办法去解决这个问题:我们先设定男生身高和女生身高分布的几个参数(初始值),然后根据这些参数去判断每一个样本(人)是男生还是女生,之后根据标注后的样本再反过来重新估计参数。之后再多次重复这个过程,直至稳定。这个算法也就是 EM 算法。

解释

EM算法的目的,是通过一步步学习,去贴近混合模型中的参数。大致步骤都是先写出完整数据P(X,Z|θ)的log值(观察数据和现有模型来估计参数,然后用这个估计的参数值来计算上述对数似然函数的期望值)接着移动θ,使期望值最大化。网上也有一种解释说使坐标上升法:

途中直线为迭代优化路径,因为每次只优化一个变量,所以可以看到它没走一步都是平行与坐标轴的。

EM 算法类似于坐标上升法,E 步:固定参数,优化 Q;M 步:固定 Q,优化参数。交替将极值推向最大。

EM算法应用:

高斯混合模型和 K-means

发布了28 篇原创文章 · 获赞 2 · 访问量 1001

猜你喜欢

转载自blog.csdn.net/sinat_36118365/article/details/103220375
今日推荐