当前位置: 诗词网 >问答 >小学 >数学 >HMM中的虚状态是怎么起作用的?连续语音...

HMM中的虚状态是怎么起作用的?连续语音识别中,对音素用HMM建模之后,通常会在起始和结束部分添加两个状态,他们被称作虚状态,好像是用作连接用的,可是,它们究竟是怎么起作用的呢,举个例

更新时间:2024-04-27 03:04:57
问题描述:

HMM中的虚状态是怎么起作用的?

连续语音识别中,对音素用HMM建模之后,通常会在起始和结束部分添加两个状态,他们被称作虚状态,好像是用作连接用的,可是,它们究竟是怎么起作用的呢,举个例子:如果对音素建模时采用3个状态,前向,带自环,无跨越的HMM拓扑结构,那么加上前面的起始状态和最后的结束状态,就应该有5个状态,自左向右,分别是1,2,3,4,5,问题是最后一个状态时怎么转移的,也就是说第4个状态到第5个状态(结束状态)之间的转移概率是多少,4到5的转移概率会不会影响到4本身的转移概率(如果没有虚状态,4的自转移应该是1)?是不是不用去理会它俩之间的转移,直接给个1或者别的什么值?如果不是,怎么得到4到5的转移概率呢?那应该怎么训练呢?

可能你没弄懂我的问题,问题不是HMM的三个基本问题,而是,面对像连续语音识别这样的问题的时候,训练的是很小的单位,比如音素,每个音素都是一个HMM,但识别的时候,简化一点,假设识别的是一个词,一个词是由多个音素组成的,那么,该怎么连接这些单独训练的小HMM,材料上说是用虚状态连的,问题的关键就是,对每一个小HMM最后一个带观察值的状态,是以多大的概率转向虚状态的?因为在训练小HMM时,并没有训练这个概率,如果按照问题最初的HMM(见原问),最后一个带观察值的状态的自转应该是1,但现在貌似不应该这样?而且,即便知道了这个转移概率,又怎么去连接其他的模型呢?

郭晓轮回答:

  假设我们已经获得了构成一个序列的观测数据{x[t]},t=1,...,T.x[i]是观测值,而对应的y[t]是无法直接观测的隐含变量.

  1.BaumWelch算法用于训练HMM模型

  训练HMM模型就是求解HMM模型三组参数的过程:1)初始时刻的概率分布π2)相邻时刻状态的转移概率p(y[t]|y[t-1])3)观测值的生成概率p(x[t]|y[t])

  BaumWelch算法是采用了EM算法的推导框架,不断的迭代更新先验和后验概率,其具体的高效计算依赖于ForwardBackward(前向后向)算法.

  2.ForwardBackward算法用于计算在时刻t处于某一状态y[t]的条件概率

  P(y[t]|x[1],...,x[N])=f(y[t]|x[1],...,x[t])b(x[t+1],...,x[N]|y[t])

  f和b分别是前向和后向向量.

  3.Viterbi算法用于求解最大似然的状态序列

  在HMM模型训练完成之后,就可以使用Viterbi算法对新的观察序列对应的最大似然的状态序列进行预测