隐马尔可夫模型(HMM)

1.引例

在介绍隐马尔科夫模型的概念之前,还是从一个典型的例子开始。首先对问题的场景进行描述,然后再提出要解决的问题。

4个盒子,每一个盒子中都装有红、白两种颜色的球,总共5个。其中白球和红球的分布情况如图所示,1号盒子中有3个白球,2个红球,2号盒子中有3个白球,2个红球,3号盒子中有4个白球,1个红球,4号盒子中有2个白球,3个红球。

接下来,按照规则抽球,得到一个抽出来的球的颜色序列(称为观察序列)。开始时,随机地从这四个盒子中选择一个盒子抽球,抽取以后,记录抽取的颜色,再将球放回,然后在当前的盒子按照如下的规则转移到下一个盒子继续抽球。规则为:如果当前的盒子为1号,则无条件转移到2号盒子;如果当前的盒子是2号或者3号,则分别以0.40.6的概率转移到它的上个盒子和下个盒子;如果当前的盒子是4盒子,则以0.5的概率留在当前的盒子,以0.5的概率转移到3号盒子。如此继续抽球。

现在要解决的个问题就是假设经过5次抽球,得到一个观察序列为O={红,白,红,红,白}那么,请问根据上面的规则,在只知道上述观察序列的情况下,上述观察序列最可能从什么样的盒子序列中得到?

2.模型的理解与推导

隐马尔科夫模型(HMM)是一个关于时序的概率模型,描述了一个由隐藏的马尔科夫链随机生成的不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。其中,隐藏的马尔科夫链生成的状态随机序列被称为状态序列(State Sequence),每一个状态生成一个观测,由此产生的观测随机序列被称为观测序列 (ObservationSequence)。序列的每一个位置都可以看作一个时刻。每一个状态之间以一定的概率进行转换,生成的观测序列也不止一个,因此也存在一个概率的分布。

因此,可以看出隐马尔科夫模型主要由五部分组成:状态序列、状态转移矩阵、观测序列、观测概率分布以及一个初始的状态分布。

个人认为,隐马尔科夫模型是一个通过表象看本质的学习模型。表象就是我们观察到的,本质就是隐藏在表象背后的实质。通过这个模型,可以看到背后实质的分布情况。例如拼音输入法,我们输入的拼音字母就是观测序列,而这个观测到的表象的实质应该是我们想要的汉字短语或者是句子。隐马尔科夫模型就是通过输入的拼音字母生成最大可能的汉字序列,概率越大的就放在越靠前的位置。

正是因为隐马尔科夫模型存在这样的隐变量,才因此得名

隐马尔科夫模型属于概率图的一种,是一种生成式算法。也就是说它会从给定的数据集中学习到数据的一种概率分布。但是和一般的生成式模型不同的是,它处理的是一个序列判定的问题。在一些与时间相关的问题中,也就是某过程随着时间而进行,如果在t时刻发生的事情受t-1时刻发生的事情的直接影响,那么这个问题就可以通过隐马尔科夫模型来很好地解决。隐马尔科夫模型具有一组已经设置好的参数,可以最好地解释特定类别中的样本。在使用中,一个测试样本被归为能产生最大后验概率的那个类别,也就是说这个类别最好地解释了这个测试的样本。

接下来从一阶马尔科夫模型和一阶隐马尔科夫模型两个方面去加深对HMM的认识。

3.一阶马尔科夫模型

考虑在连续时间上的一系列状态。在t时刻的状态被标记为

表示的是在时刻t可能产生的各种状态,但是这个时候产生的是状态

。一个时长为T的状态序列记作:

那序列又是通过什么样的方式产生的呢?这就需要依靠状态转移矩阵,可记作:

表示的是系统在某一时刻t处于状态Wi,在下一个时刻变为状态Wj的概率。这个概率和时间无关,并且并不需要对称,也就是说从状态Wi 转移到 Wj的概率并不等于从状态Wj转移到Wi的概率。同一状态之间的转移也可能发生。我们所说的模型就是指全部的状态转移概率都已经知道,所以在已知模型的情况下,对于一个输入的序列,就可以简单地通过各个状态转移概率相乘得到后验概率的估计。

如上图所示的例子,4个盒子就对应于4种不同的状态。根据已知条件可知,从盒子1一定会转移到盒子2,即从状态1转移到状态2的概率为1.0,

读者可以由此求出一个4x4 的状态转移矩阵。

4.一阶隐马尔可夫模型

假设某一个时刻t,系统处在某一个状态

,同时从这个系统还激发出某种可以被观察到的序列,用符号 v(t)来表示,并且从每一个状态激发出的可观测状态可能有多种,每一个可观测状态

都有其对应的概率。那么在t时刻,由状态w(t)激发出的状态

的概率可以表示为:

。正是因为在这种模型中,只能观察到观测序列

,因此将该模型称为隐马尔科夫模型。

图2.6所示的是一个有两个状态的隐马尔科夫模型示意图,在图中状态点和s都能够产生两个观测序列。状态S1产生出观测v1的概率为0.4即:

,这里表示的其实就是一个条件概率。

因此,一个隐马尔科夫模型可以用

来表示:

,其中的A,B,π表示隐马尔科夫模型的三要素。A表示状态转移矩阵,为从一个状态转移到另一个状态的转移概率,即其中的各元素

,B表示观测概率矩阵,为从一个状态发出某种观测状态的概率即其中的各元素

,π表示初始状态向量,即各个隐状态在初始的时候被选中的概率。

由隐马尔科夫模型可知,它主要可以解决如下三类问题

(1)估值问题:假设已知该HMM的状态转移矩阵A,以及观测概率矩阵 B,那么就可以计算出特定的观测矩阵的概率。

(2)解码问题:假设模型已知,得到一个观测序列,可以求解出最有可能产生该观测序列的隐含状态序列。

(3)学习问题:假设只知道模型的大概结构,可以通过数据对模型的参数进行求解。

下面将举例来说明这些问题的求解。

5.隐马尔可夫模型应用举例

不难看出之前的引例是一个解码问题:模型已知,生成的序列已知,希望从给定的序列求解出其隐含的状态序列。首先将该模型进行描述,将图2.4中的4个盒子看作4种状态,每一种状态都可能转换为另一种状态,因此每一种状态都存在 4种状态转移的可能。所以构建出的状态转移矩阵的大小为4x4。其中,每一个元素表示的是转移概率,于是得到状态转移矩阵4为:

而在某个特定的状态下,得到的观测序列的概率矩阵用B来表示这里存在4种状态,在每一种状态下都有两种观测的可能,即红和白。因此,B的大小为4x2。通过对图的观察,用第1列表示红球的概率,第2列表示白球的概率,得到B矩阵为:

同时,采取随机化的策略,得到初始的状态被选中的概率为:

接下来就要求解解码问题:假设,经过2次抽球(为了篇幅,将问题简化),得到一个观察序列为:

那么最可能的隐含状态序列是什么(也就是说,这 2 次抽球最可能是从什么样的盒子的顺序当中抽取出来的)?

由状态的初始状态以及观测序列的第一个元素可知,对于每一个状态i(i=1,2,3,4)对应的观测值为红的概率为:

因此计算得到的结果为:

观测序列的第二个值为白色,那么就要考虑从第一个状态转移到第二个状态,并且在此基础上产生白球的最大可能。因此,此时的情况稍微复杂一点:从以上的四种状态分别进行状态转移并且产生白球,找出其中最大的那一个。

对于第一种状态,只能转移到第二种状态,因此得到的概率为:

对于第二种状态,能转移到第一种状态或者是第三种状态,因此对于转移到第一种状态下的情况得到的概率为:

而如果是转移到第三个状态之后,得到的概率应该是

对于第三种状态,和第二种状态类似,能转移到第二种状态或者是第四种状态。我们仍然可以做出类似的计算。但是,其实从序列的第个元素的概率就知道,极不可能从第三种状态进行转移(当然,如果后面的概率足够大也是可能的,请读者自行计算)。

再来看最后一种状态,对于第四种状态,能保持在本状态也能够转移到第三种状态,因此对于保持在本状态下的情况得到的概率为:

而如果是转移到第三个状态之后,得到的概率应该是:

因此,根据计算出的概率结果可知要产生序列O=红,白,最可能的路径是:从2号盒子开始抽到了红色的球,然后又从3号盒子中抽到白色的球。至此,HMM在解码上的应用就算是解决了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请叫我小小司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值