em算法 实例 正态分布_EM算法详解(例子+推导)

本文通过抛硬币的例子介绍了EM算法的原理和应用。首先,详细解释了如何在不知道具体硬币的情况下,利用EM算法计算每种硬币出现的概率。接着,阐述了Jensen不等式在算法推导中的作用,以及EM算法的E步和M步。最后,讨论了高斯混合模型中的期望计算,并给出了Python实现示例。
摘要由CSDN通过智能技术生成

一. 例子讲解

假设有两个硬币1和2,随机抛出后出现正面概率为

。每次取一枚银币,连续抛5次,共抛5轮,数据如下:硬币1-->(3正2反);硬币2-->(2正3反);硬币3-->(1正4反);银币4-->(3正2反);银币5-->(2正3反)

很容易计算硬币1正面

的概率

假如我们不知道选出的是哪个银币,还需要计算出

,该如何处理?数据如下:?-->(3正2反);?-->(2正3反);?-->(1正4反);?-->(3正2反);?-->(2正3反)

对每个问号编个号(

),

表示第1次选择的是硬币1还是硬币2,后面依次类推。在这种情况下该如何计算

先随机初始化一个

,用它来估算z,然后基于z用最大似然概率去估计新的

,如新的

和估计的

相等,则我们证明我们估计正确,否则用新的出的

再去估算z,重复直到收敛。

初始设

。其中第一组硬币1出现的概率:

,其它数据如下则数据如下。硬币1概率:0.00512,硬币2概率:0.03087-->(3正2反); 硬币1概率:0.02048,硬币2概率:0.01323-->(2正3反); 硬币1概率:0.08192,硬币2概率:0.00567-->(1正4反); 硬币1概率:0.00512,硬币2概率:0.03087-->(3正2反);硬币1概率:0.02048,硬币2概率:0.01323-->(2正3反);

每个取硬币1或2出现最大的最大的概率,则此时

我们使用所有的z值计算,根据上述数据,可算出z值对应的

的期望。当

时,硬币1的期望

,同理

。则此时数据如下: :0.14,

-->(3正2反);

:0.61,

-->(2正3反);

:0.94,

-->(1正4反);

:0.14,

-->(3正2反);

:0.61,

-->(3正2反)。

计算在硬币1 条件下正方面分布,如:

正面概率3*0.14 = 0.42, 反面概率2*0.14 = 0.28,Z分布数据如下:

0.42, 0.28;

1.22, 1.83;

0.94, 3.76;

0.42, 0.28;

1.22,1.93。则可以计算出

,正面/(正面+反面)。

此时算出的值,更接近真实值0.4。

二. 算法过程

2.1 Jensen不等式

当函数满足凸函数(存在局部极小值),则有

是求期望。可从如下图理解和记忆。

2.2 算法推导

有观测变量数据Y(上例中正反面结果),隐藏变量Z(上例中硬币1硬币2),求分布

值。已知结果,和分布模型,求分布参数,使用似然估计算法:

取对数,设

为隐变量Z的分布。

(公式1)。

运用Jensen不等式(上图画的),

公式1有:

(公式2)

其中当满足

(公式3),C为常数,取等号。对公式3做如下变换:

两边对z取积分

,可推出

则有

(公式4),因为此时的

为估计出来的值,这里记为

。把

带入公式2中,则最后极大似然估计就如下:

,由于第二项为常数,所以最终我们的目标函数为:

(公式5), 其中

为参数, 这就是EM算法的E部。

接下来求

的极大值,得出

也就是

,即

。在把

带入到Q函数中,求极大值又可以得到

,最后直到收敛。

2.3 EM算法收敛性

要证明算法收敛,其实是证明

取对数

(公式6)

(公式7)设:

(公式8)

,则同时取

,并相减:

(公式9)。很明显公式9前个大括号大于0,那边就只要计算后一个大括号的值:

得证。

三. 高斯混合模型离散随机变量期望:

连续随机变量的期望:

方差定义:

,期望的表示方式为:

协方差定义:

表示两个变量空间。用期望的表示方式为:

,两个变量独立协方差为0。 协方差矩阵:

多维高斯密度公式:

表示纬度维

的向量,

各纬度向量的平均值,

所有向量

协方差矩阵。

如下图所示,有观测样本数据

,属于3个正态分布(参数未知),哪些样本属于哪个正态分布未知。从图示直观来看,样本

最佳概率密度曲线应该是三个正态分布曲线的组合

高斯密度示意图

从几何意义理解,高斯混合模型就是多个独立高斯分布按照权重叠加的模型,其分布模型公式记为:

(公式 1) ,

是混合模型高斯数量;

高斯模型的权重(k个高斯模型的分布),

是高斯分布密度,

。设样本数据

,则完整数据就为

,则z是满足

的分布,那么此时

根据EM算法,z的分布是离散分布:

=

这里把

拆开进行换算得到:

=

则有:

,在这个后验分布中此时的

其实是

,是已知值。代入

,得:

最终求导可得:

,另外两个参数不再列举。

四. python例子

还是代码简单,高斯混合模型的预测,详情看示范例子:https://github.com/zx3305/tennis/blob/master/em/main.py​github.com

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值