写点什么

从头开始(概率)学 HMM:精讲第一课 - 隐马尔可夫模型定义

用户头像
herosunly
关注
发布于: 刚刚
从头开始(概率)学HMM:精讲第一课-隐马尔可夫模型定义

1. HMM 概念(观测序列 &状态序列)

  在学习 HMM(隐马尔可夫模型)之前,我们接触最多的就是分类问题和回归问题,其中分类模型如逻辑回归、决策树模型等;回归模型如多元线性回归。除此之外,还有另一类问题,序列标注问题,如词性标注,对于一个样本,输入是一句话,比如“the book is interesting”,预测的是每个词的词性(动词、名词等)。之前学到的逻辑回归和决策树,通常解决的是这一句话属于什么类别,比如在情感分类中,"the book is interesting"整句话被分类成中性。但现在我们需要预测这句话中每个词的类别。这就用到了本章所讲到的 HMM 模型,因此 HMM 也被称为时序模型或者说序列模型。后续学习中,也可以使用 lstm 等模型解决这类问题。本章仅讨论 HMM。  还是以刚才"the book is interesting"为例,the 对应的词性为介词,book 的词性为名词,is 对应的词性为系动词,interesting 对应的词性为形容词。在语言的世界中我们能够观测到的是这句话,其背后对应的词性是不会被观测到的,或者说是被隐藏的。因此,这里引出了两个新的概念,观测序列和隐藏序列(或者说是状态序列)。


  • 观测序列定义为,其中是变量名,含义是一个词(针对本例),小角标 i、T 等代表时间;变量对应的所有可能的值用集合来表示。如本例 V 就是词典,假如,其中 v_7 就是 the,M 是观测值的种类数(本例即词典中词的种类数)

  • 状态序列定义为。其中是变量名,代表词性(针对本例),小角标 t、T 代表时间。变量对应的所有可能的值用集合来表示。如本例 Q 就是所有词性的集合,N 是状态的种类数(本例就是词性的种类数)。  虽然,在语言的世界里面,我们能够看到的是观测序列 O,而状态序列 I 不能观测到。但 HMM 生成序列的基本原理则是,给出状态序列 I,生成观测序列,以"John saw the saw"为例。给出状态序列 I=(PN, V, D, N),生成观测序列 O=("the", "book", "is", "interesting")。以上过程可以总结成以下两步:

  • 第一步:基于语法产生一个词性序列(状态序列):

  • 第二步:基于词性序列和字典,生成句子序列(观测序列),如下图,PN 可以从 Tom、John....中选择,最终选择 John 的概率是 0.2,V 生成 saw 的概率是 0.17......因此,最终"John saw the saw 的概率是这些值的连乘,如图片所示"。

  用数学公式,描述上述例子的过程,如下图所示(这里有个假设,只和前一个有关;只和有关,此外,图中的 y 就是 I,x 就是 O,为了方便,就直接用图片的 y 和 x 表示):

将上述一般化,用公式表示为下图所示:

  • 图中的 Transition probability 指的是已知 $y_l$求 $y_{l+1}$,思考一个问题,对于上例可能是已知 $y_l=PN$的条件下 $y_{l+1}=V$的概率;那么换一个例子,可能是已知 $y_l=N$的条件下 $y_{l+1}=D$的概率。为了考虑到所有情况,我们可以构造一个二维矩阵,每一行代表一个词性,每一个代表一个词性,其中的某一个元素就表示,所在行的词性已知的条件下,得到列所代表词性的概率。这个矩阵就称为状态转移矩阵。下述会再详细讲述。

  • 图中的 Emission probablitity 的概念和 Transition probability 理解起来相似,由此可以得到一个发射矩阵,又称为观测概率矩阵,下述详讲。


  思考上张图片的表达式,都有哪些东西可能已知,哪些东西可能未知呢?换句话说,就是已知什么求什么。比如我们可能能观测到序列 O 或者时候是 x,也知道上述两个矩阵,求出现我这个观测序列的概率;或者我能观测到 O,想求两个矩阵,也就是参数。总而言之,有几种可能性 ,这些可能性就是 HMM 需要解决的问题,下述也会详细讲解。本章的案例仅做抛砖引玉。


2. 隐马尔科夫假设

从本章开始,回归到表达式 O 和 I,第一章的案例仅是为了初步理解,后续,不再使用 x 和 y 表示。HMM 经常使用下图来形象化表示:

从图中可以看到状态转移到了状态;状态还能够指向观测,以此类推。为了更好地理解该图,还需要知道隐马尔可夫的两个假设。


  • 假设:

  • 假设 1:齐次马尔科夫性:隐藏的马尔科夫链在任意时刻的状态只依赖于前一时刻的状态,与其他时刻状态和观测无关,也与时刻 t 无关。。因此可以在图上看到指向的箭头只有。ps:这里假设的公式化定义其实就是条件独立的定义,在学习隐马尔可夫模型的过程中需要用到很多概率的知识,建议先去博客常见的概率公式及其推导(马尔科夫 HMM 系列课程拓展)中复习下简单的概率公式及其推导。条件独立说明在已知的情况下,条件独立。拓展说明:在已知的情况下,中的任何一个或者几个的组合都是条件独立的(假设的定义如此)

  • 假设 2:观测独立性假设:假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测及状态无关:。从图中可以看到指向的箭头只有。假设 2 也是条件独立的定义:在已知的情况下,条件独立。拓展说明:在已知的情况下,中的任何一个或者几个的组合都是条件独立的(假设的定义如此)

3. 状态转移矩阵 &观测概率矩阵(发射矩阵)&

3.1 状态转移矩阵和

  从第 2 章的图示以及定义可以看到,状态只由决定,也就是说在已知的情况下,转移到的概率。而的状态都有 N 种,故由有 N*N 种可能,可以用一个矩阵 A 来表示。$$A=[a_{ij}]{N×N}$a


{ij}q_iq_j$的概率(隐藏条件是时刻 t),用数学公式表示为



  假如我们只知道,没有明确也可以写成如下形式(灵活运用表达式):



  对于每一个时刻从状态转移到都遵循上述矩阵 A 的规则,但是对于时刻 t=1 呢?时刻 t=1 需要知道时刻 t=0 转移到时刻 t=1 的概率,但是时刻 t=0 是不存在的。因此规定时刻 t=1 时,给定每个状态一个初始概率来表示 t=0 到 t=1 时的状态转移概率。而我们知道状态的种类一共有 N 种,因此是一个向量,表示每种状态出现的概率。



3.2 观测概率矩阵(发射矩阵)

  类比状态转移矩阵,观测只由决定,也就是说在已知的情况下,转移到的概率。而的状态有 N 种,的可能有 M 种,故由有 N*M 种可能,可以用一个矩阵 B 来表示。$$B=[b_j(k)]{N×M}$b_j(k)q_jv_ki_to


{t}i_t=q_i;o_{t}=v_ka_{ij}$也可以写成如下形式(灵活运用表达式):


3.3

  隐马尔可夫模型由初始状态概率向量,状态转移矩阵 A 和观测概率矩阵 B 决定。和 A 决定状态序列,B 决定观测序列。因此,隐马尔可夫模型可以用三元符号表示



  A,B,称为马尔科夫模型的三要素。


# 4. 隐马尔科夫模型需要解决的问题

## 4.1 三大基本问题

  每学一个模型,我们都需要弄清楚,该模型到底是干什么的,比如逻辑回归就是做分类的,word2vec 是得到词向量,那么 HMM 呢?HMM 到现在涉及三个主要的大概念,观测序列,状态序列,参数。因此隐马尔可夫模型解决的问题有三个,但都离不开这三个大的概念。


  • 概率计算问题:给定模型和观测序列,计算在模型下观测序列 O 出现的概率。该问题可以说是依靠学习问题,因为该问题既需要知道 O 还需要知道。解决该问题经常使用前向算法或者后向算法。

  • 学习问题:已知观测序列,估计模型,使得在该模型下观测序列概率最大。这个问题就有点像平时的分类模型,已知 y,求参数,只是我们没有所谓的 x。解决学习问题通常用 EM 算法。

  • 预测问题(解码问题):已知模型和观测序列,求对给定预测序列条件概率 P(I|O)最大的状态序列。该问题其实是最被常用的,也是我们之前一直提到的如何进行序列标注。解决该问题需要用到维特比算法。

  • 思考:除了上述问题,马尔科夫模型还能干别的吗?其实是可以的,比如我已知观测序列 O,状态序列 I,参数,可不可以求下一时刻 T+1 的状态值和观测值。

4.2 由三大问题引发的思考:序列生成及三大基本问题的可用性

  思考:除了上述三大问题,HMM 还能解决其他问题吗?比如已知 O 和以及参数,那么能不能求下一时刻 T+1 的状态值和观测值?答案是可以的。因为已知了,且已知上一时刻 T 的状态,下一时刻的状态就是中值最大的那个状态 n。下一时刻的观测值同样的道理。这个问题就是序列生成的概念。

4.2 由三大问题引发的思考:序列生成及三大基本问题的可用性

  思考:除了上述三大问题,HMM 还能解决其他问题吗?比如已知 O 和以及参数,那么能不能求下一时刻 T+1 的状态值和观测值?答案是可以的。因为已知了,且已知上一时刻 T 的状态,下一时刻的状态就是中值最大的那个状态 n。下一时刻的观测值同样的道理。这个问题就是序列生成的概念。

  虽然序列生成理论上可以,但是真的有用吗?除了序列生成问题,上述三大基本问题又在做什么,真的有用吗?


  先来回顾下之前的模型:逻辑回归。应用多元线性回归的过程是什么:训练-预测。训练阶段在做的就是已知输入 x 和标签 y,训练他得到参数。预测做的就是已知参数,输入 x 可以得到 y,此外还能得到得到 y 的概率。


  • 将隐马尔可夫和逻辑回归进行对比。

  • HMM 中学习问题是已知观测序列 O,求参数使得观测序列的概率值最大,其实这不就有点像逻辑回归中已知 y(当然逻辑回归还要已知 x,这就是为什么很多人说,逻辑回归是判别模型,HMM 是生成模型,虽然加以对比,但还是有点不一样的),求参数,使得出现 y 得到的损失最小。所以 HMM 的学习问题就像逻辑回归的训练过程。因此,在命名实体实体任务中,经常将 HMM 用在 lstm(一个深度学习模型)后面,两者都要训练参数,训练的过程,对于 HMM 就是求参数的过程。

  • 预测问题:对于 HMM,是已知了参数与观测序列 O,求状态序列,这就像逻辑回归的预测过程。对于 HMM,参数已经确定好了,观测序列也指定了,其对应的状态序列是唯一的。就像逻辑回归,模型参数给定了,输入 x 给定了,求 y,y 的值是确定的。因此预测问题就像逻辑回归的预测。

  • 概率计算问题:承接预测问题,在逻辑回归中,给定参数,和输入 x,求 y,其实是可以求出 y 的两种可能值的(y 为正和 y 为负),那么结果到底是正还是负,取决于正负概率的大小。对于 HMM,概率计算问题,其实就是逻辑回归计算正负概率的过程:已知参数,求得到观测序列的概率

  • 序列生成问题:个人觉得这个问题理论上可行,但是在真实场景不会使用。因为我已经知道参数了,假如给定时刻 1 的观测值为 I,状态为代词。那么通过就能求得下一时刻 t=2 的状态值(所有从状态 1 转移到可能的 N 种状态中概率最大的状态),有了再根据 B 就能得到,t=3,t=4 时刻依次类推。看起来 HMM 好像还能生成文本(解决了文本生成问题),但其实不然,因为只要给了 I,后面跟的文本序列是固定的,因为已经给定了参数,只要不变,I 后面跟的一长串文本都不变;同理给了 want,后面的一长串文本也是固定的。所以序列生成问题只能用于理解,并且在解决学习问题时有应用,但不会真的用序列生成问题生成文本。


发布于: 刚刚阅读数: 2
用户头像

herosunly

关注

还未添加个人签名 2018.05.11 加入

还未添加个人简介

评论

发布
暂无评论
从头开始(概率)学HMM:精讲第一课-隐马尔可夫模型定义