隱馬爾可夫模型(七)——隱馬爾可夫模型的學習問題(前向后向算法)


      隱馬爾可夫模型的學習問題:給定一個輸出序列O=O1O2...OT,如何調節模型μ=(A,B,π)的參數,使得P(O|M)最大。

      最大似然估計是一種解決方法,如果產生的狀態序列為Q=q1q2...qT,根據最大似然估計,可以通過以下公式推算:

        πi‘ = δ(q1,si)

        aij' =  Q中從狀態qi轉移到qj的次數/Q中從狀態qi轉移到另一狀態(包括qj)的次數

             

        bj(k)' = Q中從狀態qj發出符號Vk的次數/ Q中到達狀態qj的次數

                 

      δ(x,y)為克羅奈克函數,當x=y時,δ(x,y)=1;否則,δ(x,y)=0

      但是注意,在實際中,狀態Q=q1q2...qT是觀察不到的(隱變量),因此上述的這種求法是有問題的。幸好希望最大化,可以用於含有隱變量的統計模型的參數最大似然估計。基本思想是初始時,隨機的給模型參數賦值,但是要遵循模型對參數的限制,例如,從一個狀態發出的所有狀態轉移概率之和為1,得到模型μ0。然后根據μ0中的具體值,帶入下式,可以得到u1.依次往下迭代,直到收斂於最大似然估計值。這種迭代爬山算法可以局部使P(O|μ)最大。稱為Baum-Welch算法或前向后向算法。

      給定HMM的參數μ和觀察序列O=O1O2...OT,在時間t位於狀態si,在時間t+1位於狀態sj的概率為ξt(i,j)=P(qt=si,qt+1=sj|O,μ),公式推導如下:

               ................(1)

       給定HMM μ 和序列O=O1O2...OT,在時間t位於狀態si的概率為:.........(2)

       這樣求μ的參數估計重新改寫:

        πi‘ = r1(i) ...........(3)

        aij' =  Q中從狀態qi轉移到qj的次數/Q中從狀態qi轉移到另一狀態(包括qj)的次數

             = ..........(4)

             

        bj(k)' = Q中從狀態qj發出符號Vk的次數/ Q中到達狀態qj的次數

                 = ..............(5)

前向后項算法

     step1 初始化: 隨機地給定參數 πi, aij, bj(k),使其滿足條件:

                       

                       由此得到μ0,令i=0

      step2 EM計算:

                   E步驟:根據(1)(2)式計算期望ξt(i,j) 和 rt(i)

                   M步驟:根據期望ξt(i,j) 和 rt(i),帶入(3)(4)(5)重新得到πi, aij, bj(k),得到μi+1

       step3 循環計算: i = i+1, 直到πi, aij, bj(k)收斂

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM