隐马尔可夫模型 | 赛尔笔记

栏目: 编程工具 · 发布时间: 5年前

内容简介:说到一.马尔可夫模型(Markov模型)

隐马尔可夫模型 (HMM) 是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于 生成模型

说到 隐马尔可夫模型 (HMM) ,我们先来了解下 马尔可夫模型(Markov模型) ,Markov模型是一种统计模型,广泛地应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理的应用领域。

一.马尔可夫模型(Markov模型)

隐马尔可夫模型 | 赛尔笔记 是随机变量序列,其中每个随机变量的取值在有限集 隐马尔可夫模型 | 赛尔笔记 ,称为状态空间。Markov特征是:

  • 有限历史假设 隐马尔可夫模型 | 赛尔笔记

  • 时间不变性 隐马尔可夫模型 | 赛尔笔记

如果 隐马尔可夫模型 | 赛尔笔记 具有这些特征,那么这个随机变量序列称为一个马尔可夫过程(链)。

Markov的形式化表示:一个马尔可夫模型是一个三元组 隐马尔可夫模型 | 赛尔笔记 ,其中 隐马尔可夫模型 | 赛尔笔记 是状态的集合, 隐马尔可夫模型 | 赛尔笔记 是初始状态的概率, 隐马尔可夫模型 | 赛尔笔记 是状态间的转移概率。具体例子用图形表示如下,

隐马尔可夫模型 | 赛尔笔记

相应的 隐马尔可夫模型 | 赛尔笔记 分别是,

隐马尔可夫模型 | 赛尔笔记

隐马尔可夫模型 与马尔可夫模型 不同的是各个状态(或者状态转移弧)都有一个输出,但是状态是不可见的

最简单的情形:不同的状态只能有不同的输出,

隐马尔可夫模型 | 赛尔笔记

增加一点灵活性:不同的状态,可以输出相同的输出,

隐马尔可夫模型 | 赛尔笔记

再增加一点灵活性:输出在状态转移中进行,

隐马尔可夫模型 | 赛尔笔记

最大的灵活性:在状态转移中以特定的概率分布输出,

隐马尔可夫模型 | 赛尔笔记

这就得到了我们要讲的 隐马尔可夫模型

二. 隐马尔可夫模型 (HMM)

1.HMM的形式化定义

HMM是一个五元组 隐马尔可夫模型 | 赛尔笔记 ,其中 隐马尔可夫模型 | 赛尔笔记 是状态的集合, 隐马尔可夫模型 | 赛尔笔记 是输出字符的集合, 隐马尔可夫模型 | 赛尔笔记 是初始状态的概率, 隐马尔可夫模型 | 赛尔笔记 是状态转移的概率, 隐马尔可夫模型 | 赛尔笔记 是状态转移时输出字符的概率。

一个HMM的例子用图形表示如下,

隐马尔可夫模型 | 赛尔笔记

2. 隐马尔可夫模型 的三个基本问题

  • 评估问题 :给定一个模型  隐马尔可夫模型 | 赛尔笔记 ,如何高效地计算某一输出字符序列的概率 隐马尔可夫模型 | 赛尔笔记

  • 解码问题 :给定一个输出字符序列 隐马尔可夫模型 | 赛尔笔记 ,和一个模型 隐马尔可夫模型 | 赛尔笔记 ,如何确定产生这一序列概率最大的状态序列 隐马尔可夫模型 | 赛尔笔记

  • 学习问题 :给定一个输出字符的序列 隐马尔可夫模型 | 赛尔笔记 ,如何调整模型的参数使得产生这一序列的概率最大?

3. 评估问题的解法

隐马尔可夫模型 | 赛尔笔记

已知 隐马尔可夫模型 | 赛尔笔记隐马尔可夫模型 | 赛尔笔记 ,计算 隐马尔可夫模型 | 赛尔笔记 ?我们先来化简一下 隐马尔可夫模型 | 赛尔笔记

隐马尔可夫模型 | 赛尔笔记

  • 方案一:直接计算法

隐马尔可夫模型 | 赛尔笔记

穷举所有可能的 隐马尔可夫模型 | 赛尔笔记 的情况,求和得到 隐马尔可夫模型 | 赛尔笔记 ,但是时间复杂度太高,为 隐马尔可夫模型 | 赛尔笔记

  • 方案二:前向算法(Forward algorithm)

隐马尔可夫模型 | 赛尔笔记

使用动态规划使得算法更高效,定义一个 前向变量 表示到时刻 隐马尔可夫模型 | 赛尔笔记 部分观测序列为 隐马尔可夫模型 | 赛尔笔记 且状态为 隐马尔可夫模型 | 赛尔笔记 的概率为向前概率,记为 隐马尔可夫模型 | 赛尔笔记 ,即

隐马尔可夫模型 | 赛尔笔记

则可以递推得到,

隐马尔可夫模型 | 赛尔笔记

前向过程算法 如下,

隐马尔可夫模型 | 赛尔笔记

一个简单的前向过程例子如下,

隐马尔可夫模型 | 赛尔笔记

  • 方案三:向后算法(backward algorithm)

同样的道理,我们定义在时刻 隐马尔可夫模型 | 赛尔笔记 状态为 隐马尔可夫模型 | 赛尔笔记 的条件下,从 隐马尔可夫模型 | 赛尔笔记隐马尔可夫模型 | 赛尔笔记 的部分观测序列为 隐马尔可夫模型 | 赛尔笔记 的概率为后向概率,记作 隐马尔可夫模型 | 赛尔笔记 ,即

隐马尔可夫模型 | 赛尔笔记

直接采用递推即可得到后向算法。

后向算法 过程如下,

  • 1. 初始化

隐马尔可夫模型 | 赛尔笔记

  • 2. 推导

隐马尔可夫模型 | 赛尔笔记

  • 3. 总和

隐马尔可夫模型 | 赛尔笔记

4. 解码问题的解法

隐马尔可夫模型 | 赛尔笔记

给定一个输出字符序列 隐马尔可夫模型 | 赛尔笔记 ,和一个模型 隐马尔可夫模型 | 赛尔笔记 ,如何确定产生这一序列概率最大的状态序列?

隐马尔可夫模型 | 赛尔笔记

我们定义 隐马尔可夫模型 | 赛尔笔记 表示为在 隐马尔可夫模型 | 赛尔笔记 时刻到达状态 隐马尔可夫模型 | 赛尔笔记 ,输出字符 隐马尔可夫模型 | 赛尔笔记 时,输出前面 隐马尔可夫模型 | 赛尔笔记 个字符的最可能路径的概率,

隐马尔可夫模型 | 赛尔笔记

则有

隐马尔可夫模型 | 赛尔笔记

这样我们就得到了 维特比算法(Viterbi Algorithm), 算法过程如下:

隐马尔可夫模型 | 赛尔笔记

一个简单的viterbi算法举例如下,

隐马尔可夫模型 | 赛尔笔记

5.  学习问题解法

隐马尔可夫模型 | 赛尔笔记

给定一个输出字符的序列 隐马尔可夫模型 | 赛尔笔记 ,如何调整模型的参数使得产生这一序列的概率最大?

隐马尔可夫模型 | 赛尔笔记

隐马尔可夫模型 的学习,根据训练数据是包括观测数据和对应的状态序列还是只有观测序列,可以分为有监督学习和无监督学习,其中无监督的学习即是利用EM算法思想的Baum-Welch算法。

  • 方案一:有监督学习

假设训练数据包含 隐马尔可夫模型 | 赛尔笔记 个长度相同的观测序列和对应的状态序列 隐马尔可夫模型 | 赛尔笔记那么可以利用 极大似然估计法 来估计 隐马尔可夫模型 的参数 隐马尔可夫模型 | 赛尔笔记 ,具体估计方法如下:

  • 1. 转移概率 隐马尔可夫模型 | 赛尔笔记 的估计

设样本中时刻 隐马尔可夫模型 | 赛尔笔记 处于状态 隐马尔可夫模型 | 赛尔笔记 时刻 隐马尔可夫模型 | 赛尔笔记 处于状态 隐马尔可夫模型 | 赛尔笔记 的频数为 隐马尔可夫模型 | 赛尔笔记 ,那么状态转移概率 隐马尔可夫模型 | 赛尔笔记 的估计是

隐马尔可夫模型 | 赛尔笔记

  • 2. 观测概率 隐马尔可夫模型 | 赛尔笔记 的估计

设样本中状态为 隐马尔可夫模型 | 赛尔笔记 并观测为 隐马尔可夫模型 | 赛尔笔记 的频数是 隐马尔可夫模型 | 赛尔笔记 ,那么状态为 隐马尔可夫模型 | 赛尔笔记 观测为 隐马尔可夫模型 | 赛尔笔记 的概率 隐马尔可夫模型 | 赛尔笔记 的估计是

隐马尔可夫模型 | 赛尔笔记

  • 3. 初始状态概率 隐马尔可夫模型 | 赛尔笔记 的估计 隐马尔可夫模型 | 赛尔笔记隐马尔可夫模型 | 赛尔笔记 个样本中初始状态为 隐马尔可夫模型 | 赛尔笔记 的概率

由于监督学习的方法需要使用训练数据,而人工标注的代价往往很高,有时会采用非监督学习的方法。

  • 方案二:无监督学习——Baum-Welch算法

假设给定的训练数据只包含 隐马尔可夫模型 | 赛尔笔记 个长度为 隐马尔可夫模型 | 赛尔笔记 的观测序列 而没有对应的状态序列 隐马尔可夫模型 | 赛尔笔记 ,目标是学习 隐马尔可夫模型 隐马尔可夫模型 | 赛尔笔记 的参数。我们将观测序列数据看做观测数据 隐马尔可夫模型 | 赛尔笔记状态序列数据看做不可观测数据 隐马尔可夫模型 | 赛尔笔记 ,那么 隐马尔可夫模型 事实上是一个包含隐变量的概率模型

隐马尔可夫模型 | 赛尔笔记

它的参数学习可以由EM算法实现。

(算法推导过程)

(1) 确定完全数据的对数似然函数所有观测数据写成 隐马尔可夫模型 | 赛尔笔记所有的隐数据写成 隐马尔可夫模型 | 赛尔笔记 ,完全数据是 隐马尔可夫模型 | 赛尔笔记 。完全数据的对数似然函数是 隐马尔可夫模型 | 赛尔笔记

(2) EM算法的E步:求 隐马尔可夫模型 | 赛尔笔记 函数的 隐马尔可夫模型 | 赛尔笔记

隐马尔可夫模型 | 赛尔笔记

其中 隐马尔可夫模型 | 赛尔笔记 隐马尔可夫模型 参数的当前估计值, 隐马尔可夫模型 | 赛尔笔记 是要极大化的 隐马尔可夫模型 参数。因为,

隐马尔可夫模型 | 赛尔笔记

所以 隐马尔可夫模型 | 赛尔笔记 函数可以拆分写成

隐马尔可夫模型 | 赛尔笔记

式中求和都是对所有训练数据的序列总长度 隐马尔可夫模型 | 赛尔笔记 进行的。

(3) EM算法的M步:极大化 隐马尔可夫模型 | 赛尔笔记 函数 隐马尔可夫模型 | 赛尔笔记 ,求模型参数 隐马尔可夫模型 | 赛尔笔记

由于要极大化的参数在 隐马尔可夫模型 | 赛尔笔记 函数式子中单独的出现在三个项中,所以只需要对各项分别极大化。第一项可以写成,

隐马尔可夫模型 | 赛尔笔记

注意到 隐马尔可夫模型 | 赛尔笔记 满足 隐马尔可夫模型 | 赛尔笔记 ,利用拉格朗日乘子法,写出拉格朗日函数

隐马尔可夫模型 | 赛尔笔记

对其求导数并令结果为0,

隐马尔可夫模型 | 赛尔笔记

得到

隐马尔可夫模型 | 赛尔笔记

隐马尔可夫模型 | 赛尔笔记 求和得到 隐马尔可夫模型 | 赛尔笔记  

隐马尔可夫模型 | 赛尔笔记

再代入上式子得到,

隐马尔可夫模型 | 赛尔笔记

第二项可以写成

隐马尔可夫模型 | 赛尔笔记

类似于第一项,利用具有约束条件 隐马尔可夫模型 | 赛尔笔记 的拉格朗日乘子法恶意求出

隐马尔可夫模型 | 赛尔笔记

第三项可以写成,

隐马尔可夫模型 | 赛尔笔记

同样利用拉格朗日乘子法,约束条件是 隐马尔可夫模型 | 赛尔笔记 ,注意只有在 隐马尔可夫模型 | 赛尔笔记隐马尔可夫模型 | 赛尔笔记隐马尔可夫模型 | 赛尔笔记 的偏导数才不为0,以 隐马尔可夫模型 | 赛尔笔记 表示,得到,

隐马尔可夫模型 | 赛尔笔记

-----

为了简便,我们使用一下式子简化, 给定模型 隐马尔可夫模型 | 赛尔笔记 和观测 隐马尔可夫模型 | 赛尔笔记 ,在时刻 隐马尔可夫模型 | 赛尔笔记 处于状态 隐马尔可夫模型 | 赛尔笔记 的概率记 隐马尔可夫模型 | 赛尔笔记

有如下公式:

隐马尔可夫模型 | 赛尔笔记

给定模型 隐马尔可夫模型 | 赛尔笔记 和观测 隐马尔可夫模型 | 赛尔笔记 ,在时刻 隐马尔可夫模型 | 赛尔笔记 处于状态 隐马尔可夫模型 | 赛尔笔记 的概率记 :

隐马尔可夫模型 | 赛尔笔记

有如下推倒:

隐马尔可夫模型 | 赛尔笔记

我们结合上文以及EM算法可以推导如下公式

隐马尔可夫模型 | 赛尔笔记

Baum-Welch算法过程:

输入:观测数据 隐马尔可夫模型 | 赛尔笔记

输出: 隐马尔可夫模型 参数 隐马尔可夫模型 | 赛尔笔记

1. 初始化。对 隐马尔可夫模型 | 赛尔笔记 ,选取 隐马尔可夫模型 | 赛尔笔记 得到模型 隐马尔可夫模型 | 赛尔笔记

2. 递推。对 隐马尔可夫模型 | 赛尔笔记

隐马尔可夫模型 | 赛尔笔记

3. 终止。得到模型参数 隐马尔可夫模型 | 赛尔笔记


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

超越门户

超越门户

吴晨光 / 中国人民大学出版社 / 2015-4-17 / 39.80

在这个PC端影响力下降、人们对手机的依赖与日俱增的时代,这种探索的意义非同寻常,可以说是试图树立新媒体时代的行业标准。 ——陈彤(小米内容投资与运营副总裁、新浪网前总编辑、资深网络媒体人) 我将对此书的阅读,视作对往日岁月的怀念,它提醒我,自己曾 投身于多么富有蓬勃朝气和探索精神的事业。而对这种事业的原则、逻辑和方法的继承和继续学习,对于互联网时代的企业形象塑造 ,同样有融会变通的参考......一起来看看 《超越门户》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具