二、生成模式(Generating Patterns)
1、确定性模式(Deterministic Patterns)
考虑一套交通信号灯,灯的颜色变化序列依次是红色-红色/黄色-绿色-黄色-红色。这个序列可以作为一个状态机器,交通信号灯的不同状态都紧跟着上一个状态。
注意每一个状态都是唯一的依赖于前一个状态,所以,如果交通灯为绿色,那么下一个颜色状态将始终是黄色——也就是说,该系统是确定性的。确定性系统相对比较容易理解和分析,因为状态间的转移是完全已知的。
2、非确定性模式(Non-deterministic patterns)
为了使天气那个例子更符合实际,加入第三个状态——多云。与交通信号灯例子不同,我们并不期望这三个天气状态之间的变化是确定性的,但是我们依然希望对这个系统建模以便生成一个天气变化模式(规律)。
一种做法是假设模型的当前状态仅仅依赖于前面的几个状态,这被称为马尔科夫假设,它极大地简化了问题。显然,这可能是一种粗糙的假设,并且因此可能将一些非常重要的信息丢失。
当考虑天气问题时,马尔科夫假设假定今天的天气只能通过过去几天已知的天气情况进行预测——而对于其他因素,譬如风力、气压等则没有考虑。在这个例子以及其他相似的例子中,这样的假设显然是不现实的。然而,由于这样经过简化的系统可以用来分析,我们常常接受这样的知识假设,虽然它产生的某些信息不完全准确。
一个马尔科夫过程是状态间的转移仅依赖于前n个状态的过程。这个过程被称之为n阶马尔科夫模型,其中n是影响下一个状态选择的(前)n个状态。最简单的马尔科夫过程是一阶模型,它的状态选择仅与前一个状态有关。这里要注意它与确定性系统并不相同,因为下一个状态的选择由相应的概率决定,并不是确定性的。
下图是天气例子中状态间所有可能的一阶状态转移情况:
对于有M个状态的一阶马尔科夫模型,共有
下面的状态转移矩阵显示的是天气例子中可能的状态转移概率:
-也就是说,如果昨天是晴天,那么今天是晴天的概率为0.5,是多云的概率为0.375。注意,每一行的概率之和为1。
要初始化这样一个系统,我们需要确定起始日天气的(或可能的)情况,定义其为一个初始概率向量,称为
-也就是说,第一天为晴天的概率为1。
现在我们定义一个一阶马尔科夫过程如下:
状态:三个状态——晴天,多云,雨天。
状态转移矩阵:给定前一天天气情况下的当前天气概率。
任何一个可以用这种方式描述的系统都是一个马尔科夫过程。
3、总结
我们尝试识别时间变化中的模式,并且为了达到这个目我们试图对这个过程建模以便产生这样的模式。我们使用了离散时间点、离散状态以及做了马尔科夫假设。在采用了这些假设之后,系统产生了这个被描述为马尔科夫过程的模式,它包含了一个
未完待续:隐藏模式
本文翻译自:http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/main.html
部分翻译参考:隐马尔科夫模型HMM自学
转载请注明出处“我爱自然语言处理”:www.52nlp.cn
本文链接地址:https://www.52nlp.cn/hmm-learn-best-practices-two-generating-patterns
很不错的文章,图文并茂:)
[回复]
admin 回复:
29 9 月, 2009 at 19:12
谢谢,欢迎常来看看!
[回复]
感谢你的辛勤工作!
非常感激!
[回复]
太好的文章 不得不顶一下 最近正在学机器学习处理 正好用的上
[回复]
昨天是晴天,那么今天是晴天的概率为0.5,这句话怎么理解呢?还有完全不明白那个概率矩阵如何得到的,求解答求解答啊
[回复]
acm 回复:
15 7 月, 2015 at 16:50
这只是一个假定的,并且后文中会说,处理HMM,我们要假设在一段时间内这些假定是不会变化的。关注博主好久了,一直在偷偷跟着学。
[回复]
52nlp 回复:
26 12 月, 2015 at 17:37
那个只是一个状态转移矩阵的例子,下面的那行话也仅是依据这个状态转移矩阵做解释。
[回复]
π ALT+227(Numeric keyboard), you can try it, and thank you for your work ☺
[回复]