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

由于需要,最近需要学习下中文自然语言处理,先从最基本的隐马尔可夫模型学习。

一.介绍

在海边,通常我们可以通过观察海藻的状态(湿润/干燥)来预测第二天的天气,但是,这种预测并不是肯定的,比如湿润并不代表一定有雨,干燥也并不代表一定天晴,这些都是由一定概率的。同时,我们得出的天气结论是通过海藻这个条件间接得到的。这种推断是基于概率、间接得出结论的。

二.生成模型

(1)确定性模式

在介绍中提到,海藻的状态和天气之间的联系是基于一定概率的,如果这个概率是1,那么可以认为是是确定性模型,比如我们通常情况下遇到的交通灯(黄\绿\红三色),每一个颜色总和前面一个颜色确定相关,因此交通灯状态的生成可以认为是一个确定性模式。

(2)非确定性模式

假设天气有多云\晴\雨天等状态,那么每一天的天气并不能由前一天的天气唯一确定,比如昨天是大晴天,我们只能说今天有较高概率(比如60%)是晴天,因此这种生成模型是非确定模式。

通常情况下,我们可以根据经验系数(个人觉得比较重要)来确定各个状态之间的转换概率,比如多云\晴\雨天三个,可以由以下转换概率矩阵表示他们之间的关系:

HMM(隐马尔科夫模型)学习一_第1张图片

图片截自:http://www.52nlp.cn/hmm-learn-best-practices-two-generating-patterns

 一般情况下,根据以上矩阵和昨天的天气我们可以计算出今天的天气情况分布,但是前提是我们需要给出昨天的天气情况,这称为初始化概率向量,比如昨天是晴天,则初始化概率向量pi为(1.0,0.0,0.0),则用pi乘以转移概率矩阵,就可以得到今天的天气状况概率为(0.5,0.375,0.125)。

注意:不要别介绍带偏了,个人觉得这里的生成模式均是几个状态之间的转换,并未考虑间接的条件转换。同时需要注意的时,在整个马尔科夫模型生命周期中,状态转移矩阵并不产生变化,因为这是根据先验知识得出的。


你可能感兴趣的:(NLP)