最近准备做个语音识别小玩具,接触到一些识别技术,和大家一起分享~

 隐马尔可夫模型(Hidden Markov Model,HMM)作为一种统计分析模型,创立于20世纪70年代。80年代得到了传播和发展,成为信号处理的一个重要方向,现已成功地用于语音识别,行为识别,文字识别以及故障诊断等领域。

感觉百度说的有点模糊~
 
假设:

对于一个随机事件,有一个观察值序列:O1,…,OT

该事件隐含着一个状态序列:X1,…,XT

假设1:马尔可夫假设(状态构成一阶马尔可夫链)
          p(Xi|Xi-1…X1) = p(Xi|Xi-1)

假设2:不动性假设(状态与具体时间无关)

              p(Xi+1|Xi) = p(Xj+1|Xj),对任意i,j成立

假设3:输出独立性假设(输出仅与当前状态有关)
          p(O1,…,OT | X1,…,XT) = Π p(Ot | Xt)

定义:

一个隐马尔可夫模型 (HMM) 是一个五元组:

                  (ΩX , ΩO, A, B, π )

其中:

  ΩX = {q1,…qN}:状态的有限集合

  ΩO = {v1,…,vM}:观察值的有限集合

  A = {aij},aij = p(Xt+1 = qj |Xt = qi):转移概率

  B = {bik},bik = p(Ot = vk | Xt = qi):输出概率

  π = {πi}, πi = p(X1 = qi):初始状态分布

问题:

令 λ = {A,B,π} 为给定HMM的参数,

令 σ = O1,…,OT 为观察值序列,

隐马尔可夫模型(HMM)的三个基本问题:

1.评估问题:对于给定模型,求某个观察值序列的概率p(σ|λ) ;
2.解码问题:对于给定模型和观察值序列,求可能性最大的状态序列;
3.学习问题:对于给定的一个观察值序列,调整参数λ,使得观察值出现的概率p(σ|λ)最大。
 
算法:
评估问题:向前算法
定义向前变量
采用动态规划算法,复杂度O(N2T)
解码问题:韦特比(Viterbi)算法
采用动态规划算法,复杂度O(N2T)
学习问题:向前向后算法
EM算法的一个特例,带隐变量的最大似然估计

 这里用向前算法作出说明:

例子:词性标注

问题:

已知单词序列w1w2…wn,求词性序列c1c2…cn

HMM模型:
将词性为理解为状态
将单词为理解为输出值
训练:统计词性转移矩阵[aij]和词性到单词的输出矩阵[bik]
求解:Viterbi算法
 
总结:
HMM模型可以看作一种特定的Bayes Net
HMM模型等价于概率正规语法或概率有限状态自动机
HMM模型可以用一种特定的神经网络模型来模拟
优点:研究透彻,算法成熟,效率高,效果好,易于训练

评论被关闭。