1.基本概念
1、马尔科夫假设:当前的状态只与之前的状态有关
2、马尔科夫过程:当前的状态只与前n个状态有关,被称为n阶马尔科夫模型。
3、马尔科夫链:可以理解为带有概率的状态转移链
3、一阶马尔科夫模型:当前的状态只与前一状态有关
(1)若有M个状态,则共有MM个状态转移
(2)转移概率:每一个状态转移都有一定的概率,称为~,所有的转移概率用一个MM的矩阵表示
(3)每一个系统开始的时候,需要一个初始概率,称为π向量,表示每种状态作为初始状态出现的概率
4、隐马尔科夫模型
可能存在这样一种情况,我们想要的状态并不能直接观察得到,但是呢这个状态和其他某种可观测的状态之间存在一定的概率关系,也就是说可以通过那种可观测的状态(观测状态),来求解我们想要得到的状态(隐状态),这就是隐马尔科夫模型的主要思想。
2.隐马尔科夫模型
1、隐马尔科夫模型定义
隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。
简单理解:
(1)首先有一个状态序列,这个序列是不可被观测的 —— 状态序列
(2)状态序列的每个状态可以按照一定的概率生成一个观测
(3)这些观测组合成一个观测序列,显而易见是可被观测的 —— 观测序列
另外:序列的每一个位置又可以被看作一个时刻
隐马尔科夫模型主要用来解决标注问题,需要注意的是,对应着标记的是状态而非观测。也就是说在标注问题中,观测序列是输入,状态序列是输出,根据观测序列预测状态序列。
隐马尔科夫模型是一个生成模型。
2、隐马尔科夫模型的两个假设
(1)观测值之间严格独立
(2)一阶马尔科夫模型:状态的转移过程中当前状态只与前一状态有关
注:这也是其和条件随机场(CRF)的主要区别:CRF去除了这两个假设
另,条件随机场是一个判别模型
3、隐马尔科夫模型的三要素
假设有N个状态,M个观测
(1)状态转移矩阵:一个NN阶矩阵,描述了各状态间相互转移的概率,记为A
(2)观测概率矩阵:一个NM阶矩阵,描述了每个状态生成每个观测的概率,记为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),求最有可能的对应的状态序列。
3.算法
针对以下三个问题,人们提出了相应的算法
*1 评估问题: 前向算法
*2 解码问题: Viterbi算法
*3 学习问题: Baum-Welch算法(向前向后算法)