隐马尔可夫模型
介绍

状态序列 (上面那行x) 隐藏的马尔科夫链随机生成的状态序列,称为状态序列
观测序列 (下面那行y) 每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列
马尔科夫模型是关于时序的概率模型
隐状态可以转换但是观测状态之间不能互相转换,所以要由隐状态->观测状态和观测状态1->观测状态2
假设Q是所有可能的状态序列,V是所有可能的观测序列
假设有
相关信息
好比每天的天气有晴天、阴天、雨天三种状态,而每天的天气又会影响人们的心情,人们的心情有开心、平静、两种状态,这样就有
假设
假设

相关信息
其中
其中
其中
隐马尔科夫模型由初始状态概率向量、状态转移概率矩阵A和观测概率矩阵B决定。
两个基本假设
- 齐次马尔科夫性假设:假设隐藏的马尔科夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关。即
- 观测独立性假设:假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他时刻的状态及观测无关。即
三个基本问题
- 概率计算问题:给定模型
和观测序列 ,计算在模型 下观测序列 出现的概率 - 学习问题:已知观测序列
,估计模型 参数,使得在该模型下观测序列概率 最大 - 预测问题:已知模型
和观测序列 ,求给定观测序列条件概率 最大的状态序列
相关信息
问题一: 给定模型参数,人们心情的状态序列的概率
问题二: 给定人们心情的状态序列,估计模型参数
问题三: 给定模型参数和人们心情的状态序列,预测天气的序列
概率计算问题
在模型
暴力求解
对于状态序列
对上面这种序列,产生的观测序列
I和O的联合概率是:
对所有可能的状态序列求和:
这样的时间复杂度是
前向算法
引入前向概率
这里用到了动态规划的思想
对于时刻
对于时刻
这里的意思是,对于时刻
最终的观测序列概率是
这样的时间复杂度是
相关信息
对于每个
对于每个时间步,都需要计算
一共有
学习问题
Baun-Welch算法
相关信息
Baun-Welch算法是EM算法在隐马尔科夫模型中的应用 建议在看此部分之前先了解EM算法
已知观测序列
确定完全数据的对数似然函数
首先初始化参数,然后迭代以下两步直到收敛
E步:Q函数
其中,
M步:极大化Q函数
使用拉格朗日乘子法,约束条件是
其中,
预测问题
维特比算法
已知模型
这里用到了动态规划的思想,引入前向概率
最终的思想就是 构建路径,回溯查找
构建
首先定义两个变量,
也就是分别记录当前状态的最大概率和最大概率对应的前一个状态,前者是为了计算后面的最大概率,后者是为了回溯查找路径
初始化
递推
由变量
由变量
终止
其中,
也就是最优路径的概率
其中,
也就是最优路径的最后一个状态
回溯
其中,
根据
这样的时间复杂度是