马尔科夫模型
马尔科夫模型是单重随机过程,是一个2元组:(S,A)。
其中S是状态集合,A是状态转移矩阵。
只用状态转移来描述随机过程。
马尔科夫模型的2个假设
有限历史性假设:t+l时刻系统状态的概率分布只与t时刻的状态有关,与t时刻以前的状态无关;
齐次性假设:从t时刻到t+l时刻的状态转移与t的值无关。
以天气模型为例
天气变化有3中状态S:{1(阴),2(云),3(晴)}
图片来自网络
则状态转移矩阵A:
这样,只要知道的初始状态概率向量,就能预测接下来每天的天气了。
隐马尔科夫模型
隐马尔科夫模型是双重随机过程,是一个5元组:
V是输出集合。
表示在状态j时输出k的概率。
是初始状态概率。
用状态转移和输出概率一起来描述随机过程。
以扔硬币模型为例
有个小孩手上拿着3个各不相同,也正反不均匀的硬币。他每次随机抽取1个硬币扔,扔了很多次(比如10次),他并不告诉你他每次抽中的是哪个硬币。但是他会告诉你每次的正反结果:正正反正反正正正……
在这个问题中,我们知道观察序列(硬币的正反),但是小孩手上硬币类型的变换序列被隐藏起来了,我们不知道小孩每次拿的哪个硬币扔,因此是双重随机过程。这就隐马尔科夫过程。
这里假设模型参数已知:
隐马尔科夫模型的3个问题
1.【概率问题】给定上述模型,观察到[正正反]的概率是多少?
2.【预测问题】给定上述模型,如果观察到上述结果,最可能的硬币转换序列(状态转换序列)是什么?
3.【学习问题】不告诉你模型参数,如何根据观察序列得到它们?
【概率问题】
1.向前算法
向前变量:给定模型,在时刻t,状态为i,且之前的观察序列如下的概率。
显然有
输出
2.向后算法
向后变量:给定模型,在时刻t,状态为i,且之后的观察序列如下的概率。
显然有
输出
【预测问题】
Viterbi算法
Viterbi变量:给定模型,在时刻t,状态为i,观察到的最佳转换序列为的概率。
显然有
这里需要把最佳路径记录下来
输出
最优序列
【学习问题】
1.有监督模式
在有大量标签数据下,直接用频率近似概率参数即可。
2.无监督模式
Baum-Welch算法
定义变量:在给定模型和观察序列O,在t时刻状态为i,在t+1时刻状态为j的概率
令
则关于模型参数的一种估计方法为