隐马尔科夫模型()依然是读者访问“我爱自然语言处理”的一个热门相关关键词,我曾在
《
学习最佳范例与崔晓源的博客 》中介绍过国外的一个不错的
学习教程 ,并且国内崔晓
源师兄有一个相应的翻译版本,不过这个版本比较简化和粗略,有些地方只是概况性的翻译了一下,
省去了一些内容,所以从今天开始计划在 上系统的重新翻译这个学习教程,希望对大家有点
用。
一、介绍(Introduction)
我们通常都习惯寻找一个事物在一段时间里的变化模式(规律)。这些模式发生在很多领域,
比如计算机中的指令序列,句子中的词语顺序和口语单词中的音素序列等等,事实上任何领域中的
一系列事件都有可能产生有用的模式。
考虑一个简单的例子,有人试图通过一片海藻推断天气——民间传说告诉我们‘湿透的’海藻意味
着潮湿阴雨,而‘干燥的’海藻则意味着阳光灿烂。如果它处于一个中间状态(‘有湿气’),我们就无
法确定天气如何。然而,天气的状态并没有受限于海藻的状态,所以我们可以在观察的基础上预测
天气是雨天或晴天的可能性。另一个有用的线索是前一天的天气状态(或者,至少是它的可能状
态)——通过综合昨天的天气及相应观察到的海藻状态,我们有可能更好的预测今天的天气。
这是本教程中我们将考虑的一个典型的系统类型。
首先,我们将介绍产生概率模式的系统,如晴天及雨天间的天气波动。
然后,我们将会看到这样一个系统,我们希望预测的状态并不是观察到的——其底层系统是隐
藏的。在上面的例子中,观察到的序列将是海藻而隐藏的系统将是实际的天气。
最后,我们会利用已经建立的模型解决一些实际的问题。对于上述例子,我们想知道:
给出一个星期每天的海藻观察状态,之后的天气将会是什么
给定一个海藻的观察状态序列,预测一下此时是冬季还是夏季?直观地,如果一段时间内海
藻都是干燥的,那么这段时间很可能是夏季,反之,如果一段时间内海藻都是潮湿的,那么这段时
间可能是冬季。
二、生成模式(Generating Patterns)
、确定性模式(
)
考虑一套交通信号
灯,灯的颜色变化序列
依次是红色红色黄色
绿色黄色红色。这个序列可以作为一个状态机器,交通信号灯的不同状态都紧跟着上一个状态。
注意每一个状态都是唯一的依赖于前一个状态,所以,如果交通灯为绿色,那么下一个颜色状
态将始终是黄色——也就是说,该系统是确定性的。确定性系统相对比较容易理解和分析,因为状
态间的转移是完全已知的。
、非确定
性模式
(
)
为了
使天气那
个例子更符合实际,加入第三个状态——多云。与交通信号灯例子不同,我们并不期望这三个天气
状态之间的变化是确定性的,但是我们依然希望对这个系统建模以便生成一个天气变化模式(规
律)。