机器学习_EM算法

Jesen不等式
若f是凸函数(如f(x)=x2f(x)=x^2),则f(Ex)E(f(x))f(Ex)\leq E(f(x))

一、EM算法

现实生活中,很多样本可能含有隐变量,这时候用似然法求模型参数是不现实的,我们考虑用EM算法。利用当前参数θ\theta的估计值,来计算似然函数的期望;在计算使期望最大的θ\theta值,反复迭代,至收敛。

1、EM算法推导
机器学习_EM算法
EM是一种解决存在隐含变量优化问题的有效方法。竟然不能直接最大化l(.),我们可以不断地建立l(.)的下界(E步),然后优化下界(M步)
由于隐变量未知,无法直接求得期望,下面,先直管认识下EM算法的构建思路:

  • r(xθ)l(θ)r(x|\theta)\leq l(\theta)
  • 计算θ\theta为何值时,r(xθ)r(x|\theta)的最大值
  • 利用得到的θ\theta重新计算r(xθ)r(x|\theta),…反复迭代,至收敛到局部最优。
    机器学习_EM算法

下面我们将根据上图思路,给出EM的证明
机器学习_EM算法
上图推广到GMM模型

二、混合高斯分布(GMM)的参数估计(EM示例)

1、EM算法估计GMM参数估计
EM算法是期望最大法,是一种迭代算法,可以估计GMM的各模型的参数和样本属于哪个模型。基本步骤如下:

  • 参数初始化
    对需要估计的参数进行初始赋值,包括均值、方差、混合系数以及期望。
  • E-Step计算
    利用概率分布公式计算后验概率,即期望。
  • M-step计算
    重新估计参数,包括均值、方差、混合系数并且估计此参数下的期望值。
  • 收敛性判断
    将新的与旧的值进行比较,并与设置的阈值进行对比,判断迭代是否结束,若不符合条件,则返回到第2步,重新进行计算,直到收敛符合条件结束。

机器学习_EM算法
注意:

  • 初值选择敏感,初值选择不好,可能得不到全局最优解。

2、示例
机器学习_EM算法