隐马尔科夫模型知识点记录

隐马尔科夫模型

本文的目的主要是记录跟隐马尔可夫相关的知识。主要是在阅读书籍与博客的过程中对知识点的记录,以防忘记,能力有限,有错误之处,请指出!

概念

隐马尔科夫模型英文名称为Hidden Markov Model(HMM),其本质上是一个概率图模型,而概率图模型是一个大家族,先扔一个结构图:
隐马尔科夫模型知识点记录_第1张图片

  • 动态贝叶斯网络主要用于处理随时间变化的动态系统中的推断和预测问题。
  • 隐马尔科夫模型实际上是动态贝叶斯网络的一种简化,对于每一个时间点,他只考虑上一个时间点的状态,而不考虑上一个时间点之前的状态。

观测序列和隐藏序列、状态序列

在这里我不想写它们的定义,就简单的举两个例子。

例1,在nlp中分词是一个很重要的功能,例如:“重庆市长江大桥”,这句话可以分成:重庆市长 江大桥,也可以分为:重庆市 长江大桥,不同的分法,含义截然不同,我们假设B、M、E、S,分别代表一个词的开始,中间,结束和这个字单独成词,比如‘B重M庆M市E长 B江M大E桥’ ,表示“重”是这个词的开始,“庆”和“市”是这个词的中间,“长”是这个词的结尾,所以这句话分词后是:重庆市长 江大桥。

在这个例子中我们把“重庆市长江大桥”称之为观测序列。把要预测的B、M、E、S称之为状态序列,也叫隐藏序列。

在这个例子中,用隐马尔科夫模型的目的是给出一个观测序列,即一句话,然后预测它的状态序列,在本例中预测状态序列可能是“BMME BME”或者“BME BMME”,哪个概率大选哪个,这取决于训练模型时所用的语料库。

例2、有三个箱子,代号分别为A、B、C,每个箱子里有十个球,其组成如下表:

箱子 白色球数量 黑色球数量
A 5 5
B 3 7
C 6 4

假设这三个箱子的代号都用黑布蒙上,然后随机的取出四个球,然后这四个球的颜色为:白、黑、黑、白。
在这个例子中观测序列就是取出的这四个球的颜色(按顺序),而状态序列或隐藏序列即为每次取球时箱子的代号。

转移概率、发射概率、初始概率

继续拿上面的箱子的例子来说,上面的假设不变,我们在增加几条假设:

1.刚开始从A箱取球的概率为0.2, B箱概率为0.5, C箱概率为0.3.
2.假如本次是从A箱取得球,那么下一次还在A箱取得概率为0.5,转移到B箱的概率是0.2,转移到C箱的概率是0.3;若本次是在B箱取得球,那么下一次转移到A、B、C的概率分别为0.5、0.3、0.4;若本次是C箱取得球,那么下一次转移到A、B、C箱的概率分别为0.4、0.3、0.3.

初始概率:

我们把第一条的数据叫做初始概率,可以这样表示P0=[0.2, 0.5, 0.3]

转移概率:

把第二条的数据称为转移概率,可以看出它是一个矩阵,所以也叫转移矩阵,通常这样表示T=:

[ 0.5 0.2 0.3 0.5 0.3 0.4 0.4 0.3 0.3 ] (3) \left[ \begin{matrix} 0.5&0.2 & 0.3 \\ 0.5& 0.3 & 0.4 \\ 0.4& 0.3 & 0.3 \end{matrix} \right] \tag{3} 0.50.50.40.20.30.30.30.40.3(3)

发射概率:

本例中,当本次摸球是在箱B,即状态为B时,摸到白球的概率p(白球|B)=3/10,摸到黑球的概率p(黑球|B)=7/10.我们把这个概率称之为发射概率,可以看出它也可以写成一个矩阵,即发射矩阵E=:

[ 0.5 0.5 0.3 0.7 0.6 0.4 ] (3) \left[ \begin{matrix} 0.5&0.5\\ 0.3& 0.7 \\ 0.6& 0.4 \end{matrix} \right] \tag{3} 0.50.30.60.50.70.4(3)

隐马尔可夫模型可以解决的三个问题(从三种不同角度出发)

1.给定一个观测序列O1和模型参数(初始概率p0,转移矩阵T,发射矩阵E),求出此观测序列O1的概率,使用前向-后向算法。
2.给定一个观测序列O1和模型参数。求出隐藏序列,使用维特比算法。
3.给定一个观测序列O1,如何调节模型的参数,使得O1出现的概率最高,即参数估计问题,使用鲍姆威尔士算法,其实质是一个EM算法。

你可能感兴趣的:(自然语言处理,机器学习)