美文网首页
Task3 EM算法

Task3 EM算法

作者: 酱油啊_ | 来源:发表于2020-04-27 09:06 被阅读0次

    简介

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,其最主要的思想有两步:

    • E:求期望,
    • M: 求极大
      EM算法采用的是启发式的迭代方法,就是当我们无法直接求出模型的参数分布的时候,我们先猜想隐含的数据,根据猜测的隐含数据和观察数据,求对数似然的最大值。然后根据当前模型的参数,继续猜测隐含数据,然后再求极大化似然函数,以此类推迭代下去,直到模型参数的分布基本不变化,那么当前模型的参数,认为是得到极大似然的最好模型参数。

    其实K-Means就是这种思想。求质心的过程其实就是E,计算每个样本最近的质心,就是M步。

    数学推导


    输入:观测数据X,模型参数为θ。极大化模型分布的对数似然为:
    \theta = arg \max \limits_{\theta}\sum\limits_{i=1}^m logP(x^{(i)};\theta)
    对于得到的观察数据有未观察到的隐含数据Z,极大化模型分布的对数似然可以变成:
    \theta = arg \max \limits_{\theta}\sum\limits_{i=1}^m logP(x^{(i)};\theta) = arg \max \limits_{\theta}\sum\limits_{i=1}^m log\sum\limits_{z^{(i)}}P(x^{(i)}, z^{(i)};\theta)

    通过Jensen不等式:
    log\sum\limits_j\lambda_jy_j \geq \sum\limits_j\lambda_jlogy_j\;\;, \lambda_j \geq 0, \sum\limits_j\lambda_j =1

    极大化模型分布的对数似然可以变成:
    \begin{align} \sum\limits_{i=1}^m log\sum\limits_{z^{(i)}}P(x^{(i)}, z^{(i)};\theta) & = \sum\limits_{i=1}^m log\sum\limits_{z^{(i)}}Q_i(z^{(i)})\frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} \\ & \geq \sum\limits_{i=1}^m \sum\limits_{z^{(i)}}Q_i(z^{(i)})log\frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} \end{align}
    其中Q_i(z^{(i)})是一个未知的新的分布。

    或者说由于对数函数是凹函数,所以有:
    f(E(x))≥E(f(x))如果f(x)是凹函数
        此时如果要满足Jensen不等式的等号,则有:
    P(x(i),z(i);θ)Qi(z(i))=c,c为常数
        由于Qi(z(i))是一个分布,所以满足:
    ∑zQi(z(i))=1
        从上面两式,我们可以得到:
    Qi(z(i))=P(x(i),z(i);θ)∑zP(x(i),z(i);θ)=P(x(i),z(i);θ)P(x(i);θ)=P(z(i)|x(i);θ))
        如果Qi(z(i))=P(z(i)|x(i);θ)), 则第(2)式是我们的包含隐藏数据的对数似然的一个下界。如果我们能极大化这个下界,则也在尝试极大化我们的对数似然。即我们需要最大化下式:
    argmaxθ∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))
        去掉上式中为常数的部分,则我们需要极大化的对数似然下界为:
    argmaxθ∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i);θ)
        上式也就是我们的EM算法的M步,那E步呢?注意到上式中Qi(z(i))是一个分布,因此∑z(i)Qi(z(i))logP(x(i),z(i);θ)可以理解为logP(x(i),z(i);θ)基于条件概率分布Qi(z(i))的期望。

    至此,我们理解了EM算法中E步和M步的具体数学含义。

    EM算法流程

    输入: 观察数据x=\left(x^{(1)}, x^{(2)}, \ldots x^{(m)}\right) ,联合分布p(x, z | \theta) ,条件分布p(z | x, \theta) ,极大迭代次数J

    1. 随机初始化模型参数\thetaθ的初值\theta^{0}

    2. from j from 1 to J:
      - E步:计算联合分布的条件概率期望:
      \left.Q_{i}\left(z{(i)}\right):=P\left(z{(i)} | x^{(i)}, \quad \theta\right)\right)

       - M步:极大化L(\theta)L(θ),得到\thetaθ:
      

    \theta:=\arg \max {\theta} \sum{i=1}^{m} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log P\left(x^{(i)}, z^{(i)} | \theta\right)
    - E,M步骤直到\thetaθ收敛。
    - 输出:模型参数\thetaθ

    EM算法收敛性的思考

    • 具体的推导参考这个吧 https://www.cnblogs.com/pinard/p/6912636.html
    • EM 算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,因此它是局部最优的算法,如果我们的优化目标是凸的,则EM算法可以保证收敛到全局极大值,这点和梯度下降法这样的迭代算法相同。

    EM算法应用

    如果我们从算法思想的角度来思考EM算法,我们可以发现我们的算法里已知的是观察数据,未知的是隐含数据和模型参数,在E步,我们所做的事情是固定模型参数的值,优化隐含数据的分布,而在M步,我们所做的事情是固定隐含数据分布,优化模型参数的值。EM的应用包括:
    - 支持向量机的SMO算法
    - 混合高斯模型
    - K-means
    - 隐马尔可夫模型

    参考资料:


    相关文章

      网友评论

          本文标题:Task3 EM算法

          本文链接:https://www.haomeiwen.com/subject/kckcwhtx.html