HMM3学习算法_机器学习

前言:

      

目录

     1: 监督学习算法

      2: Baum-Welch 算法


一  监督学习算法

     假设给定训练数据包包含S个长度相同的观测序列和对应的状态序列

   \begin{Bmatrix} (0_1,I_1) & (0_2,I_2), & .... & (O_s,I_s) \end{Bmatrix},那么可以利用极大似然估计方法来估计隐马尔可夫模型的参数

 

    1.1 状态转移概率a_{ij}的估计

            a_{ij}=\frac{A_{ij}}{\sum_{j=1}^{N}A_{ij}}

            i=1,2...,N; j=1,2,...,N

    1.2   观测概率b_j(k)的估计

              设样本钟状态为j并且观测为k的频率为B_{jk},则b_j(k)=\frac{B_{jk}}{\sum_{k=1}^{M}B_{jk}}

               k=1,2,...M

 

    1.3  初始状态\pi的估计为S样本中初始状态为

            q_i的频率


二 Baum-Welch 算法

    给定训练数据包含S个长度为T的观测序列

   \begin{Bmatrix} O_1, & O_2, & ..., & O_T \end{Bmatrix}

   目标:

            学习隐马尔可夫模型 \lambda =(A,B,\pi)

   预置条件:

           O: 观测数据

            I:  不可观测隐数据

            P(O|\lambda)=\sum_{I}P(O|I,\lambda)P(I|\lambda)

    2.1 确定完全数据的对数似然函数

             观测数据写成 O=(o_1,o_2,...,o_T)

             隐藏数据写成: I=(i_1,i_2,...i_T)

            完全数据(O,I)=(o_1,o_2,...o_T,i_1,i_2,...i_T)

             完全数据的对数似然  log P(O,I|\lambda)

     2.2 EM算法的E步: 求Q函数 Q(\lambda, \lambda^*)

             Q(\lambda,\lambda^*)=\sum_{I}log P(O,I|\lambda)P(O,I|\lambda^*)

           P(O,I|\lambda)=\pi_{i_1}b_{i1}(o_1)a_{i_1i_2}b_{i_2}(o_2)...b_{i_T}(o_T)

          其中\lambda^*是已知值

            则 Q函数可以写成

          


 2.3 EM算法的M步: 极大化Q函数,求解A,B,\pi

         上式可以分为3个部分

            1:根据约束条件\sum_{i=1}^{N}\pi_i=1, 利用拉格朗日乘子法,写出拉格朗日函数

                 \sum_{i=1}^{N}log \pi_i P(O,i_1=i|\lambda^*)+r(\sum_{i=1}^N \pi_i-1)

                对\pi_i求偏导数

                 r+\frac{P(O,i_1=i|\lambda^*)}{\pi_i}=0

                \sum_{i=1}^{N}\pi_i r+\sum_{i=1}^{N}P(O,i_1=i|\lambda^*)=0

                 r=-P(O|\lambda^*)

                 则

                 \pi_i= \frac{P(O,i_1=i|\lambda^*)}{P(O|\lambda^*)}

         2:  第二项可以写成

                \sum_{i}\sum_{j}\sum_{t=1}^{T-1}log a_{ij} P(O,i_t,i_{t+1}=j|\lambda^*)

   根据约束条件 \sum_{j=1}^{N}a_{ij}=1,拉格朗日乘子法求导

           \sum_{i}\sum_{j}\sum_{t=1}^{T-1}log a_{ij}P(O,i_t,i_{t+1}=j|\lambda^*)+\eta (\sum_j a_{ij}-1)

       求偏导数

      \frac{\sum_{t=1}^{T-1}P(O,i_t,i_{t+1}=j|\lambda^*)}{a_{ij}}+\eta= 0

      \sum_{j=1}^{N}\sum_{t=1}^{T-1}P(O,i_t,i_{t+1}=j|\lambda^*)+\eta\sum_{j=1}^{N}a_{ij}= 0

   \eta=-\sum_{t=1}^{T-1}P(O,i_t|\lambda^*)

  则

       a_{ij}=\frac{\sum_{t=1}^{T-1}P(O,i_t=i,i_{t+1}=j|\lambda^*)}{\sum_{t=1}^{T-1}P(O,i_t=i|\lambda^*)}

 

  3  根据约束条件\sum_{k=1}^{M}b_j(k)=1,只有o_t=v_k时候,b_j(o_t)b_j(k)的偏导数才不为0,

    用函数  I=\left\{\begin{matrix} 1,O_t=v_k\\ 0,otherwish \end{matrix}\right. 表示

  第三项配成拉格朗日  \sum_{I}(\sum_{t=1}^{T}log b_{i_t}(o_t))P(O,i_t=j|\lambda^*)+\alpha (\sum_{k=1}^{M}b_j(k)-1)

  

                 I(o_t=v_k)P(O,i_t=j|\lambda^*)+\alpha b_{ik=0}

                \sum_{k=1}^{M}I(o_t=v_k)P(O,i_t=j|\lambda^*)+\sum_{k=1}^{M}\alpha b_{ik=0}

               \alpha=-\sum_{t=1}^{T} P(O,i_t=j|\lambda^*)

           则

      b_j(k)=\frac{\sum_{t=1}^{T}P(O,i_t=j|\lambda^*)I(o_t=v_k)}{\sum_{t=1}^{T}P(O,i_t=j|\lambda^*)}

.2.3 Baum-Welch 模型参数估计公式

    a_{ij}=\frac{\sum_{t=1}^{T-1} \zeta _t(i,j)}{\sum_{t=1}^{T-1}r_t(i)}

   b_j(k)=\frac{\sum_{t=1,o_t=v_k}^{T} r _t(j)}{\sum_{t=1}^{T}r_t(j)}

    \pi_i=r_1(i)

 

2.4 算法流程

     

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值