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)即可

  • 相关阅读:
    Centos7yum安装LNMP
    CentOS7安装和配置rsync+inotify
    SSH
    nginx https
    nginx rewrite
    nginx代理缓存
    nginx动静分离
    Centos7使用squid实现正向代理
    利用tengine的nginx_upstream_check_module来检测后端服务状态
    nginx基于tcp负载均衡
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/9855756.html
Copyright © 2011-2022 走看看