zoukankan      html  css  js  c++  java
  • EM算法简易推导

    EM算法推导

    网上和书上有关于EM算法的推导,都比较复杂,不便于记忆,这里给出一个更加简短的推导,用于备忘。

    在不包含隐变量的情况下,我们求最大似然的时候只需要进行求导使导函数等于0,求出参数即可。但是包含隐变量,直接求导就变得异常复杂,此时需要EM算法,首先求出隐变量的期望值(E步),然后,把隐变量当中常数,按照不包含隐变量的求解最大似然的方法解出参数(M步),反复迭代,最终收敛到局部最优。下面给出EM算法的推导

    我们有对数似然函数

    [L( heta)=log P(y| heta) = logsum_zp(y,z| heta) ]

    可以表示成包含隐变量(z)的形式,然后通过边缘化再消除(z),效果是一样的。

    由于是迭代,我们需要每次得到的新的似然结果比上一次的似然结果要大,于是我们的目标是下式

    [ heta = argmax_ heta L( heta) - L( heta') ]

    由于$L( heta') $ 是常量,所以,使得(L( heta))最大化即可。下面看看如何最大化 (L( heta)) :

    [egin{split} heta &= argmax_ heta L( heta)\ &= argmax_ heta logsum_zp(y,z| heta)\ &= argmax_ heta logsum_zp(z|y, heta')dfrac{p(y, z| heta)}{p(z|y, heta')}\ &= argmax_ heta sum_zp(z|y, heta')logdfrac{p(y,z| heta)}{p(z|y, heta')}\ &= argmax_ hetasum_zp(z|y, heta')log(p(y, z| heta))\ &= argmax_ heta Q( heta, heta') end{split} ]

    至此,得到传说中的Q函数,然后求解出参数( heta)即可

  • 相关阅读:
    Qbxt 模拟题 day2(am) T2 jian
    Codevs 1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组
    洛谷比赛 U5442 买(最长链)
    洛谷 P1800 software_NOI导刊2010提高(06)(二分答案+DP检验)
    Codevs 4373 窗口(线段树 单调队列 st表)
    P1453 城市环路
    P1841 [JSOI2007]重要的城市
    P1410 子序列
    H
    GSS4 D
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/9855756.html
Copyright © 2011-2022 走看看