zoukankan      html  css  js  c++  java
  • Baum-Welch算法(EM算法)对HMM模型的训练

    Baum-Welch算法就是EM算法,所以首先给出EM算法的Q函数

    [sum_zP(Z|Y, heta')log P(Y,Z| heta) ]

    换成HMM里面的记号便于理解

    [Q(lambda,lambda') = sum_zP(I|O,lambda')log P(I,O|lambda) ]

    根据状态序列和观测序列的联合分布

    [egin{align*} P(O,I|lambda) &= sum_IP(O|I,lambda)P(I|lambda)\ &= pi_{i_1}b_{i_1}(o_1)a_{i_1i_2}b_{i_2}(o_2)dots a_{i_{T-1}i_T}b_{i_T}(o_T)\ end{align*}]

    代入上式后得

    [egin{align*} Q(lambda, lambda') &= sum_IP(I|O,lambda')logpi_{i_1}\ &+ sum_IP(I|O,lambda')logsum_{t=1}^Tb_{i_t}(o_t) \ &+ sum_IP(I|O,lambda')logsum_{t=2}^Ta_{i_{t-1}i_T} end{align*}]

    这便是E步,下面看看M步.

    看Q函数得第一步, 由于带有约束

    [sum_i^Npi_i = 1 ]

    这个时候就需要请出拉格朗日乘子了

    [egin{align*} L &= sum_IP(I|O,lambda')logpi_1 + gamma(sum_{i=1}^Npi_i -1)\ &= sum_{i=1}^NP(O,i_1=i|lambda')logpi_i + gamma(sum_{i=1}^Npi_i -1)\ end{align*}]

    (dfrac{partial L}{partialpi_i} = 0)得到

    [egin{align*} P(O, i_1 = i|lambda') + gamma pi_i &= 0\ P(O, i_1 = i|lambda') &= -gamma pi_i\ sum_{i=1}^NP(O, i_1 = i|lambda') &= -gamma sum_{i=1}^Npi_i\ gamma &= -P(O|lambda') end{align*}]

    回代,得到

    [pi_i = dfrac{P(O, i_1=i|lambda')}{P(O|lambda')} ]

    其他得参数同样可以得到

  • 相关阅读:
    HAProxy+keepalived+MySQL 实现MHA中slave集群负载均衡的高可用
    mysql高可用架构之MHA,haproxy实现读写分离详解
    bootstrap全局css样式
    响应式与bootstrap
    jquery3
    jquery2
    jquery
    client,offset,scroll系列
    javascript-BOM
    JavaScript-DOM续
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/8670054.html
Copyright © 2011-2022 走看看