隐马尔科夫模型HMM
HMM的贝叶斯网络
HMM (Hidden Markov Model)是关于时序的概率模型,描述由一个隐藏的马尔科夫链生成不可观测的状态随机序列,再由各个状态生成观测随机序列的过程.
HMM的定义
HMM的参数
是所有可能的状态的集合, 其中 是可能的状态数;
是所有可能的观测的集合, 其中 是可能的观测数;
是长度为 的状态序列; 是对应的观测序列:
HMM的三要素
HMM由初始概率分布 (向量)、状态转移概率分布 (矩阵) 以及观测概率分布 (矩阵) 确定. 和 决定状态序列, 决定观测序列。因此, HMM可以用三元符号表示, 称为HMM的三要素:
是状态转移概率矩阵:
其中, 是在时刻 处于状态 的条件下时刻 转移到状态 的概率:
{% math %}a{ij}=P(i{t+1}=q_j\mid i_t=q_i), \quad i=1,2,\cdots,N;j=1,2,\cdots,N{% endmath %}
是观测转移概率矩阵:
{% math %}B=[b{j}(k)]{N\times M}{% endmath %}
其中, 是在时刻 处于状态 的条件下生成观测 的概率:
{% math %}b_j(k)=P(o_t=v_k\mid i_t=q_j),\quad k=1,2,\cdots,M;j=1,2,\cdots,N{% endmath %}
是初始状态概率向量:
其中, {% math %}\pi_i{% endmath %} 是时刻 {% math %}t=1{% endmath %} 处于状态 {% math %}q_i{% endmath %} 的概率
{% math %}\pi_i=P(i_1=q_i),\quad i=1,2,\cdots,N{% endmath %}
HMM的两个假设
齐次马尔可夫性假设 任意时刻 t 的状态, 只依赖于其前一刻的状态, 与其他时刻的状态及观测无关, 也与时刻 t 无关.
{% math %}P(it\mid i{t-1},o{t-1},\cdots,i_1,o_1)=P(i_t\mid i{t-1}), \quad t=1,2,\cdots,T{% endmath %}
观测独立性假设 任何时刻的观测只依赖于该时刻的马尔科夫链状态. 与其他观测及状态无关.
{% math %}P(ot\mid i{T},o{T},\cdots,i{t},o{t},\cdots,i_1,o_1)=P(o_t\mid i{t}), \quad t=1,2,\cdots,T{% endmath %}
HMM的三个基本问题
- 概率计算问题: 前向-后向算法——动态规划
- 给定模型 和观测序列
- 计算模型 下观测序列 出现的概率
- 学习问题: Baum-Welch算法(状态未知)——EM
- 已知观测序列
- 估计模型 的参数,使得在该模型下观测序列 最大
- 预测问题: Viterbi算法——动态规划
- 已知模型 , 和观测序列
- 求给定观测序列条件概率 最大的状态序列
概率计算问题
直接计算法
状态序列 的概率:
对固定的状态序列 ,观测序列 的概率是:
O 和 I 同时出现的联合概率:
- 对所有可能的状态序列I求和,得到观测序列O的概率
前向 - 后向概率
- 前向概率: 给定隐马尔科夫模型 λ, 定义到时刻 t , 部分观测序列为 且状态为 的概率
- 后向概率: 给定隐马尔科夫模型 λ, 定义到时刻 t , 状态为 的条件下, 从 t+1 到 T 的部分 观测序列为 的概率
前向算法
(1) 初值:
(2) 递推: 对于
(3) 最终:
后向算法
(1) 初值:
(2) 递推: 对于
(3) 最终:
学习问题
Baum-Welch算法
预测算法
Viterbi算法
反馈与建议
- 微博:@Girl_AI