本篇针对概率图模型做一个总结。顺序依次为:
马尔可夫模型(Markov Model,下称MM)⟹⟹
隐马尔可夫模型(Hidden Markov Model,下称HMM)⟹⟹
最大熵模型(Maximum Entropy Model,下称MEM)⟹⟹
最大熵隐马模型(Maximum Entropy Markov Model,下称MEMM)⟹⟹
条件随机场(Conditional Random Field,下称CRF)
首先讲述下生成式模型与判别式模型,这对于理解后面几个模型的建模逻辑是有帮助的。模型介绍中可能会有前后的穿插,但尽量按照箭头指向关系来叙述。
由于篇幅过长,拆成3篇来讲。本篇介绍生成式模型与判别式模型、MM、HMM。
生成式模型与判别式模型
所谓“模型”,概率性意义上可以解释为:模拟事物在一段时间里的变化规律。而“建模”可以理解为:找出这种变化规律。找规律的方法有两种:生成式方法和判别式方法,由此产生两种类型的模型。
生成式模型(Generative Model):由给定数据学习联合概率分布P(X,Y)P(X,Y),当有了联合概率分布后,得到条件概率分布P(Y|X)P(Y|X)作为预测模型。朴素贝叶斯(Naive Bayes)和HMM都属于这一类。
判别式模型(Discriminative Model):由给定数据直接学习P(Y|X)P(Y|X),作为预测模型,关注的是对于给定输入XX,应该给出何种预测。支持向量机(Support Vector Machine)、MEM、MEMM、CRF都属于这一类。
生成式模型从样本的分布规律(联合概率)出发,想通过尽量多的样本来找出样本本身的特性。而判别式模型关注不同类型样本的分类边界(其实就是某种划分规则),根据边界将样本划分开,样本落在哪边就打上哪边所属的标签。
显然,从概率关系上来说,由生成式模型可以得到判别式模型,反之则不行。
马尔可夫模型(Markov Model,MM)
定义与理解
先介绍两个概念,便于之后的理解。
- 随机过程(Stochastic Process):是一组随机变量的集合。在我们接下来要描述的场景里,每一个时间点,均有一个随机变量相对应,这些随机变量的集合就是随机过程。
- 马尔可夫链:一个系统中包含有一些状态,随着时间推移,系统从一个状态转换到另一个状态。如果系统在tt时刻的状态只与其在t−1t−1时刻的状态qt−1qt−1相关,则系统构成离散的一阶马尔可夫链。
下面我们给出MM的定义。如果只考虑独立于时间tt的随机过程:
其中,aij≥0aij≥0,且∑jaij=1∑jaij=1。则该随机过程称为MM。
首先,MM是一个随机过程,表现在每个时刻tt的状态是一个随机变量(可能取不同的状态值),所有时刻的随机变量的集合即为随机过程。而独立于时间tt则说的是,系统在不同状态间转换的概率在不同时间点是相同的,即:
如此一来,我们就可以建模一个系统的状态序列,即:
其中,P(q0)P(q0)指的是系统初始为不同状态的概率。
现在,我们以三元组形式定义MM:M=(S,A,π)M=(S,A,π),其中
- SS:模型中状态的有限集合
- :与时间无关的状态转移矩阵
- ππ:初始状态取值的概率分布
应用
此时,我们可以定量描述一个随机事件的发生概率,比如天气变化:


隐马尔可夫模型(Hidden Markov Model,HMM)
定义与理解
HMM也是一个关于时序的模型,是一个双重随机过程,由一个隐藏的马尔可夫链随机生成不可观测的状态序列,再由各个状态随机生成可以观测的输出序列。以五元组形式定义HMM:M=(S,O,A,B,π),其中M=(S,O,A,B,π),其中
- SS:模型中不可观测状态的有限集合
- :模型中状态产生的可观测输出的集合
- AA:与时间无关的状态转移矩阵
- :给定状态下,观测值的概率分布矩阵
- ππ:初始状态取值的概率分布
HMM的意义在于,我们可以通过可观测的序列来对不可观测的隐状态进行推测。现实中很多过程都可以归为HMM的建模场景,比如天气预测。我们想知道前一天的夜里有没有下雨,但是不方便在夜里进行观察。我们可以观察到的是第二天草地是不是湿的,通过可观测的草地干湿状态的变化来获知前一天夜里不可观测的隐状态天气变化,在此场景下,我们细化五元组定义:
- SS:不可观测状态的集合,假设,指天气情况。
- OO:可观测输出的集合,假设,指草地干湿程度。
- AA:状态转移矩阵。,即从隐藏状态SiSi转换到SjSj的概率,其中:
⎧⎩⎨⎪⎪aij=P(qt=Sj|qt−1=Si), 1≤i,j≤Naij≥0∑Nj=1aij=1{aij=P(qt=Sj|qt−1=Si), 1≤i,j≤Naij≥0∑j=1Naij=1 - BB:观测值的概率分布矩阵。,即从隐藏状态SjSj产生可观测输出vkvk的概率,其中:
⎧⎩⎨⎪⎪bj(k)=P(ot=vk|qt=Sj), 1≤j≤N, 1≤k≤M, ∀taj(k)≥0∑Mk=1bj(k)=1{bj(k)=P(ot=vk|qt=Sj), 1≤j≤N, 1≤k≤M, ∀taj(k)≥0∑k=1Mbj(k)=1 - ππ:初始状态取值的概率分布。π=[πi]π=[πi],表示初始状态取SiSi的概率,其中:
⎧⎩⎨⎪⎪πi=P(q1=Si), 1≤j≤Nπi≥0∑Ni=1πi=1{πi=P(q1=Si), 1≤j≤Nπi≥0∑i=1Nπi=1
HMM的模型假设
HMM包含3个假设:
- 马尔可夫假设:隐状态构成一阶马尔可夫链,即qtqt只与qt−1qt−1相关。
- 不动性假设:状态转移与时间无关,即P(qi=Sm|qi−1=Sn)=P(qj=Sm|qj−1=Sn)P(qi=Sm|qi−1=Sn)=P(qj=Sm|qj−1=Sn)。
- 输出独立性假设:即P(o1,...,oT|q1,...,qT)=∏Tt=1p(ot|qt)P(o1,...,oT|q1,...,qT)=∏t=1Tp(ot|qt)。
前两条是MM就有的性质。着重关注第三条,这是HMM建模上就自带的弊端,待会讨论。
HMM的三个基本问题
围绕联合概率计算公式:P(O,Q)=∑Tt=1P(qt|qt−1)P(ot|qt)P(O,Q)=∑t=1TP(qt|qt−1)P(ot|qt),HMM有三个基本问题,在此不涉及具体的计算与举例,只是概括性地进行描述,相关内容网上已经有很多了。
- 评估问题:给定模型,求某个观测序列的概率P(O|λ)P(O|λ),λλ为模型参数。只有观测序列是确定的,那么枚举所有状态序列产生观测序列的概率就好了,类似于全概率展开公式。即:
P(O|λ)=∑QP(O,Q|λ)=∑QP(Q|λ)P(O|Q,λ)P(O|λ)=∑QP(O,Q|λ)=∑QP(Q|λ)P(O|Q,λ)
但是由于状态太多的话,枚举量太大,于是基于动态规划(dynamic programming)的前向(后向)算法,记录下状态路径的中间结果,将时间复杂度由O(NT)O(NT)降低为O(N2T)O(N2T)。 - 预测(解码)问题:给定模型和观测序列,求最可能产生该观测序列的隐状态序列P(Q|O,λ)P(Q|O,λ)。即:
Q=argmaxQP(O,Q|λ)=argmaxQP(Q|λ)P(O|Q,λ)Q=argmaxQP(O,Q|λ)=argmaxQP(Q|λ)P(O|Q,λ)
和评估问题相同的是状态序列过多的问题,同样的解决思路,使用Viterbi算法,将时间复杂度由O(NT)O(NT)降低为O(N2T)O(N2T)。 - 学习问题:参数主要是状态转移概率与可观测输出的概率分布。观测序列一般是已知的。当产生观测序列的状态序列也已知时,使用极大似然估计;未知时,使用EM算法。
HMM小结
由上述建模过程可以看到,HMM的核心计算都围绕P(O,Q|λ)=P(Q|λ)P(O|Q,λ)P(O,Q|λ)=P(Q|λ)P(O|Q,λ)展开,基于联合概率建模,计算目标是为了找出状态序列、输出序列的规律(概率值)。且在计算中没有明确的待预测值,都是在算概率分布。很显然,HMM是生成式模型。
HMM的弊端:输出独立性假设。HMM假设了可观测输出是相互独立的,但在现实生活中往往并非如此。因此,对于输出之间产生关联的场景,HMM效果就会变差。下一篇将引入最大熵模型、最大熵马尔可夫模型来解决这一问题。