一、基本概念
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、算法解析