隐马尔科夫模型

HMMs三个基本问题的求解手段

Posted by Zeekinger on October 17, 2020

隐马尔科夫模型在自然语言处理中具有广泛的应用,是生成式模型的主要代表。

马尔科夫模型

二阶马尔科夫模型

如果X(t),t>0是一个随机过程,若满足:

P[X(t+h)=y$\vert$X(s)=x(s),s$\leq$t] = P[X(t+h)=y$\vert$X(t)=x(t)],$\forall$h>0.

即当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;或者说,在给定现在状态时,它与过去状态是条件独立的,则称X(t)满足马尔科夫性质。马尔科夫性质也称为无后效性无记忆性,满足马尔科夫性质的随机过程称为马尔科夫过程,基于马尔科夫过程建立的模型称为马尔科夫模型。马尔科夫模型可以用来计算观测状态序列的概率,公式(1)是二阶马尔科夫模型的一种诠释

P(x;$\theta$)=$\prod_{t=1}^{T}$ P(x[t]$\vert$x(1),$\cdots$,x[t-1])=P(x[1])$\times$$\prod_{t=2}^{T}$P(x[t]$\vert$x[t-1]). (公式1)

公式1表示在模型参数为$\theta$的情况下,出现观测状态序列x的概率。其中P(x[1])称为状态初始化概率,P(x[t]$\vert$x[t-1])称为状态转移概率

状态初始化概率

使用S={s[1],$\cdots$,s[N]}表示观测状态集合,则状态初始化概率可以定义为

$\pi$[i]=p(x[1]=s[i]),1$\leq$i$\leq$N

状态初始化概率满足以下性质:

非负性:$\pi$[i]$\geq$0

归一性:$\sum_{i=1}^{N}$$\pi$[i]=1

假定天气可以分为三种状态晴天阴天雨天,令天气的状态初始化概率分布为:

表1. 状态初始化概率分布

晴天 阴天 雨天
0.4 0.3 0.3

状态转移概率

状态转移概率定义为

a$_{ij}$=p(x[t]=s[j]$\vert$x[t-1]=s[i]),1$\leq$i,j$\leq$N

状态转移概率满足以下性质:

非负性:a$_{ij}$$\geq$0

归一性:$\sum_{i=1}^{N}$a$_{ij}$=1

令天气状态转移概率分布为:

表2. 状态转移概率分布

状态 晴天 阴天 雨天
晴天 0.4 0.5 0.1
阴天 0.3 0.4 0.3
雨天 0.1 0.5 0.4

根据马尔科夫模型,连续四天下雨的概率计算如下:

p(雨天,雨天,雨天,雨天;$\theta$)

=p(x[1]=雨天)$\times$p(x[2]=雨天$\vert$x[1]=雨天)$\times$p(x[3]=雨天$\vert$x[2]=雨天)$\times$p(x[4]=雨天$\vert$x[3]=雨天)

=0.3$\times$0.4$\times$0.4$\times$0.4

=0.0192

在模型参数$\theta$已知的情况下,根据马尔科夫模型我们可以方便求出观测状态序列X出现的概率。比如,已知状态初始化概率分布(表1)和状态转移概率分布(表2),我们可以方便求出连续四天下雨的概率为0.0192。 然而实际生活中,我们并没有上帝视角,所以无法得知模型参数。我们只能观测事物(如天气)的状态以及事物的变化情况,故如何从积累的历史观测数据自动估计模型参数是一个值得研究的问题。接下来,我们给出从观测数据估计模型参数的方法。

利用历史观测数据自动估计模型参数

极大似然估计

假设有三组历史天气观测状态数据,分别为:

1 晴天,阴天,雨天

2 晴天,阴天,晴天

3 雨天,阴天

我们容易想到使用相对频度来估计概率分布。例如第一天为晴天的序列共有2个, ,一共有3个序列,故晴天的初始化概率为$\pi$[1]=2/3。同样的状态转移概率亦可以使用相对频度进行估计,阴天之后出现的天气总次数为2,雨天出现在阴天之后的次数为1,则阴天到雨天的状态转移概率为a$_{23}$=1/2。但是,相对频度是否具备数学意义上的合理性呢?

极大似然估计常用来从训练数据中自动获取最优模型参数:

$\hat{\theta}$ = argmax$_{\theta}$$\lbrace$L($\theta$)$\rbrace$

似然函数L($\theta$)通常以对数的形式进行定义,便于计算:

L($\theta$) = $\sum_{d=1}^{D}$logP(x$^{(d)}$;$\theta$)

P(x$^{(d)}$;$\theta$)定义见公式1.

似然即为可能性,最大似然估计亦称最大可能性估计。最大似然估计的核心思想是既然观测事件序列已经出现了,那么这一序列出现的概率就是最大的,故最大似然估计的目标在于优化迭代模型参数使似然函数最大化。又因为模型参数需要满足以下两个约束条件:

$\sum_{i=1}^{N}$$\pi$[i]=1

$\sum_{i=1}^{N}$a$_{ij}$=1

故使用极大似然估计来自动估计模型参数实际上是一个约束条件下求极值问题。

约束条件下求极值

我们引入拉格朗日乘子法来实现约束条件下的极值问题求解,目标函数定义为:

J($\theta$,$\lambda$,$\gamma$)=L($\theta$)-$\lambda$(\sum_{x$\in$S}P(x)-1)-$\sum_{x$\in$S}$($\sum_{x1$\in$S}$$\gamma_x$P(x1$\vert$x)-1)

其中,$\lambda$是与状态初始化概率约束相关的拉格朗日乘子,$\gamma$_x$ 与状态转移概率约束相关的拉格朗日乘子。

估计状态初始化概率

估计状态转移概率

隐马尔科夫模型

二阶隐马尔科夫模型

观测状态与隐状态

隐状态初始化概率

隐状态转移概率

观测状态生成概率

隐马尔科夫模型的三个基本问题

计算观测状态序列概率

搜索空间与路径求和

动态规划

前向概率

后向概率

最优隐状态序列计算

问题等价

收索与回溯

Viterbi算法

模型参数估计

EM算法

目标函数与参数求解

前向后向算法

写在后面