HMM 系列之一:Introduction

转自:http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/main.html

Introduction

经常,我们希望找出在一段时间里经常出现的一些模式,例如一个人经常使用的命令,句子里的词组序列,语音中的语音序列。

本系列文章包含三部分:

1.介绍概率模式系统;

2.预测的系统与观察的系统不同;

3.考察能够通过建模的系统解决的问题,例如天气预测。

http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/gen_patterns/s1_pg1.html

Generating Patterns

模式分为确定性模式 Deterministic Patters 和非确定性模式 Non-Deterministic。

确定性模式,下一个状态之和之前的1个状态相关,例如红绿灯,状态变迁永远是:

red-green-amber

对于non-Deterministic patters,例如天气变化,有四种天气:cloudy, sunny, rainy,依靠历史天气并不能准确预测天气,所以是non-determinstic。

为了简化问题,做出 Markov Assumption: 当前的状态,只依赖于过去的一些状态。这样就可以通过过去几天的天气来预测未来的天气。

markov process: 系统的状态变迁,只取决于过去n个状态;这样的模型成为 order n model。最简单的 markov process 是 first order process,这和 deterministic model 是不一样的,这里的状态变迁是概率的 probablistic,而不是确定的。

对一个有 M 个状态的 first order process,有M2 个跳转。每个跳转 transition 有一个 state transition probablity 状态变迁概率。这些概率构成了 state transition matrix,概率是不随着时间改变的,这是一个重要假设。

对于天气的例子,matrix可能是这样的:

为了初始化这样的系统,需要定义天气是什么,假定初始状态是

就是说在第一天 (time = 0),天气是晴天。

现在定义了一个 first order markov prcocess,包含三个要素:

1.状态:三个状态,sunny, cloudy,rainy

2.π向量 π vector: 定义了初始状态下的各个状态的概率;

3.状态跳转矩阵 state transition matrix

http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/hidden_patterns/s1_pg1.html

Patterns generated by a hidden process

1. Limitations of a markov process

markov process 可能没有足够的 power 来达到预测效果,这时候有人发现 seaweed 海藻的状态与天气是有关系的,这时候我们有两组状态:可观察的状态(海藻的状态),隐藏的状态(天气的状态)。我们希望开发一个算法预测天气,利用海藻的状态和 markov assumption。

·    在这种情况下,可观察的状态序列 和 hidden process 是概率相关的。我们采用 hidden markov model 来建模这种过程,hidden markov process 随时间改变状态,可观察的状态和hidden states 是相关的。

2.Hidden Markov Model

下图是一个hidden 和observable 状态,这里的假定:

1.true wheather是first order markov process;

2.true wheather是连在一起的。

在每一个weather的状态下,seaweed 都有四个状态,表示每种状态下 seaweed 的状态概率的矩阵称为 conusion matrix。给定每个 hidden state,observable states 的概率。

每行的概率和是1

Definition of a hidden Markov model

a hidden markov model HMM 是一个三元组: (π,A,B)

在A和B中的概率,都是与时间无关的,这是HMM最不切实际的假设。

Uses associated with HMMs

3类问题可以解决:

1. 给定HMM,计算一个观察的序列出现的概率;

2.找出最有可能出现的 观察序列 (observed sequence) 的隐式状态序列 (sequence of hidden states)

3.给定观察序列,生成HMM

1.Evaluation

给定一组 HMMs,以及一个观测序列。我们可能想找出哪个 HMM 最有可能产生这个观测序列,例如在天气的例子中,在不同的季节下,天气的行为会不同,我们可能希望通过观测序列来推断天气。

使用 forward algorithm 计算每个 HMM 下,观测序列的概率,选择概率最大的 HMM。

这类问题在 语音识别 (speech recognition) 问题中出现,大量的 HMM 会应用,每个HMM 代表一个单词。一个观测序列是由一个单词表示,该单词可以通过识别最可能的 HMM 来确定。

2.Decoding

在其他的应用里,我们可能对 给定观测序列, 最可能的 隐式状态序列 (sequence of hidden states)感兴趣。在前边的例子中,一个 blind hermit 只能感受海藻的状态,可是想知道天气的状态,也就是 hidden states.

给定观测序列以及HMM,我们使用 Viterbi Algorithm 来找到最优可能的 sequence of  hidden states

Viterbi Algorithm一个广泛的应用是 NLP(Natural Language Processing),对单词进行语义标记 (verb, adj, noun,etc)。一个局句子里的单词代表了观测序列,语义分类代表了 hidden states。通过找出 概率最大的 hidden states,可以为一个单词找出最可能的语义 syntactic class。进而可以做很多其他的工作,例如识别语义。

3.Learning

最难的问题是 给定一个观测序列以及对应的 hidden states 序列,找出一个合适的 HMM,也就是 (π,A,B)。

forward-backward algorithm 用在 A 和B都不知道的情况下。

时间: 2024-10-11 13:02:43

HMM 系列之一:Introduction的相关文章

大数据之道 HMM系列<二>(成长)

一:HMM解码问题 (1)编程深处无非就是算法和结构,以及各种架构和版本的管理(如Git管理),因此作为程序员算法这一关是绕不过去的: (2)关于算法,个人比较崇尚的一本书是<算法导论>和ACM实战系类的算法培训: (3)对于自然语言处理领域或者部分机械学习领域的算法,HMM模型是非常经典的算法之一,非常适合初学者学习和研究: (4)HMM模型μ=(A,B,π),的状态是不可见的,我们看到的仅仅是状态表现出来的观察值和状态概率函数. 二:HMM简介(u = {N,M,A,B,pai} ---&

HMM系列之四:Forward-Backward Algorithm and Summary

Forward-Backward Algorithm 与HMM相关的有用的问题,往往是 Evaluation 和 Decoding,taeny可以评测一个模型的相对可用性,或者估计某个模型实际上在做什么.这两种做法都依赖于 HMM 参数的先验知识—— the state transition matrix, the observation matrix, 以及 the π vector. 在很多情况下这些确实难以获得的,这就是 learning problem. Forward-backward

HMM系列之三:Viterbi Algorithm

http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/viterbi_algorithm/s1_pg1.html Finding the most probable sequence of hidden states 给出一个HMM,以及某个观测序列,你可能想得到概率最大的那个隐式序列 sequence of hidden states. 1. Exhaustive search for a solution 可以采用执行网格

HMM系列之二:Forward Algorithm

http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/forward_algorithm/s1_pg1.html Section 1 Finding the probability of an observed sequence 1. Exhaustive search for solution 给定HMM,要找出 observed sequence 的概率. 在 weather model 中,我们有一个 HMM 描述了 w

大数据之道 HMM系列

一:HMM解码问题 (1)给定一个观察序列O=O1O2...OT,和模型μ=(A,B,π),如何快速有效地选择在一定意义下"最优"的状态序列Q=q1q2...qT,使该状态最好地解释观察序列. (2)最可能的隐藏状态序列(Finding most probable sequence of hidden states):对于一个特殊的隐马尔科夫模型(HMM)及一个相应的观察序列,我们常常希望能找到生成此序列最可能的隐藏状态序列. 二:实例篇 (1)假设连续观察3天的海藻湿度为(Dry,D

隐马尔科夫模型HMM(一)HMM模型

隐马尔科夫模型HMM(一)HMM模型基础 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率(TODO) 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列(TODO) 隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用.当然,随着目前深度学习的崛起,尤其是RNN,LSTM等神经网络序列模型的火热,HMM的地位有所下

机器学习和深度学习资料合集

机器学习和深度学习资料合集 注:机器学习资料篇目一共500条,篇目二开始更新 希望转载的朋友,你可以不用联系我.但是一定要保留原文链接,因为这个项目还在继续也在不定期更新.希望看到文章的朋友能够学到更多.此外:某些资料在中国访问需要梯子. <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.Deep Learning. <Deep Learning in

[转]机器学习和深度学习资料汇总【01】

本文转自:http://blog.csdn.net/sinat_34707539/article/details/52105681 <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.Deep Learning. <Deep Learning in Neural Networks: An Overview> 介绍:这是瑞士人工智能实验室Jurgen

我爱自然语言处理[转]

最近试了一下Word2Vec, GloVe 以及对应的python版本 gensim word2vec 和 python-glove,就有心在一个更大规模的语料上测试一下,自然而然维基百科的语料进入了视线.维基百科官方提供了一个很好的维基百科数据源:https://dumps.wikimedia.org,可以方便的下载多种语言多种格式的维基百科数据.此前通过gensim的玩过英文的维基百科语料并训练LSI,LDA模型来计算两个文档的相似度,所以想看看gensim有没有提供一种简便的方式来处理维基