马尔科夫模型

来源:互联网 发布:如何做淘宝店招 编辑:程序博客网 时间:2024/06/01 08:04

马尔科夫链

研究随机过程中,在任何一个时刻t,对应的状态St是随机,所以可能关系为P(St|S1,S2,..,St1);

mekfl

而马尔科夫为了简化问题提出假设,随机过程中St只与前一个状态St1有关,关系变为P(St|St1);这个假设被称为马尔科夫假设,符合这个假设的随机过程称为马尔科夫过程/马尔科夫链;

隐含马尔科夫模型

​ 此模型是上述马尔科夫链的一个扩展。

​ 对于状态序列S1,S2,...,St转换概率是未知的。但是每个状态都会在每个时刻输出一个OtOt只与St有关,称独立输出假设

yhmekf

​ 基于马尔科夫假设和独立输出假设,就是构成隐含马尔科夫模型。

个人理解

马尔科夫模型本质上算一个随机的状态机,类比有限自动状态机,基于马尔科夫假设和独立输出假设,其输出概率大大简化,P(Ot)=P(Ot|St)P(St|St1);由此,把复杂的自然语言处理问题简化为状态运行图,直到输出为止。

后续

围绕此模型有三个基本的问题:

​ 1.给定模型,如何计算某个特定的输出序列的概率。

​ 对应的是Forward_Backword算法。

​ 2.给定一个模型和某个特定的输出序列,然和找到最可能的输出序列。

​ 维特比算法 – 针对篱笆网络–每个状态都是x1i的集合,对任意的x1i且都有到下一状态中每一个子状态x2j的路径的网络。篱笆网络

是一种·动态规划算法,用于寻找最有可能产生观测事件的维特比路径隐含序列

​ 其算法主要有一下三点(1,2点在论证算法的正确性):

​ 1.如果最优路径p通过一个点xij,那么s>xij==>pij也是最优的,否则如果有更优的路径s>xij==>pij1,那么之前的使用的pij的所谓全局最优路径就是矛盾的。

​ 2.从S到E的路径中对于任意的i时刻(设有k个状态),对任意k个状态中其中之一xij都有一条从S>xij的最优路径,那么全局最优路径必然包含这k条中的之一。

​ 3.有以上论证,(设s(xij)是从S到xij的最优路径,d(iji+1)是从xijx(i+1)k的路径集合)。

​ 从状态i到状态i+1,s(xi+1j)=s(xij)+min(d(iji+1);

​ 这里就是动态规划思想的体现,寻找公共子问题,避免不必要的计算。

​ 3.给出足够量的观测数据,如何估计隐含马尔科夫模型的参数。

​ 1.人工标注,给定输入数据,按照输出结果计算概率.P=#(Ot,St)/#Ot,#Ot标识Ot输出的次数。#Ot 表示出现多少次

​ 2.无监督的训练方法,主要使用Baum_Welch算法。

​ 1.构建初始输出模型,转移概率P和输出概率Q均匀分布时候,可以输出,任何输出,以此为初始模型M0;

​ 2.因为给定的是输出O1,O2,O3...,Ot,对于输出Ot来说,可以倒退出经过哪些可能的经过状态,标记每个状态经历了多少次,到达了哪些状态,输出了哪些符号,由此再次推算状态转移函数,完成一次迭代。并且有P(O|M1)>P(O|M0);

​ 3.继续2直到迭代不明显为止。

这个算法就是通过结果,推出可能走过的路径,然后计算次数来重定义转移函数的概率。

0 0
原创粉丝点击