概率图模型--HMM -- 潘登同学的Machine Learning笔记
马尔可夫链
- 有向图模型(贝叶斯网络):用有向图表示变量间的依赖关系;
- 无向图模型(马尔可夫网):用无向图表示变量间的相关关系。
HMM 就是贝叶斯网络的一种--虽然它的名字里有和“马尔可夫网”一样的马尔可夫。对变量序列建模的贝叶斯网络又叫动态贝叶斯网络。HMM 就是最简单的动态贝叶斯网络。
注意
,马尔可夫过程其原始模型是马尔可夫链。该过程具有如下特性:在已知系统当前状态的条件下,它未来的演变不依赖于过去的演变。也就是说,一个马尔可夫过程可以表示为系统在状态转移过程中,第 T+1 次结果只受第 T 次结果的影响,即只与当前状态有关,而与过去状态,即与系统的初始状态和此次转移前的所有状态无关。
HMM
HMM 是一个关于时序的概率模型,它的变量分为两组
- 状态变量${s_1,s_2,...,s_r}$,其中 $s_t \in S$,表示 t 时刻的系统状态
- 观测变量${o_1,o_2,...,o_r}$,其中 $o_t \in O$,表示 t 实可的观测值。
一般假定状态序列是隐藏的,不能被观测到的,因此状态变量是隐变量,这就是 HMM中的 hidden 的来源
基本假设
- 假设 1: 假设隐藏的马尔可夫链在任意时刻 t 的状态只依赖于前一个时刻(t-1)的状态,与其 它时刻的状态及观测无关,也与时刻 t 无关; $$ P(s_t|s_{t-1},\ldots,s_1,o_1) = p(s_t|s_{t-1}) $$
- 假设 2:假设任意时刻的观测只依赖于该时刻的马尔可夫链状态,与其它观测及状态无关。 用公式表达就是 $$ P(o_t|s_t,s_{t-1}o_{t-1},\ldots,s_1,o_1) = p(o_t|s_{t}) $$
HMM 的两个空间和三组参数
两个空间
- 设 HMM 的状态变量(离散值),总共有 N 种取值,分别为:${S_1,S_2,...,S_n}$
- 观测变量,也是离散值,总共有 M 种取值,分别为:${O_1,O_2,...,O_m}$
那么,要确定一个 HMM,除了要指定其对应的状态空间 S 和观测空间 O 外,还需要三组参数,分别是
- 状态转移概率:模型在各个状态间转换的概率,通常记作矩阵$A_{N*N}={\alpha_{ij}}$,其中$\alpha_{ij} = P(s_{j}|s_{i})$, 表示在任意时刻 t,若状态为 $S_i$,则下一时刻状态为 $S_j$ 的概率
- 输出观测概率:模型根据当前状态获得各个观测值的概率,通常记作矩阵 $B_{N*M}={ b_{ij} }$,其中$b_{ij} = P(o_j|s_i)$,表示在任意时刻 t,若状态为 $S_i$,则观测值 $O_j$ 被获取的概率
- 初始状态概率:模型在初始时刻各状态出现的概率,通常记作 $\pi = (\pi_1,\pi_2,\ldots,\pi_N)$
通常我们用$λ=[A,B,Π]$来指代这三组参数,有了状态空间 S 和观测空间 O,以及参数λ,一个 HMM 就被确定了。
HMM的三个基本问题
概率计算问题(evaluation问题)
已知信息
- 模型$λ=[A,B,Π]$
- 观察序列$[0_1,o_2,\ldots,o_r]$
求解目标: 计算在给定模型λ下,已知观测序列 O 出现的概率:P(O|λ),也就是说,给定观测序列,求它和评估模型之间的匹配度
解决方案
- 前向-后向算法
预测问题(解码问题)
已知信息
- 模型$λ=[A,B,Π]$
- 观察序列$[0_1,o_2,\ldots,o_r]$
求解目标: 计算在给定模型λ下,使已知观测序列 O 的条件概率 $P(O|S)$最大的状态序列${s_1,s_2,...,s_r}$,即给定观测序列,求最有可能与之对应的状态序列;
解决方案
- Viterbi算法
学习问题
已知信息
- 观察序列$[0_1,o_2,\ldots,o_r]$
- 或许也会给定与之对应的状态序列${s_1,s_2,...,s_r}$
求解目标: 估计模型$λ=[A,B,Π]$参数,使得该模型下观测序列概率 $P(O|λ)$最大。也就是训练模型,使其最后地描述观测数据
解决方案
- Baum-Welch算法(Baum-Welch算法是EM算法的一个特例,专门用来求解隐马尔科夫中隐状态参数)