隐马尔可夫模型--3

来源:互联网 发布:数据质量问题 编辑:程序博客网 时间:2024/06/07 05:20

马尔科夫链:

想象成一台机器,随机选择一个状态为初始状态,按照马尔科夫链规则随机选择后续状态,运行一段时间后,会产生一个状态序列:s1,s2,s3……st.看到这个序列的人,可以输出某个状态mi出现的次数#(mi),以及从mi转换到mj的次数#(mi,mj),从而估计出从mi到mj的转移概率#(mi,mj)/#(mi)。

 

隐含马尔科夫模型是马尔科夫链的一个扩展:

任一时刻t的状态st都是不可见的。观察者无法观测到一个状态序列:s1,s2……st来推测转移概率等参数。但是每个时刻t会输出一个符号ot,而且ot和st相关且仅与st相关。这个称为独立输出假设。隐含的的状态s1,s2……st是一个典型的马尔科夫链。

 

马尔科夫假设和独立输出假设用于通信的解码问题。

隐马尔科夫模型有三个基本问题:

识别问题(给定一个输出序列和模型,模型可能创建的序列的概率是什么?)Forward-Backward

序列问题(给定一个输出序列和模型,什么最可能的状态序列可以创建输出序列?)维特比算法

训练问题(给定一个输出序列和拓扑结构,怎样调整模型参数,包括状态转移和输出的概率分布,使得模型创建的输出序列具有最大概率?)。Baum-Welch 算法

 

训练问题:

P(st|st-1)转移概率   P(ot|st)生成概率

有监督的训练方法 前提:大量的人工标注数据。

无监督的训练算法:Baum-Welch 算法

 

Baum-Welch 算法:

首先找到一组能够产生输出序列O的模型参数(假设转移概率P和输出概率Q为均匀分布的),初始模型 M@0。

算出这个模型产生O的概率P(O|M@0),找到这个模型产生O的所有路径以及这些路径的概率。这些可能的路径记录了每个状态经历的次数,到达了哪些状态,输出了哪些符号,因此可以将他们看做是“标注的训练数据”。

根据生成概率和转移概率公式计算出一组新的模型参数@1,从M@0到M@1的过程称为一次迭代。

P(O|M@1)>P(O|M@0)

不断重复,知道模型的质量没有明显提高。

不断估计模型参数,使得输出的概率(目标函数)达到最大化,这个过程称为 期望值最大化(Expectation-Maximumization), 称为EM过程。

会收敛到一个局部最优点,比有监督的效果略差。

若目标函数为凸函数(如信息熵),则可以找到全局最优。

 

原创粉丝点击