统计学习方法十:隐马尔科夫模型二

上一篇博客介绍了隐马尔科夫模型的基本概念和概率计算问题。 这篇博客主要介绍马尔可夫模型的学习问题和预测问题。

一、学习算法

已知观测序列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)维特比算法:用动态规划解隐马尔科夫模型预测问题,即用动态规划求概率最大路径(最优路径),这时一条路径对应着一个状态序列。

先从概念上理解一下吧,容我缓缓再加上数学推导..... ..................................................

原文地址:https://www.cnblogs.com/naonaoling/p/5702835.html