没有合适的资源?快使用搜索试试~ 我知道了~
HMM(隐马尔可夫链)学习最佳范例.pdf
5星 · 超过95%的资源 需积分: 13 35 下载量 171 浏览量
2013-03-28
10:22:36
上传
评论
收藏 539KB PDF 举报
温馨提示
试读
36页
HMM 学习最佳范例 转自:我爱自然语言处理 HMM在语音识别领域取得过巨大成功,李开复的成功也有赖于此。目前HMM方法在经济学、地学等诸多领域有广泛的应用前景。
资源推荐
资源详情
资源评论
HMM 学习最佳范例
转自:我爱自然语言处理
( http://www.52nlp.cn/hmm-learn-best-practices-one-introduction )
一、介绍(Introduction)
我们通常都习惯寻找一个事物在一段时间里的变化模式(规律)。这些模式
发生在很多领域,比如计算机中的指令序列,句子中的词语顺序和口语单词中的
音素序列等等,事实上任何领域中的一系列事件都有可能产生有用的模式。
考虑一个简单的例子,有人试图通过一片海藻推断天气——民间传说告诉我
们‘湿透的’海藻意味着潮湿阴雨,而‘干燥的’海藻则意味着阳光灿烂。如果它处
于一个中间状态(‘有湿气’),我们就无法确定天气如何。然而,天气的状态并
没有受限于海藻的状态,所以我们可以在观察的基础上预测天气是雨天或晴天的
可 能性。另一个有用的线索是前一天的天气状态(或者,至少是它的可能状态)
——通过综合昨天的天气及相应观察到的海藻状态,我们有可能更好的预测今天
的天气。
这是本教程中我们将考虑的一个典型的系统类型。
首先,我们将介绍产生概率模式的系统,如晴天及雨天间的天气波动。
然后,我们将会看到这样一个系统,我们希望预测的状态并不是观察到的
——其底层系统是隐藏的。在上面的例子中,观察到的序列将是海藻而隐藏的系
统将是实际的天气。
最后,我们会利用已经建立的模型解决一些实际的问题。对于上述例子,我
们想知道:
1. 给出一个星期每天的海藻观察状态,之后的天气将会是什么?
2. 给定一个海藻的观察状态序列,预测一下此时是冬季还是夏季?直观地,
如果一段时间内海藻都是干燥的,那么这段时间很可能是夏季,反之,如果一段
时间内海藻都是潮湿的,那么这段时间可能是冬季。
二、生成模式(Generating Patterns)
1、确定性模式(Deterministic Patterns)
考虑一套交通信号灯,灯的颜色变化序列依次是红色-红色/黄色-绿色-黄色-
红色。这个序列可以作为一个状态机器,交通信号灯的不同状态都紧跟着上一个
状态。
注意每一个状态都是唯一的依赖于前一个状态,所以,如果交通灯为绿色,
那么下一个颜色状态将始终是黄色——也就是说,该系统是确定性的。确定性系
统相对比较容易理解和分析,因为状态间的转移是完全已知的。
2、非确定性模式(Non-deterministic patterns)
为了使天气那个例子更符合实际,加入第三个状态——多云。与交通信号灯
例子不同,我们并不期望这三个天气状态之间的变化是确定性的,但是我们依然
希望对这个系统建模以便生成一个天气变化模式(规律)。
一种做法是假设模型的当前状态仅仅依赖于前面的几个状态,这被称为马尔
科夫假设,它极大地简化了问题。显然,这可能是一种粗糙的假设,并且因此可
能将一些非常重要的信息丢失。
当考虑天气问题时,马尔科夫假设假定今天的天气只能通过过去几天已知的
天气情况进行预测——而对于其他因素,譬如风力、气压等则没有考虑。在这个
例子以及其他相似的例子中,这样的假设显然是不现实的。然而,由于这样经过
简化的系统可以用来分析,我们常常接受这样的知识假设,虽然它产生的某些信
息不完全准确。
一个马尔科夫过程是状态间的转移仅依赖于前 n 个状态的过程。这个过程被
称之为 n 阶马尔科夫模型,其中 n 是影响下一个状态选择的(前)n 个状态。最
简单 的马尔科夫过程是一阶模型,它的状态选择仅与前一个状态有关。这里要
注意它与确定性系统并不相同,因为下一个状态的选择由相应的概率决定,并不
是确定性的。
下图是天气例子中状态间所有可能的一阶状态转移情况:
对于有 M 个状态的一阶马尔科夫模型,共有 个状态转移,因为任何一个状
态都有可能是所有状态的下一个转移状态。每一个状态转移都有一个概率值,称
为状态转移概率——这是从一个状态转移到另一个状态的概率。所有的 个概率
可以用一个状态转移矩阵表示。注意这些概率并不随时间变化而不同——这是一
个非常重要(但常常不符合实际)的假设。
下面的状态转移矩阵显示的是天气例子中可能的状态转移概率:
也就是说,如果昨天是晴天,那么今天是晴天的概率为 0.5,是多云的概率
为 0.375。注意,每一行的概率之和为 1。
要初始化这样一个系统,我们需要确定起始日天气的(或可能的)情况,定
义其为一个初始概率向量,称为 向量。
也就是说,第一天为晴天的概率为 1。
现在我们定义一个一阶马尔科夫过程如下:
状态:三个状态——晴天,多云,雨天。
向量:定义系统初始化时每一个状态的概率。
状态转移矩阵:给定前一天天气情况下的当前天气概率。
任何一个可以用这种方式描述的系统都是一个马尔科夫过程。
3、总结
我们尝试识别时间变化中的模式,并且为了达到这个目我们试图对这个过程
建模以便产生这样的模式。我们使用了离散时间点、离散状态以及做了马尔科夫
假设。在采用了这些假设之后,系统产生了这个被描述为马尔科夫过程的模式,
它包含了一个 向量(初始概率)和一个状态转移矩阵。关于假设,重要的一点
是状态转移矩阵并不随时间的改变而改变——这个矩阵在整个系统的生命周期
中是固定不变的。
三、隐藏模式(Hidden Patterns)
1、马尔科夫过程的局限性
在某些情况下,我们希望找到的模式用马尔科夫过程描述还显得不充分。回
顾一下天气那个例子,一个隐士也许不能够直接获取到天气的观察情况,但是他
有一些水藻。民间传说告诉我们水藻的状态与天气状态有一定的概率关系——天
气和水藻的状态是紧密相关的。在这个例子中我们有两组状态,观察的状态(水
藻的状态)和隐藏的状态(天气的状态)。我们希望为隐士设计一种算法,在不
能够直接观察天气的情况下,通过水藻和马尔科夫假设来预测天气。
一个更实际的问题是语音识别,我们听到的声音是来自于声带、喉咙大小、
舌头位置以及其他一些东西的组合结果。所有这些因素相互作用产生一个单词的
声音,一套语音识别系统检测的声音就是来自于个人发音时身体内部物理变化所
引起的不断改变的声音。
一些语音识别装置工作的原理是将内部的语音产出看作是隐藏的状态,而将
声音结果作为一系列观察的状态,这些由语音过程生成并且最好的近似了实际
(隐 藏)的状态。在这两个例子中,需要着重指出的是,隐藏状态的数目与观
察状态的数目可以是不同的。一个包含三个状态的天气系统(晴天、多云、雨天)
中,可以观察到 4 个等级的海藻湿润情况(干、稍干、潮湿、湿润);纯粹的语
音可以由 80 个音素描述,而身体的发音系统会产生出不同数目的声音,或者比
80 多,或者比 80 少。
在这种情况下,观察到的状态序列与隐藏过程有一定的概率关系。我们使用
隐马尔科夫模型对这样的过程建模,这个模型包含了一个底层隐藏的随时间改变
的马尔科夫过程,以及一个与隐藏状态某种程度相关的可观察到的状态集合。
2、隐马尔科夫模型(Hidden Markov Models)
下图显示的是天气例子中的隐藏状态和观察状态。假设隐藏状态(实际的天
气)由一个简单的一阶马尔科夫过程描述,那么它们之间都相互连接。
隐藏状态和观察状态之间的连接表示:在给定的马尔科夫过程中,一个特定
的隐藏状态生成特定的观察状态的概率。这很清晰的表示了‘进入’一个观察状态
的 所有概率之和为 1,在上面这个例子中就是 Pr(Obs|Sun), Pr(Obs|Cloud) 及
Pr(Obs|Rain)之和。(对这句话我有点疑惑?)
剩余35页未读,继续阅读
资源评论
- yys07062014-09-17不错的学习资料,很适合自学
- soybird2014-06-10讲的比较详细,正适合我学习参考,谢谢!
u010057592
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功