EM算法

EM算法(Expectation Maximization Algorithm, 最大期望算法)
是一种迭代类型的算法
是一种在概率模型中寻找参数最大似然估计或最大后验估计的算法
其中概率模型依赖于无法观测的隐藏变量

步骤:

  1. 初始化分布参数
  2. 重复下面两个步骤直到收敛
    • E步骤:估计隐藏变量的概率分布期望函数;
    • M步骤:根据期望函数重新估计分布参数;

原理:

  1. mm个训练样本{X(1),X(2),,X(m)}\{X^{(1)},X^{(2)},\dots,X^{(m)}\},样本间独立,找出样本的模型参数θ\theta,极大化模型分布的对数似然函数,如下:
    θ=argmaxθi=1mlog(P(x(i)θ))\theta={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}log(P(x^{(i)}\theta))

  2. 嘉定样本数据中存在隐含数据z={z(1),z(2),,z(k)}z=\{z^{(1)},z^{(2)},\dots,z^{(k)}\},此时极大化模型分布的对数似然函数,如下:没看懂
    θ=argmaxθi=1mlog(P(x(i)θ))=argmaxθi=1mlog(z(i)P(z(i))P(x(i)z(i);θ)=argmaxθi=1mlog(z(i)P(x(i),z(i);θ))\begin{aligned} \theta &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}log(P(x^{(i)}\theta))\\ &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}log(\displaystyle\sum_{z^{(i)}}P(z^{(i)})P(x^{(i)}|z^{(i)};\theta)\\ &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}log(\displaystyle\sum_{z^{(i)}}P(x^{(i)},z^{(i)};\theta)) \end{aligned}

  3. zz的分布为Q(z;θ)Q(z;\theta),[zQ(z;θ)=1\displaystyle\sum_{z}Q(z;\theta)=1],并且Q(z;θ)0Q(z;\theta)\ge 0;那么有公式,如下:

    l(θ)=i=1mlogzp(x,z;θ)=i=1mlogzQ(z;θ)p(x,z;θ)Q(z;θ)=i=1mlog(EQ(p(x,z;θ)Q(z;θ)))i=1mEQ(log(p(x,z;θ)Q(z;θ)))[Jensen]=i=1mzQ(z;θ)log(p(x,z;θ)Q(z;θ))\begin{aligned} l(\theta) &=\displaystyle\sum_{i=1}^{m}log\displaystyle\sum_{z}p(x,z;\theta)\\ &=\displaystyle\sum_{i=1}^{m}log\displaystyle\sum_{z}Q(z;\theta)\cdot\frac{p(x,z;\theta)}{Q(z;\theta)}\\ &=\displaystyle\sum_{i=1}^{m}log(E_Q(\frac{p(x,z;\theta)}{Q(z;\theta)}))\\ &\ge\displaystyle\sum_{i=1}^{m}E_Q(log(\frac{p(x,z;\theta)}{Q(z;\theta)}))[Jensen不等式]\\ &=\displaystyle\sum_{i=1}^{m}\displaystyle\sum_{z}Q(z;\theta)log(\frac{p(x,z;\theta)}{Q(z;\theta)})\\ \end{aligned}

  4. θ\theta求解
    θ=argmaxθl(θ)=argmaxθi=1mzQ(z;θ)log(p(x,z;θ)Q(z;θ))=argmaxθi=1mzQ(zx;θ)log(p(x,z;θ)Q(zx;θ))=argmaxθi=1mzQ(zx;θ)log(p(x,z;θ))\begin{aligned} \theta &={argmax \atop \theta}l(\theta)\\ &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}\displaystyle\sum_{z}Q(z;\theta)log(\frac{p(x,z;\theta)}{Q(z;\theta)})\\ &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}\displaystyle\sum_{z}Q(z|x;\theta)log(\frac{p(x,z;\theta)}{Q(z|x;\theta)})\\ &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}\displaystyle\sum_{z}Q(z|x;\theta)log(p(x,z;\theta))\\ \end{aligned}

EM算法流程
样本数据:X={X(1),X(2),,X(m)}X=\{X^{(1)},X^{(2)},\dots,X^{(m)}\}
联合分布:p(x,z;θ)p(x,z;\theta)
条件分布:p(zx;θ)p(z|x;\theta)
最大迭代次数:JJ

  1. 随机初始化模型参数 θ=θ0\theta=\theta^0
  2. EM算法的迭代处理
    • E步骤:计算联合分布的条件概率期望:
      Qj=p(zx;θj)Q^j=p(z|x;\theta^j)
      l(θ)=i=1mzQjlog(p(x,z;θj))l(\theta)=\displaystyle\sum_{i=1}^{m}\displaystyle\sum_{z}Q^jlog(p(x,z;\theta^j))

    • M步骤:极大化ll函数,得到θj+1\theta^{j+1}
      θj+1=argmaxθl(θ)\theta^{j+1}={argmax \atop \theta}l(\theta)

    • 如果 θj+1\theta^{j+1}已经收敛,则算法结束,输出最终模型参数θ\theta,否则继续迭代处理

EM算法收敛证明
证明对数似然函数的值在迭代的过程中是增加的 即可
机器学习-算法-EM
机器学习-算法-EM
机器学习-算法-EM

GMM(Gaussian Mixture Model, 高斯混合模型)
指该算法由多个高斯模型线 性叠加混合而成。每个高斯模型称之为component。GMM算法描述的是数据的 本身存在的一种分布。
GMM算法常用于聚类应用中,component的个数就可以认为是类别的数量。

假定GMM由k个Gaussian分布线性叠加而成,那么概率密度函数如下:
机器学习-算法-EM
机器学习-算法-EM
对数似然函数
机器学习-算法-EM
GMM-EM算法求解
E步骤
机器学习-算法-EM
M步骤
机器学习-算法-EM
对均值求偏导
机器学习-算法-EM
机器学习-算法-EM
对方差求偏导
机器学习-算法-EM
对概率使用拉格朗日乘子法求解
机器学习-算法-EM

相关文章: