统计学习方法十:隐马尔科夫模型二
上一篇博客介绍了隐马尔科夫模型的基本概念和概率计算问题。
这篇博客主要介绍马尔可夫模型的学习问题和预测问题。
一、学习算法
已知观测序列O(o1,o2,...oT),估计模型r的参数,使的观测序列O出现的概率P(O|r)最大
学习算法分为两种:
(1)监督学习算法:训练数据包括观测序列(输入)和对应的状态序列(输出)
(2)非监督学习算法:训练数据值包括观测序列
1、监督学习方法
用极大似然估计来估计隐马尔科夫模型的参数:状态转移矩阵、观测概率矩阵、初始状态概率向量。
简单来说,就是用频率来估计概率。
训练数据集:S个观测序列、状态序列对
其中状态集合有N个元素,观测集合有M个元素
(1)状态转移概率:
统计状态i转移到状态j的频数
统计状态i转换到状态1~N的频数
两者相比就是状态i转移到状态j的频率 —— 概率的估计
(2)观测概率
统计状态为i、观测为k的频数
统计状态为i、观测为1~M的频数
两者相比就是状态为i、观测为k的频率 —— 概率的估计
(3)初始状态概率
统计初始状态为i的频数
统计一共有多少个初始状态(S个)
两者相比就是初始状态为i的频率 —— 概率的估计
2、非监督学习方法—— Baum-Welch算法
训练数据集:S个长度为T的观测序列
(1)参数学习 —— EM算法
Q函数 —> 求极大值(分别用拉格朗日函数表示πi、aij、bj(k),求偏导=0,求解三个值)
(2)用t时刻处于状态qi的概率和t时刻处于qi且t+1时刻处于qj的概率,替换上面结果中的概率
二、预测算法
给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),求最有可能的对应的状态序列
主要包含两者算法:
(1)近似算法:在每个时刻t选择在该时刻最优可能出现的状态it,从而得到一个状态序列I(i1,i2,..iT),将它作为预测的结果
(2)维特比算法:用动态规划解隐马尔科夫模型预测问题,即用动态规划求概率最大路径(最优路径),这时一条路径对应着一个状态序列。
先从概念上理解一下吧,容我缓缓再加上数学推导.....
..................................................