机器学习算法——EM算法

EM算法是一种迭代算法,用于估计含有隐性变量的概率模型的参数。它通过E(期望)和M(最大化)步骤交替进行,直到收敛。算法在处理聚类问题时,能有效地估计未知变量。EM算法在每一步迭代中保证了目标函数的单调增加,确保了求解过程的有效性。
摘要由CSDN通过智能技术生成

一、EM算法简介

EM算法,指的是最大期望算法(Expectation Maximization Algorithm,又译期望最大化算法),是一种迭代算法,在统计学中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计

中文名

em算法

别名

最大期望算法;期望最大化算法

外文名

Expectation Maximization Algorithm

领域

统计学

可以有一些比较形象的比喻说法把这个算法讲清楚。比如说食堂的大师傅炒了一份菜,要等分成两份给两个人吃,显然没有必要拿来天平一点的精确的去称分量,最简单的办法是先随意的把菜分到两个碗中,然后观察是否一样多,把比较多的那一份取出一点放到另一个碗中,这个过程一直迭代地执行下去,直到大家看不出两个碗所容纳的菜有什么分量上的不同为止。

EM算法就是这样,假设我们估计知道AB两个参数,在开始状态下二者都是未知的,并且知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

EM算法是一种解决存在隐含变量优化问题的有效方法。EM算法是期望极大(Expectation Maximization)算法的简称,EM算法是一种迭代型的算法,在每一次的迭代过程中,主要分为两步:即求期望(Expectation)步骤和最大化(Maximization)步骤。

二、EM算法推导

1、 凸函数
凸函数,是数学函数的一类特征。凸函数就是一个定义在某个向量空间的凸子集C(区间)上的实值函数。

凸函数是一个定义在某个向量空间的凸子集C(区间)上的实值函数f,而且对于凸子集C中任意两个向量, f((x1+x2)/2)>=(f(x1)+f(x2))/2,f(x)是定义在凸子集c中的凸函数(该定义与凸规划中凸函数的定义是一致的,下凸)。

设f是定义在实数域上的函数,如果对于任意的实数x,都有, 那么f是凸函数。若x不是单个实数,而是由实数组成的向量,此时,如果函数f的Hesse矩阵H是半正定的,即

那么f是凸函数。特别地,如果或者,那么称f为严格凸函数。

2Jensen不等式

如果函数是凸函数,是随机变量,那么

特别地,如果函数是严格凸函数,那么

当且仅当

即随机变量是常量。

注:若函数是凹函数,上述的符号相反。

3EM算法推导

给定的训练样本是 ,样例间独立,我们想找到每个样例隐含的类别z,能使得p(x,z)最大。p(x,z)的最大似然估计如下:

    第一步是对极大似然取对数,第二步是对每个样例的每个可能类别z求联合分布概率和。但是直接求
一般比较困难,因为有隐藏变量z存在,但是一般确定了z后,求解就容易了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值