统计学习方法十:隐马尔科夫模型

一、基本概念

1、马尔科夫假设:当前的状态只与之前的状态有关
2、马尔科夫过程:当前的状态只与前n个状态有关,被称为n阶马尔科夫模型。
3、马尔科夫链:可以理解为带有概率的状态转移链
3、一阶马尔科夫模型:当前的状态只与前一状态有关
(1)若有M个状态,则共有M*M个状态转移
(2)转移概率:每一个状态转移都有一定的概率,称为~,所有的转移概率用一个M*M的矩阵表示
(3)每一个系统开始的时候,需要一个初始概率,称为π向量,表示每种状态作为初始状态出现的概率
4、隐马尔科夫模型
    可能存在这样一种情况,我们想要的状态并不能直接观察得到,但是呢这个状态和其他某种可观测的状态之间存在一定的概率关系,也就是说可以通过那种可观测的状态(观测状态),来求解我们想要得到的状态(隐状态),这就是隐马尔科夫模型的主要思想。

二、什么是隐马尔科夫模型

1、隐马尔科夫模型定义
    隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。
    简单理解:
    (1)首先有一个状态序列,这个序列是不可被观测的  —— 状态序列
    (2)状态序列的每个状态可以按照一定的概率生成一个观测
    (3)这些观测组合成一个观测序列,显而易见是可被观测的  —— 观测序列
    另外:序列的每一个位置又可以被看作一个时刻

    隐马尔科夫模型主要用来解决标注问题,需要注意的是,对应着标记的是状态而非观测。也就是说在标注问题中,观测序列是输入,状态序列是输出,根据观测序列预测状态序列。
    隐马尔科夫模型是一个生成模型。

2、隐马尔科夫模型的两个假设
(1)观测值之间严格独立
(2)一阶马尔科夫模型:状态的转移过程中当前状态只与前一状态有关
注:这也是其和条件随机场(CRF)的主要区别:CRF去除了这两个假设
    另,条件随机场是一个判别模型

3、隐马尔科夫模型的三要素
    假设有N个状态,M个观测
(1)状态转移矩阵:一个N*N阶矩阵,描述了各状态间相互转移的概率,记为A
(2)观测概率矩阵:一个N*M阶矩阵,描述了每个状态生成每个观测的概率,记为B
(3)初始状态概率向量:一个N阶向量,描述了初始时刻处于每个状态的概率,记为π

4、隐马尔科夫模型的三个基本问题:
(1)概率计算问题:给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),计算观测序列O出现的概率P(O|r)
(2)学习问题:已知观测序列O(o1,o2,...oT),估计模型r的参数,使的观测序列O出现的概率P(O|r)最大
(3)预测问题(解码问题):给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),求最有可能的对应的状态序列。

三、概率计算问题

给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),计算观测序列O出现的概率P(O|r)
主要是两种算法:前向算法和后向算法。
为了对比,同时给出两种算法。

1、前向概率和后向概率
(1)前向概率:给定隐马尔科夫模型r,定义到时刻t,部分观测序列为O1,O2,...Ot且t时刻状态为qi的概率为前向概率
(2)后向概率:给定隐马尔科夫模型r,定义在时刻t状态为qi的条件下,从t+1到T的部分观测序列为Ot+1,Ot+1,...OT的概率为后向概率。


2、前向算法与后向算法
    输入:隐马尔科夫模型r,观测序列O
    输出:观测序列概率P(O|r)
(1)前向算法

(2)后向算法

3、算法解析




原文地址:https://www.cnblogs.com/naonaoling/p/5701634.html