1. 引言
隐马尔可夫模型是结构最简单的动态贝叶斯网络。是一种有向图模型,主要用于时序数据建模,在语音识别,自然语言处理(NLP),生物信息,模式识别等领域有广泛的应用。HMM是关于时序的概率模型,描述一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再有各个状态生成一个观测而产生观测随机序列的过程。
2. HMM变量
HMM中的变量可分为两组。第一组是状态变量 {y1,y2,y3,...,yn}其中 yiϵY表示第 i时刻的系统状态。通常这个状态是隐藏的,不可观测的,因此状态变量也称为隐变量。第二组是观测变量 {x1,x2,...,xn},其中 xiϵX表示在第 i时刻的观测值,在HMM中,系统通常在多个状态 {s1,s2,...,sN}之间切换,因此状态变量 yi的取值范围 y称为状态空间通常是由N个可能取值的离散空间,观测变量可以是连续的,也可以是离散的。在这里假定观测变量 x为 {a1,a2,...,aM}。
3. HMM的结构
箭头表示为变量间的依赖关系,在任一时刻观测变量的取值仅依赖于状态变量,即 xt由 yt确定,与其他状态变量即观测变量无关。同时t时刻的状态 yt仅依赖于 t−1时刻的状态 yt−1以其他 t−2之前状态无关。这就是所谓的马尔科夫链:即 系统下一时刻的状态仅有当前状态决定,不依赖于过往的任何状态,基于这种依赖关系,所有变量的联合分布概率为 P(x1,y1,...,xn,yn)=P(y1)P(x1∣y1)i=2∏nP(yi∣yi−1)P(xi∣yi)
4. HMM的参数
- 状态转移概率:模型在各个状态间转移的概率,通常记为矩阵 A=[aij]N×N其中 aij=P(yt+1=sj∣yt=si),i≤i,j≤N表示在任意时刻t,到下一时刻t+1,即 st→st+1的概率。
- 输出观测概率:模型根据当前状态获得各个观测值的概率,通常记为矩阵 B=[bij]N×M其中 bij=P(xt=oj∣yt=si),1≤i≤N,1≤j≤M表示在任意时刻t,若状态为 si观测值为 oj被获取的概率。
- 初始状态概率:模型在初始时刻各状态出现的概率,通常记为 π={π1,π2...,πN}其中 πi=P(yi=si),1≤i≤N表示为模型初始状态为 si的概率。
通过以上的结构和参数就可以确定一个HMM
5. HMM的生成步骤
(1)设置t=1,并根据初始状态概率π选择初始状态 y1;
(2)根据状态 yt和输出观测概率B选择观测变量取值 xt;
(3)根据状态 yt和状态转移矩阵A转移模型状态,即确定 yt+1;
(4)若t<n,设置t=t+1,并转移到第二步,否则停止。