马尔科夫链和隐马尔可夫模型(转载)

Posted 川师15级软工研=雁=

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了马尔科夫链和隐马尔可夫模型(转载)相关的知识,希望对你有一定的参考价值。

马尔可夫模型是由Andrei A. Markov于1913年提出的

 设 SS是一个由有限个状态组成的集合

S={1,2,3,,n1,n}S={1,2,3,…,n−1,n} 随机序列 XX 在 tt时刻所处的状态为 qtqt,其中 qtSqt∈S,若有:

P(qt=j|qt1=i,qt2=k,)=P(qt=j|qt1=i)P(qt=j|qt−1=i,qt−2=k,⋯)=P(qt=j|qt−1=i)
aij0jnaij=1aij≥0∑jnaij=1

 

则随机序列 XX构成一个一阶马尔科夫链。(Markov Chain)

 令 P(qt=j|qt1=i)=P(qs=j|qs1=i)P(qt=j|qt−1=i)=P(qs=j|qs−1=i)(说明是齐次的,即转移概率不随时间改变),则对于所有的 i,ji,j有下面的关系成立:

aij=P(qt=j|qt1=i)1i,jnaij=P(qt=j|qt−1=i)1≤i,j≤n

 

 

 一阶马尔科夫模型可以描述为一个二元组 (S,A)S(S,A)S是状态的集合,而AA是所有状态转移概率组成的一个 nn行 nn列的矩阵,其中每一个元素 aijaij为从状态i转移到状态 jj 的概率。

 同有限状态自动机类似,状态转移关系也可以用状态转换图来表示。

image

 

马尔科可模型举例

 天气的变化,三种状态{1(阴天), 2(多云), 3(晴天)}

 今天的天气情况仅和昨天的天气状况有关

 根据对历史数据的观察得到下列状态转移关系

image

 对于马尔科夫模型,给定了观察序列,同时也就确定了状态转换序列。例如有关天气状况的观察序列

(晴 晴 晴 阴 阴 晴 云 晴)

则状态转换序列为

(3, 3, 3, 1, 1, 3, 2, 3 )

 如果把晴天称为状态3的输出,阴天称为状态1的输出,多云称为状态2的输出。根据观察到的输出序列就可以决定模型中的状态转换序列。(状态和输出是一对一的关系)

坛子与小球

 在一个房间中,假定有 NN个坛子,每个坛子中都装有不同颜色的小球,并且假定总共有 MM种不同颜色的小球

 一个精灵在房间中首先随机地选择一个坛子,再从这个坛子中随机选择一个小球,并把小球的颜色报告给房间外面的人员记录下来作为观察值

 精灵然后把球放回到坛子中,以当前的坛子为条件再随机选择一个坛子,从中随机选择一个小球,并报告小球的颜色,然后放回小球,如此继续…,随着时间的推移,房间外的人会得到由这个过程产生的一个小球颜色的序列

 如果令每一个坛子对应与一个状态,可以用一个一阶马尔科夫过程来描述坛子的选择过程

 在马尔科夫过程中,每个状态只有一个输出,但在坛子和小球的问题中。可以从每个坛子中拿出不同颜色的小球。也就是每个状态能按照特定的概率分布产生多个输出

 在坛子与小球问题中,如果给定一个观察序列(不同颜色的小球序列),不能直接确定状态转换序列(坛子的序列),因为状态转移过程被隐藏起来了。所以这类随机过程被称为隐马尔科夫过程

隐马尔可夫模型

 隐马尔可夫模型 λλ可以表示为一个五元组 (S,V,A,B,π)(S,V,A,B,π)

           SS 是一组状态的集合

                    S=1,2,3,,NS=1,2,3,…,N (状态 nn对应坛子 nn)

           VV是一组输出符号组成的集合(取Visible之意?)

                    V=v1,v2,v3,,vMV=v1,v2,v3,⋯,vM (v1v1对应红色小球)

           AA是状态转移矩阵,NN行 NN列

                    A=[aij],aij=P(qt+1=j|qt=i),1i,jNA=[aij],aij=P(qt+1=j|qt=i),1≤i,j≤N

           BB是输出符号的概率分布

                    B=bj(k)bj(k)B=bj(k)bj(k) 表示在状态 jj时输出符号 vkvk的概率

                    bj(k)=P(vk|j),1kM,1jNbj(k)=P(vk|j),1≤k≤M,1≤j≤N

           ππ是初始状态概率分布 π={πi}π={πi}

                   πi=P(q1=i)πi=P(q1=i)表示时刻1选择某个状态的概率

 隐马尔可夫过程是一个双重随机过程,其中一重随机过程不能直接观察到,通过状态转移概率矩阵描述。另一重随机过程输出可以观察到的观察符号,这由输出概率来定义

利用隐马尔可夫模型生成观察序列

 可以把隐马尔可夫模型看做符号序列的生成装置,按照一定的步骤,隐马尔可夫模型可以生成下面的符号序列:

O=(o1,o2,,oT)O=(o1,o2,⋯,oT)

\\1.\\1.  令 t=1t=1,按照初始状态概率分布 ππ选择一个初始状态 q1=iq1=i

\\2.\\2.  按照状态i输出符号的概率分布 bi(k)bi(k)选择一个输出值 ot=vkot=vk

以上是关于马尔科夫链和隐马尔可夫模型(转载)的主要内容,如果未能解决你的问题,请参考以下文章

条件随机场和隐马尔科夫模型最大区别在哪里?

从马尔可夫模型到隐马尔可夫模型

HMM(隐马尔可夫模型)

如何用简单易懂的例子解释隐马尔可夫模型

隐马尔可夫模型——马尔可夫模型(转载)

机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM) 代码实现