马尔可夫性质
设$\{X(t), t \in T\}$是一个随机过程, E是其状态空间, 若对于任意的$t_1 < t_2 < \cdots < t_n < t$, 任意的$x_1 < t_2 < \cdots < t_n < t$, 任意的$x_1, x_2, \cdots, x_n, x \in E$, 随机变量$X(t)$在已知变量$X(t_1) = x_1, \cdots, X(t_n) = x_n$下的条件分布函数只与$X(t_n)=x_n$有关, 而与$X(t_1)=x_1, \cdots, X(t_{n-1})=x_{n-1}$无关, 即条件分布函数满足下列等式, 此性质称为马尔可夫性质; 如果随机过程满足马尔可夫性质, 则该过程称为马尔可夫过程.
马尔可夫链
马尔可夫链是指具有马尔可夫性质的随机过程. 在过程中, 在给定当前信息的情况下, 过去的信息状态对于预测未来状态是无关的.
在马尔可夫链的每一步, 系统根据概率分布, 可以从一个状态变成另外一个状态, 也可以保持当前状态不变. 状态的改变叫做转移, 状态改变的相关概率叫做转移概率
马尔可夫链中的三元素是: 状态空间S, 转移概率矩阵P, 初始概率分布$\pi$
HMM
隐马尔可夫模型(Hidden Markov Model, HMM)是一种统计模型, 在语音识别, 行为识别, NLP, 故障诊断等领域具有高效的性能.
HMM是关于时序的概率模型, 描述一个含有未知参数的马尔可夫链所生成的不可观测的状态随机序列, 再由各个状态生成观测随机序列的过程. HMM是一个双重随机过程, 具有一定状态的隐马尔可夫链和随机的观测序列.
HMM随机生成的状态随机序列被称为状态序列; 每个状态生成一个观测, 由此产生的观测随机序列被称为观测序列.

$z_1, z_2, \cdots, z_n$是不可观测的状态, $x_1, x_2, \cdots, x_n$是可观测到的序列; 不可观测的状态决定可观测序列的值(z的取值决定x的取值)
HMM由隐含状态S, 可观测状态O, 初始状态概率矩阵$\pi$, 隐含状态转移概率矩阵A, 可观测值转移概率矩阵B(也称为混淆矩阵, Confusion Matrix)
$\pi$和A决定了状态序列, B决定观测序列, 因此HMM可以使用三元符号表示, 称为HMM三元素
HMM参数说明
HMM模型
S是所有可能的状态集合
O是所有可能的观测集合
I是长度为T的状态序列, Q对应的观测序列
A是隐含状态转移概率矩阵
其中$a_{ij} = a_{i_t i_{t+1}}= p(i_{t+1}=s_j | i_t = s_i)$, 表示在时刻$t$处于状态序列中$s_i$状态的条件下时刻$t+1$转移到状态$s_j$的概率
B是可观测值转移概率矩阵
其中$b_{ij} = b_{i_t q_t} = p( q_t = o_j | i_t=s_i)$, 表示在时刻$t$处于状态序列中$s_i$状态的条件下, 生成可观测状态$o_j$的概率
$\pi$是初始状态概率向量
其中$\pi_{i_1} = p(i_1 = s_i)$, 表示在时刻$t=1$处于状态序列中$s_i$的概率
HMM的两个性质
看这个意思就是当前状态的概率只和上一个状态的概率有关, 与其他都没有关系
HMM案例
假设有三个盒子, 编号分别为1, 2, 3; 每个盒子都装有黑白两种颜色的小球, 小球的比例如下:
| 编号 | 白球 | 黑球 |
|---|---|---|
| 1 | 4 | 6 |
| 2 | 8 | 2 |
| 3 | 5 | 5 |
- 按照$\pi$的概率选择一个盒子, 从盒子中随机抽取一个小球, 记录颜色后, 放回盒子中
- 按照某种条件概率选择新的盒子, 重复该操作
- 最终得到的观测序列为: “白黑白白黑”
对该题目的理解如下:
有放回的按照概率$\pi$来抽取, 假如第一次抽取的是1号盒子, 第二次抽取的是3号盒子, 接下来是2号, 2号, 3号, 举个例子, 所以
3号 -> 2号 -> 1号 -> 1号 -> 2号, 状态序列
白球 -> 黑球 -> 白球 -> 白球 -> 黑球, 观测序列
HMM的的三个问题
- 概率计算问题
给定模型$\lambda=(A, B, \pi)$和观测序列$Q = \{q_1, q_2, \cdots, q_T\}$, 利用前向-后向算法计算模型$\lambda$之下观测到序列Q出现的概率 - 学习问题
已知观测序列$Q = \{q_1, q_2, \cdots, q_T\}$, 使用Baum-Welch算法估计模型$\lambda=(A, B, \pi)$的参数, 使得在该模型下观测序列$p(Q|\lambda)$最大 - 预测问题
给定模型$\lambda=(A, B, \pi)$和观测序列$Q = \{q_1, q_2, \cdots, q_T\}$, 利用Viterbi算法求解给定观测序列条件概率$p(I|Q, \lambda)$的最大状态序列$I$
概率计算问题
直接计算法/暴力算法
给定模型$\lambda=(A, B, \pi)$和观测序列$Q = \{q_1, q_2, \cdots, q_T\}$, 计算在模型$\lambda$的情况下, 得到观测序列Q出现的概率$p(Q; \lambda)$
要想得到观测序列”白球 -> 黑球 -> 白球 -> 白球 -> 黑球”这样的结果, 又因为每个盒子都是有白球和黑球的, 然而我们并不知道状态序列及抽取的盒子的序列是什么样的, 所以如下:
按照概率公式, 列举所有可能的长度为T的状态序列$I = \{ i_1, i_2, \cdots, i_T\}$, 先求出各个状态序列与观测序列$Q=\{q_1, q_2, \cdots, q_T\}$的联合概率$P(Q,I; \lambda)$, 然后对所有可能的状态序列求和, 从而得到最后的概率$p(Q;\lambda)$
假设抽取盒子的状态序列 $I = 3号, 2号, 1号, 1号, 2号$, 那么该状态序列的长度$T = 5$
上述只是求出了一种盒子的状态序列, 因为每个盒子里边既有白球又有黑球, 所以盒子的状态序列总共有$3^5$种可能.
然后对所有可能的状态序列求和
前向概率/后向概率

$\alpha_t$是给定$q_t$, 时刻1到时刻t所有观测值$y_1, y_2, \cdots, y_t, q_t$出现的联合概率
$\beta_t$是给定$q_t$, 时刻t+1到时刻T, 所有观测值$y_{t+1}, y_{t+2}, \cdots, y_T$出现的联合概率
前向概率-后向概率指的是在一个观测序列中, 时刻t对应状态$s_i$的概率值转换过来的信息
前向算法
给定$\lambda$, 定义前向概率为, 在时刻t观测序列为$q_1, q_2, \cdots, q_t$, 状态序列的当前状态为$s_i$的概率, 记为:
初值$\alpha_1(i) = p(q_1, i_1=s_i; \lambda) = \pi_i b_{i q_1}$, 表示在时刻$t=1$, 观测序列为$q_1$和状态序列的当前状态为$s_i$的联合概率
递推: 对于$t=1, 2, \cdots, T-1$
最终
后向算法
给定$\lambda$, 定义后向概率为, 在时刻t状态序列的当前状态为$s_i$的前提下, 从时刻$t+1$到时刻T部分的观测序列为$q_{t+1}, q_{t+2}, \cdots, q_T$的概率, 记为:
初值: $\beta_T(i) = 1$, 根据$\beta_t(i)$的公式, 令$t=T$, 那么整个状态序列和观测序列总共只有T个时刻, 是不可能有$T+1$时刻的, 所以$T+1$时刻之后发生的是必然事件, 所以$\beta_T(i) = 1$
递推: 对于$t = T-1, T-2, \cdots, 1$, 倒着推导
最终
根据上述$\beta_t$的定义, $\beta_t(i)$是给定$q_t$, 时刻$t+1$到时刻$T$, 所有观测值$y_{t+1}, y_{t+2}, \cdots, y_T$的联合概率, 如下图所示:
那么$\beta_{t+1}(i)$就是给定$q_t$(这里为什么不是$q_{t+1}$), 时刻$t+2$到时刻$T$, 所有观测值$y_{t+2}, \cdots, y_T$的联合概率, 如下图所示:
单个状态的概率
求给定模型$\lambda$和观测序列Q的情况下, 在时刻t处于状态序列中$s_i$的概率, 计作:
单个状态概率的意义主要是用于判断在每个时刻最可能存在的状态序列中的状态, 从而可以得到整个状态序列作为最终的预测结果
两个状态的联合概率
求给定模型$\lambda$和观测序列Q的情况下, 在时刻t处于状态$s_i$并且在时刻$t+1$处于状态$s_j$概率, 计作:
学习问题
若训练数据包含观测序列和状态序列, 则HMM的学习问题非常简单, 是监督学习算法
若训练数据值包含观测序列, 则HMM的学习问题需要使用EM算法求解, 是非监督学习算法
学习问题-监督学习
直接利用大数定理的结论”频率的极限是概率”, 直接给出HMM的参数估计
学习问题-非监督学习
预测问题
近似算法
直接在每个时刻t时候最有可能的状态作为最终的预测状态, 使用下列公式计算概率值
viterbi算法
viterbi算法实际是用动态规划的思路求解HMM预测问题, 求概率最大的”路径”, 每条”路径”对应一个状态序列
viterbi算法案例
给定参数$\pi, A, B$, 得到观测序列为”白黑白白黑”, 求出最优的隐藏状态序列
同样的方法继续计算$\delta_3(i), \delta_4(i), \delta_5(i)$, 得到如下:
从$\delta_5$得知, $\delta_5(3)$最大, 往前推导, 第5个状态是由$\delta_4$的哪个产生的?
由$max(0.00384 \ast 0.1, 0.00768 \ast 0.6, 0.0144 \ast 0.3)$
得到是由$\delta_4(2)$来的, 依次往回倒推
1 | 5 -> 4 -> 3 -> 2 -> 1 |
可以看出盒子的序列为(2, 3, 2, 2, 3)