隐马尔科夫模型定义:
是长度为
的状态序列:
是对应的观测序列:
其中:
-
为状态的集合:
,
为状态的数量;
-
为观测的集合:
,
为观测的数量;
-
为状态转移概率矩阵:
,
表示在
时刻处于状态
的条件下
时刻转移到
的概率;
-
为观测生成概率矩阵:
,
表示在
时刻除以状态
的条件下生成观测
的概率;
-
是初始概率向量:
,
表示
时处于状态
的概率
隐马尔科夫模型两个假设:
- 任意时刻
的状态只依赖于其前一刻的状态,与观测和其他状态无关,即:
- 任意时刻的观测值值依赖于该时刻的状态,与观测和其他时刻的状态无关,即:
隐马尔科夫模型的三个问题:
-
概率计算问题: 给定模型
和观测序列
,计算在模型
下观察序列
出现的概率
;
-
学习问题: 已知观测序列
,估计模型
的参数,使得该模型下观测序列概率
最大;
-
预测问题(解码问题): 已经模型
和观测序列
,求最可能的对应的观测序列。
概率计算问题
前向算法
根据隐马尔科夫模型的假设:
时刻的观测只依赖于
时刻的状态,
而时刻的状态又只依赖于
时刻的状态,
因此可以先求出观测序列的概率,
再求的概率,
最终求得的概率,即
。
前向概率:前时刻部分的观测序列为
且
时刻状态为
的概率,记为:
1. 初始化:
2. 递推:对
3. 终止:
解释一下递推公式:要求
时刻的状态是
并且观测是
,
首先时刻的状态
可能是
时刻的任意一种状态转移过来的,
因此对前时刻的前向概率乘以对应的转移概率并累加,
最后乘以是
时状态
生成观测
的概率。
后向算法
前向算法是从前往后递推计算,而后向算法则相反,从后往前计算。
后向概率:在时刻状态为
的条件下,从
到
时刻部分 观测序列为
的概率,记为:
1. 初始化:
2. 递推:对
3. 终止:
示例:赌场的欺诈
正常骰子A(6个字码出现的概率是相等的),灌铅骰子B(6个字码出现的概率是不相等)
| 字码 | 骰子A | 骰子B |
|---|---|---|
| 1点 | 1/6 | 0 |
| 2点 | 1/6 | 1/8 |
| 3点 | 1/6 | 1/8 |
| 4点 | 1/6 | 3/16 |
| 5点 | 1/6 | 3/16 |
| 6点 | 1/6 | 3/8 |
假设骰子使用概率如下:
假设第一次一定使用骰子A,即初始概率向量为:
于是该骰子隐马尔科夫模型如下:
状态集合:;
观测集合:;
状态转移矩阵:;
生成概率矩阵:;
可以描述为下图:
用一个长度为的观测序列
来演示前向计算和后向计算的过程:
前向算法:
1. 初始化计算:
2. 递推计算:
3. 终止:
后向算法:
1. 初始化计算:
2. 递推计算:
3. 终止: