zoukankan      html  css  js  c++  java
  • EM算法以及推导

    EM算法

    Jensen不等式

    其实Jensen不等式正是我们熟知的convex函数和concave函数性质,对于convex函数,有

    [lambda f(x) + (1-lambda)f(y)ge f(lambda x + (1-lambda)f(y)), where 0lelambdale 1 ]

    推广一下,便有

    [f(sum_{i=1}^nlambda_ix_i)lesum_{i=1}^nlambda_if(x_i), where sum_{i=1}^nlambda_i = 1 ]

    这就是Jensen不等式,写成期望的形式便有

    [f(E(x))le E(f(x)) ]

    对于concave函数,只需不等号反向,因为对convex函数取负得到的是concave函。

    EM算法推导

    我们的目的是最大化似然函数(P(X| heta)),为了计算方便,取对数,得到

    [L( heta)=ln P(X| heta) ]

    假设我们已知( heta^n),现在要求新的( heta),为了极大化似然函数,我们期望最大化

    [max(L( heta)-L( heta')) ]

    于是有

    [egin{align*} L( heta) - L( heta') &= logleft(sum_ZP(Y|Z, heta)P(Z| heta) ight) - log P(Y| heta')\ &= logleft(sum_ZP(Z|Y, heta')dfrac{P(Y|Z, heta)P(Z| heta)}{P(Z|Y, heta')} ight) - log P(Y| heta')\ &ge sum_ZP(Z|Y, heta')logdfrac{P(Y|Z, heta)P(Z| heta)}{P(Z|Y, heta')} - log P(Y| heta')\ &= sum_ZP(Z|Y, heta')logdfrac{P(Y|Z, heta)P(Z| heta)}{P(Z|Y, heta')} - log P(Y| heta')sum_ZP(Z|Y, heta')\ &= sum_ZP(Z|Y, heta')log P(Y|Z, heta)P(Z| heta) - log P(Y| heta') - sum_ZP(Z|Y, heta')log P(Z|Y, heta') end{align*} ]

    后面两项是常数项,去掉还是等价的。于是便有

    [egin{align*} argmax_ heta L( heta) - L( heta') &= argmax_ hetasum_ZP(Z|Y, heta')log P(Y|Z, heta)P(Z| heta) \ &- log P(Y| heta') - sum_ZP(Z|Y, heta')log P(Z|Y, heta')\ &= argmax_ hetasum_ZP(Z|Y, heta')log P(Y|Z, heta)P(Z| heta)\ &= argmax_ heta sum_ZP(Z|Y, heta')log P(Y,Z| heta) end{align*}]

    上面这种形式是采用李航的《统计学习方法》中的形式,与PRML中的形式初看有些不一样,我们只需要把最初的(P(Y|Z, heta)P(Z| heta))替换为(P(Y,Z| heta))就一样了。

  • 相关阅读:
    mysql 锁相关的视图(未整理)
    MYSQL的用户变量(@)和系统变量(@@)
    mysql杀死线程
    mysql 系统变量和session变量
    Oracle DB 移动数据
    MySQL数据库------常用函数
    练习-----查询
    练习建表
    课堂笔记总结
    数据库--------用代码来创建表
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/6188160.html
Copyright © 2011-2022 走看看