【机器学习】隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现
隐马尔可夫模型参数学习是根据观测序列 X = { x 1 , x 2 , ⋯   , x n } X = \left\{ { {x_1},{x_2}, \cdots ,{x_n}} \right\} X={ x1,x2,⋯,xn}来估计模型 λ = [ A , B , ∏ ] \lambda = \left[ {A,B,\prod } \right] λ=[A,B,∏]。根据训练数据是包括观测序列和对应的状态序列还是只有观测序列,可以分为监督学习和非监督学习(参考资料1)。因为监督学习需要人工标注训练数据代价较高,因此本博文只介绍非监督学习。
一、一些概率与期望值的计算
(1)给定模型 λ \lambda λ和观测序列 X X X,在 t t t时刻处于状态 q i q_i qi的概率,记为 γ t ( i ) = P ( i t = q i ∣ X , λ ) {\gamma _t}(i) = P\left( { {i_t} = {q_i}\left| {X,\lambda } \right.} \right) γt(i)=P(it=qi∣X,λ)
γ t ( i ) = P ( i t = q i ∣ X , λ ) = P ( i t = q i , X ∣ λ ) P ( X ∣ λ ) {\gamma _t}(i) = P\left( { {i_t} = {q_i}\left| {X,\lambda } \right.} \right) = \frac{ {P\left( { {i_t} = {q_i},X\left| \lambda \right.} \right)}}{ {P\left( {X\left| \lambda \right.} \right)}} γt(i)=P(it=qi∣X,λ)=P(X∣λ)P(it=qi,X∣λ)
由前向概率 α t ( i ) {\alpha _t}(i) αt(i)和后向概率 β t ( i ) {\beta _t}(i) βt(i)定义可知:
γ t ( i ) = α t ( i ) β t ( i ) ∑ j = 1 N α t ( j ) β t ( j ) {\gamma _t}(i) = \frac{ { {\alpha _t}(i){\beta _t}(i)}}{ {\sum\limits_{j = 1}^N { {\alpha _t}(j){\beta _t}(j)} }} γt(i)=j=1∑Nαt(j)βt(j)α