em算法详细例子及推导_EM算法详解(例子+推导)

一. 例子讲解

假设有两个硬币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不等式

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

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

8e276b4f2cc1dbcffc1ff2ea909d6f7b.png

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个正态分布(参数未知),哪些样本属于哪个正态分布未知。从图示直观来看,样本
最佳概率密度曲线应该是三个正态分布曲线的组合

30062b0d8fb3ab95800f094fa25404c6.png
高斯密度示意图

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

(公式 1) ,
是混合模型高斯数量;
高斯模型的权重(k个高斯模型的分布),
是高斯分布密度,
。设样本数据
,则完整数据就为
,则z是满足
的分布,那么此时

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

=
这里把
拆开进行换算得到:
=

则有:
,在这个后验分布中此时的
其实是
,是已知值。代入
,得:

最终求导可得:

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

四. python例子

还是代码简单,高斯混合模型的预测,详情看示范例子:

https://github.com/zx3305/tennis/blob/master/em/main.py​github.com

参考资料:

机器学习之最大期望(EM)算法_谓之小一-CSDN博客_最大期望算法

https://blog.csdn.net/lin_limin/article/details/81048411

多维高斯分布 - jermmyhsu - 博客园

https://www.bilibili.com/video/BV13b411w7Xj

https://www.bilibili.com/video/BV1qW411k7ao?p=3

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值