机器学习----EM算法

一、概念

顾名思义:
            最大期望算法(Expectation Maximization Algorithm,又译期望最大化算法),是一种迭代算法,用于含有隐变量(latent variable)的概率参数模型的最大似然估计或极大后验概率估计。
最大期望算法经过两个步骤交替进行计算:

● 第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大 似然估计值;
● 第二步是最大化(M),最大化在 E 步上求得的最大似然值来 计算参数的值。
M 步上找到的 参数估计值被用于下一个 E 步计算中,这个过程不断交替进行。
总体来说,EM的算法流程如下:
● 1.初始化分布参数
● 2.重复直到收敛:

E步骤:估计未知参数的期望值,给出当前的参数估计。

M步骤:重新估计分布参数,以使得数据的 似然性最大,给出未知变量的期望估计。

二、应用场景距离

            我们需要调查我们学校的男生和女生的身高分布。 假设你在校园里随便找了100个男生和100个女生。他们共200个人。将他们按照性别划分为两组,然后先统计抽样得到的100个男生的身高。假设他们的身高是服从正态分布的。但是这个分布的均值μ和方差σ2我们不知道,这两个参数就是我们要估计的。记作θ=[μ,σ]T。
            问题:我们知道样本所服从的概率分布的模型和一些样本,需要求解该模型的参数。

            问题数学化:设样本集X=x1,x2,…,xN,其中N=100 ,p(xi|θ)为概率密度函数,表示抽到男生xi(的身高)的概率。由于100个样本之间独立同分布,所以我同时抽到这100个男生的概率就是他们各自概率的乘积,也就是样本集X中各个样本的联合概率,用下式表示:
                                                                      这里写图片描述
            这个概率反映了,在概率密度函数的参数是θ时,得到X这组样本的概率。 我们需要找到一个参数θ,使得抽到X这组样本的概率最大,也就是说需要其对应的似然函数L(θ)最大。满足条件的θ叫做θ的最大似然估计量,记为:
这里写图片描述
步骤
这里写图片描述
这里写图片描述

1、Jensen不等式应用于凹函数时,不等号方向反向。当且仅当X是常量时,Jensen不等式等号成立。
2、关于凸函数,百度百科中是这样解释的——“对于实数集上的凸函数,一般的判别方法是求它的二阶导数,如果其二阶导数在区间上非负,就称为凸函数(向下凸)”。

几张图看懂步骤
这里写图片描述
这里写图片描述
这里写图片描述

计算案例

这里写图片描述

答案:先随机初始化一个P1和P2,用它来估计z,然后基于z,还是按照最大似然概率法则去估计新的P1和P2,如果新的P1和P2和我们初始化的P1和P2一样,请问这说明了什么?

这说明我们初始化的P1和P2是一个相当靠谱的估计!
就是说,我们初始化的P1和P2,按照最大似然概率就可以估计出z,然后基于z,按照最大似然概率可以反过来估计出P1和P2,当与我们初始化的P1和P2一样时,说明是P1和P2很有可能就是真实的值。
这里面包含了两个交互的最大似然估计。
如果新估计出来的P1和P2和我们初始化的值差别很大呢?就是继续用新的P1和P2迭代,直至收敛

这里写图片描述
这里写图片描述

案例优化

我们估计的P1和P2相比于它们的初始值,更接近它们的真实值了!

            可以期待,我们继续按照上面的思路,用估计出的P1和P2再来估计z,再用z来估计新的P1和P2,反复迭代下去,就可以最终得到P1 = 0.4,P2=0.5,此时无论怎样迭代,P1和P2的值都会保持0.4和0.5不变,于是乎,我们就找到了P1和P2的最大似然估计。

            我们是用最大似然概率法则估计出的z值,然后再用z值按照最大似然概率法则估计新的P1和P2。也就是说,我们使用了一个最可能的z值,而不是所有可能的z值。
            如果考虑所有可能的z值,对每一个z值都估计出一个新的P1和P2,将每一个z值概率大小作为权重,将所有新的P1和P2分别加权相加,这样的P1和P2应该会更好一些。所有的z值有多少个呢?显然,有2^5=32种,需要我们进行32次估值??
这里写图片描述
把每一个期望都酸一下,取最大。

          可以看到,改变了z值的估计方法后,新估计出的P1要更加接近0.4。原因就是我们使用了所有抛掷的数据,而不是之前只使用了部分的数据。
          这步中,我们根据E步中求出的z的概率分布,依据最大似然概率法则去估计P1和P2,被称作M步。

图解步骤

这里写图片描述

猜你喜欢

转载自blog.csdn.net/sakura55/article/details/80990046