机器学习笔记 EM算法

基础

什么是最大似然?

非常好的EM算法的通俗解释


为什么需要EM算法

我们遇到的大多数问题是这样的:

A、已知一堆观测数据X
B、和数据服从的统计模型

然后利用数据来估计统计模型中的参数
解决这个问题的思路是:最大似然,即模型的参数应该能使我们观测到的这组数据的可能性最大。

而这个似然函数就是:

P(X|Θ)

理解

类比一下:

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

样本的身高就是我们可以观测的数据X,统计模型是正态分布,N1,N2的参数就是Θ。

于是,参数估计的问题变成了最优化问题。而最优化问题求解中,最常用的就是直接求导获得解析解,或者用梯度下降的方法去迭代。

不过,事情并非总这么简单。我们可能会遇到:

A、观测值有缺失
B、难以得知P(X|Θ),当引入一个隐含变量时,才能写出模型

当然,其实这两种情况都是一种情况,就是必须引入一个隐含变量。

这种情况下,对P(X|Θ)进行优化是困难的,通过引入隐含变量Z,把问题转换为
优化P(X|Θ) = ∑P(X,Z|Θ)是相对容易的。

然而在优化这个问题的时候,通常很难求导;或者导数是一个互相耦合的方程,这个时候,EM算法就登场了。不过EM算法和梯度下降法其实本质上都是不动点迭代法。

理解

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

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

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


EM算法为什么有用?

EM算法的数学证明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值