机器学习期望最大算法:实例解析

 

01

回顾
 

接下来,介绍一种非常经典的求解隐变量的算法,这也是一种经典的算法。让我们先从最大似然估计入手,在03节真正分析这种算法。

 

02

最大似然估计求分布参数

给定一堆苹果,里面有好苹果,也有坏苹果。好果的分布满足某种概率分布,也就是拿到第 i 个苹果的概率为 P(i | theta),其中theta表示好果的分布满足某种参数theta的概率分布,这个theta就是好果分布情况的一个参数吧。

 

怎么求解这个参数theta呢? 我们会从一堆苹果中,随机地选取足够多的苹果,然后对每个拿到的苹果标记是好苹果,还是坏苹果,比如随机地选择了10个苹果,其中好苹果标记为 Good,否则为 bad,拿到的序列如下所示:

1 Good  

2 Good 

3 bad

4 Good

5 Good

6 Good

7 bad

8 Good

9 bad

10 Good

 

在拿到这些序列后,不就相当于我们拿到一个已知条件吗:在这批实验数据中,有7个好果,3个坏果。

 

根据最大似然估计的理念,既然这10个苹果序列已经出现了,那么我们就估计并认为整个样本中好苹果的分布概率为:7/10 = 0.7,即:原序列中好苹果的分布规律为:遵从概率为0.7的分布吧,坏苹果同样满足0.3的概率分布。

 

这种根据抽取的一些数据样本的方法,推算某个样本的分布参数的过程,就被称为最大似然估计,它是根据已有数据来获得分布规律的利器。

 

03

带有隐变量时求分布参数theta

现在为了构造出一个隐变量,在上面那个例子基础上,假设这一批苹果有的来自烟台,有的来自威海,这样无形中增加了一个隐变量:苹果的出处,这个特征吧,并且烟台的苹果中好苹果的概率分布满足高斯分布,威海的也满足,这样相当于我们有两个分布,并且都满足高斯分布,只不过它们的分布参数不相同,如:烟台的好苹果概率为 theta_yan;威海的好苹果概率为theta_wei,那么如何求出这两个参数获得分布规律呢?

 

这就得借助经典的Expectation-Maximum算法,即期望最大算法了。

 

首先假定,初始时,theta_yan0 = 0.85,theta_wei0 = 0.80。

 

然后开始从那一堆苹果(来自于两地的混合)中,随机的取样了10个,发现有7个好果,3个坏果。那么出现这种情况的概率是多大呢?因为已经知道了初始时,theta_yan0 = 0.85,theta_wei0= 0.80,所以对于烟台的苹果分布而言,出现这种分布情况的概率是多大呢?

对于威海的苹果分布而言,出现这种分布情况的概率是多大呢?

 

那么选择的苹果来自于烟台的概率为:

 

那么选择的苹果来自威海的概率 P_wei 自然等于 1 - P_yan 吧。

 

这样这10个苹果中,来自烟台的好苹果的个数的期望值是不是就能求出来了:概率乘以好苹果个数:  P_yan * 7;坏果自然等于:P_yan * 3

同理可求出来自威海的好苹果数量的期望值:P_wei * 7,坏苹果等于:P_wei * 3 。

 

以上便是EM算法的中的E步那么M步是怎么回事呢?

 

M步是求出下一个迭代参数 theta_yan1 和 theta_wei1的过程,它们的计算原理,就是根据E步计算出来的期望值,具体来说:

 

theta_wei1的求解公式同上式相似,这样M步的计算过程也搞定。

再根据以上过程,由 theta_yan1,theta_wei1,得出theta_yan2,theta_wei2,等等。

直至达到某个阈值,迭代结束,这样theta_yanx,theta_weix就是最终的求解值:烟台和威海的好苹果的概率。

 

04

总结和展望

以上就是EM算法的求解过程,E步得出属于隐变量取值的期望,M步根据隐变量取值的期望计算出新的参数theta,这样不断迭代下去,直至收敛。

 

以上这堆苹果是从烟台和威海这两个地方来的吧,一共得到了两种满足高斯分布的好苹果的分布吧。

 

那么如果,我们这堆苹果是从全国各地选取过来的呢,这时苹果的分布情况就由 K 个高斯分布组成吧,类似的这种数据来自于K个高斯分布中生成出来的模型,称为高斯混合模型(GMM),它在含有隐变量,且每个簇的高斯分布参数不同时,对于这样的聚类任务,GMM是比较理想的聚类算法。欢迎关注明天的推送:GMM聚类sklearn掉包解析。

 

谢谢您的阅读,希望对您有帮助!

请记住:每天一小步,日积月累一大步!