-->

机器学习40讲_35_33_序列化建模隐马尔可夫模型

你好,我是王天一。

今天我和你分享的主题是序列化建模引马尔可夫模型。

前几讲当中所介绍的概率图模型呢都没有涉及到时间。

这个尺度模型所表示的都是同一个时刻之下的状态。

所以呢也就不能够建模随机变量它动态变化的一个特性。

如果说要定义系统在一个时间尺度上的演化,就需要引入系统状态的概念。

那每一时刻的系统状态都是表示这个系统某个属性的随机变量,将图模型当中的节点用表示时间流动的这个游戏向边给它连接起来。

得到的呢就是动态贝叶斯网络。

那最简单的动态贝叶斯网络之一就是这个野马可夫模型。

野马尔可福模型,它实现的是序列化的建模。

他打破了对数据独立同分布这样一个固有的假设,而是侧重于时序上的依赖关系。

在自然语言还有金融市场数据这一类时间序列当中,某个数据呢往往会受到之前数据的影响。

如果说这种情况之下,还要强行套用这个独立铜喷布架设的话,肯定呢不会符合真实的情况。

而也马尔可夫模型正是将过去。

对现在的影响啊纳入到模型当中,以此来实现更加准确的一个预测。

马尔卡福过程可以表示持序依赖野马尔可夫模型,正是通过隐藏状态生成观测序列。

这样的马尔可夫过程,在更简单的这个马尔可夫链当中呢,所有状态都是可见的,都是可以观察的,所以状态转移概率是唯一的参数。

但是在野马尔可夫模型当中,状态本身并不是直接可见的,可见的是什么呢?是由状态所决定的。

这个输出由于每个状态呢都有和输出相关的这个概率分布,所以根据野马尔可夫模型的这个输出呢,就能够对隐藏的状态来进行推断。

野马尔可夫模型可以通过下面这个例子来直观的描述。

这个例子呢来自于维基百科,是匈牙利的数学家乔治波利亚所提出的罐子问题。

啊,一个简单的变种,点击文稿。

你可以看到这个问题的图示,在一个观察者不能靠近的房间里呢,有三个罐子啊,x一、x二、x三,那每个罐子里呢都有啊。

同样标签的四个球,y一到y四啊,每个罐子里都有这四种球,一个具有上帝视角的控制者。

首先按照一定的概率啊,先选择一个罐子,到底是一号、二号还是三号,再从选定的罐子里随机的抽取出一个球,放到和房间外面所连接的这个传送带上。

同时呢再补充一个相同的球到这个被抽取的罐子当中。

这样的话,在房间外的观察者,他所看到的就是每次抽出来的球到底是哪一个,而不知道每次抽球的罐子是哪一个。

在野马马可夫模型当中,罐子表示的是由概率模型所生成的不可观测的随机序列。

每个罐子都代表了系统的一种状态,所以这个序列呢叫做状态序列,也就是上图中圆圈的部分。

从罐子里抽出的球表示的是由每个状态所生成的观测所组成的随机序列。

这个可见的序列呢叫做观测序列,也就是上图当中方形的部分。

那么序列当中的每一个位置呢,它都代表了一个时刻啊,所以整个银码模型定义的是一个时序上的关系。

回到前面的例子啊,在选举罐子的时候呢,控制者的策略并不是完全随机的。

他在某一时刻的选择,只取决于前一时刻的选择。

而和之前所有时刻的选择呢都没有关系,这样的状态变化过程就是其次,马尔科夫过程有一种浪漫的说法是什么呢?鱼的记忆只有七秒啊,经常出现在各种各样的言情小说当中,把这种说法套用在马尔可夫过程之上。

那么其次,马尔可夫过程的记忆就只有一轮。

在前面例脏中,如果某个时刻的状态是x三,那就说明上一时刻的状态一定是x二。

因为从状态x一是没有办法直接的跳到x三的。

在观测的时候,任意时刻的观测只依赖于当时的状态,既和其他的状态没有关系,也和其他的观测没有关系。

这样的银马尔可夫模型呢,我们说它满足这个观测的独立性。

那么基于其次,马尔可夫性还有观测独立性。

这两个假设啊就可以给出野马尔可夫模型。

它的一个定量的表示。

假设说所有可能的状态共有大n个。

那么所有可能的观测结果呢共有大m个所有抽取出来的状态结果构成了长度为t的这个状态序列。

那所有状态生成的观测结果呢则构成了长度同样为t的观测序列。

在第一个时刻的状态选择当中,每个状态会被赋予一个初始的概率。

那这些初始概率共同组成了初始概率的一个向量。

随着时序的推移呢,系统的状态也会不断变化。

啊,我可能从上一个状态跳到下一个状态,这个概率呢叫做转移概率。

因为状态的数目总共有n个,所以呢状态转移概率它就组成了一个维度和状态数目相同的这个n维的对称的方阵。

这个方阵就是所谓的状态,转移矩阵,对于观察者来说呢状态是不可见的啊,那他也不知道这个状态的转移矩阵啊到底是什么样。

但是他能看到的是由状态所生成的观测,状态和观测呢还不是一一对应的关系。

一个状态会按照这个概率分布产生不同的观测。

那么在某一时刻呢,一个状态生成一种观测的概率被叫做发射概率,或者叫观测概率。

因为可能的状态数目有大n个,每个状态呢又有m种可能的观测。

那这么多观测的概率就共同形成了n行m列啊这样的一个观测概率矩阵。

这和前面的状态转移概率矩阵是对应的初始状态概率向量状态转移概率矩阵、观测概率矩阵。

这三者共同构成了野马尔可夫模型的三要素。

初始概率向量,它确定了隐马尔可夫模型的结构状态,转移矩阵,生成了隐藏的状态序列。

观测概率矩阵则确定了如何从状态生成观测,三者共同定义出完整的也马尔科福模型。

那么点击文稿,你可以看到模型的概率图,表示在野马可龙模型当中表示隐藏状态,这样的变量也叫做演变量。

一般来说呢,马尔可布雷尔假设当前的输出只和之前的有限的输出有关,这有限个输出的数目就是阶数,马尔可夫利尔的阶数越高,它需要确定的参数也就越多。

那么对于其次马尔可夫过程来说啊,它的接触就是一因为它只和前一时刻的这个状态有关。

但是对于隐马尔可夫模型来说,它通过引入演变量,它是将观测或者说将输出之间的马尔可夫性转移成了演变量,也就是状态之间的马尔可夫性。

这样做呢,虽然说没有明显的增加参数的数目,但是却能够表现输出之间更加复杂的依赖关系。

啊,虽说我的状态只是一阶的这个其次马尔可夫过程,但是体现在输出上,这个依赖关系就不止依赖于前一时刻的输出,也可能依赖于前两个时刻或者前三个时刻啊观测结果这种结构呢也被称为叫做状态空间模型。

状态空间模型呢是在信号分析和控制论这些领域当中都有广泛的应用。

从时序上看呢,上面的模型具有马阿尔克夫的特性。

但是从数据生成角度来看,野马尔可福模型又可以看成是一种推广的混合模型。

从上面的图示中可以看出,同样的观测结果可能来自于不同的状态。

所以呢就可以看成是不同状态的混合,每一个状态都对应着混合结果的一个成分。

只不过呢其中不同的成分啊不是说相互独立,而是由马可布戴尔所定义的依赖关系给它联系起来。

推而广之呢,混合模型就是由若干个成分构成的概率模型,每个成分都来自一个独立的概率分布。

这在之前介绍统计学习的时候也有所提及。

在总体当中采出来的每个样本都是多个成分的混合。

所以说在单个样本中啊,我分辨不出来哪个成分占据了多少的比例啊,或者说这个样本到底来自于哪一个独立的成分。

但是通过多个样本的统计特性,就可以推断出每个混合成分的特征。

最常见的混合模型呢是高斯混合模型。

这在前面我们也有介绍高斯混合模型的,每个成分都是高斯分布。

今天呢我们先把这部分内容按下不表,稍后再来进行详解。

野马尔可福模型呢它属于生成模型,可以从贝叶斯的角度来加以审视,也马尔可夫的三要素共同定义了状态,还有观测的联合分布,其中的转移概率相当于隐藏状态的鲜验分布。

而观测概率呢相当于已知状态是观测的这个自然分布。

但是对于隐藏状态本身而言啊,我们默认了它们的鲜验分布是不包含信息的这个均匀分布。

但由于转移概率本身是多取值的,这个分类分布,所以一个自然的思路呢就是将转移概率的先验设置为迪利克雷分布,也就是分类分布的一个共轭先验迪迪克雷分布当中有一系列的参数,r八i不止一个。

但是如果所有参数的取值都相等的话啊,这样的分布就是对称迪利格雷分布。

这种分布呢可以看成是无限暗的分布,它并不能够反映出哪些状态比其他的状态更加容易出现这里这个唯一的参数啊,我们把它叫做浓度参数,能够决定矩阵的一个稀疏的程度。

虽然不能反映状态的这个选择的偏好,但是却能够决定矩阵的一个稀疏程度。

当这个浓度参数小于一的时候呢,这时候的转移矩阵就是一个稀疏的矩阵。

对于每个给定的原状态,只有少数的目标状态具有不可忽略的转移概率,那么其他的状态呢转移概率都可以视为零的。

如果说一个迪利克内分布还不够的话,那我们还可以使用这个层次化的第一克类分布。

在两极线案当中,上层分布它控制着下层分布的一个参数。

那么下层分布呢则继续的控制转移概率。

这里的上层分布起到的就是前面无信息鲜验的一个作用。

它可以决定哪些状态,更加容易出现它的浓度参数呢?也就决定了状态的密度标准的野蛮马尔可夫模型啊,它是一个生成模型。

他在判别模型当中的对应叫做条件,随机场条件随机场,它融合了马尔可夫随机场无向图的特性和野马尔可福模型条件依赖的特性。

如果将上面狐狸当中野马尔可夫模型中的有向边都给它改成无向边,那就形成了一个线性链条件。

随机场线性链的条件场将状态定义为可见的输入啊,这里的状态不再是隐藏变量,观测概率和转移概率也都重新被定义为特征函数。

特征函数呢就未必需要满足概率它规划的一个特性。

但是呢这个特征函数可以被用来计算输出,关于输入的条件概率,进而呢实现判别的效果。

关于这个条件,随机场的数学细节呢在此就不做赘述了。

在python语言当中啊,有一个专门实践野马尔可夫模型的库叫HMM. Learn这个库呢原本是SK论当中的一个模块。

但是在新的版本当中呢,分家了啊,自立门户。

这里啊我们使用的一个例子啊,是根据这个英超最近十五个赛季曼赤德比,哎,就是曼城和曼联两个对手之间的比赛结果啊所构造出来的一个野马尔可夫模型。

其中的状态变量呢被设定为主客场,有两个趋势啊,要么主场,要么客场观测变量呢则被设定为慢城方的比赛结果啊,我从这个慢城这个角度去看啊,赢了就是胜啊,输了就是负有胜平负这样的三个趋势模型的三要素啊,可以根据这三十场比赛的结果统计出来啊,初始的状态概率,那么主课长各有一半零点五零点五啊,观测概率和转移概率啊,也可以根据这些数据啊给它计算出来。

那么在不知道一八一九赛季的这个英超日程安排,哎,就是不知道谁先打主场,谁先打客场。

这个演变量的条件之下,利用野马尔可夫模型呢,我们也能对这个两场曼士德比的胜负来进行一个估计。

根据以往的数据啊,我们进行估计结果表明,两队的每场比赛啊都要拼的你死我活,单场球平分秋色,打成平局,这种情况是不太可能出现。

今天我和你分享了野马尔可夫模型的基本原理啊,包含着以下四个要点。

第一,野马尔可夫模型由隐藏的状态序列和可见的观测序列构成,能够对时序依赖关系进行建模。

第二,野马尔可夫模型的定量描述包括初始状态、向量状态、转移矩阵和观测矩阵三部分。

第三,作为生成模型,野马尔可夫可以视为是混合模型的推广。

第四,野马尔可夫模型,它的判别模型的对应是条件。

随机场。

野马尔可夫模型最主要的用武之地呢非自然语言处理莫属。

语言和文字之间天然的时序关联,让野马尔可夫模型如鱼得水。

你可以查阅资料,了解野马模型在自然语言处理当中的应用,并在这里呢分享你的见解。