【Method】HMM(一)基本概念
原理
隐马尔科夫模型(hidden Markov model,HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔科夫随机生成观测序列的过程,属于生成模型。
隐马尔科夫模型的基本概念
隐马尔科夫模型:隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔科夫链随机生成的状态的序列,称为状态序列(state sequence);每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列(observation sequence)。序列的每一个位置又可以看作是一个时刻。
隐马尔科夫模型由初始概率分布、状态转移概率分布以及观测概率分布确定。隐马尔可夫模型的形式定义如下:
设Q是所有可能的状态的集合,M是可能的观测数。
I是长度为T的状态序列,O是对应的观测序列。
\[I=(i_1, i_2, ..., i_T), O=(o_1, o_2, ..., o_T)\]A是状态转移概率矩阵:
\[A = [a_{ij}]_{N \times N}\]其中,
\[a_{ij} = P(i_{t+1} = q_j \mid i_t = q_i), i=1,2,...,N; j=1,2,...,N\]是在时刻t处于状态\(q_i\)的条件下在时刻t+1转移到状态\(q_j\)的概率。
B是观测概率矩阵:
\[B = [b_j(k)]_{N \times N}\]其中,
\[b_j(k) = P(o_t = v_k \mid i_t = q_j), k=1,2,...,M; j=1,2,...,N\]是在时刻t处于状态\(q_j\)的条件下生成观测\(v_k\)的概率。
\(\pi\)是初始状态概率向量:
\[\pi = (\pi_i)\]其中,
\[\pi_i = P(i_1 = q_i), i=1,2,...,N\]是时刻t=1处于状态\(q_i\)的概率。
隐马尔可夫模型由初始状态概率向量\(\pi\),状态转移概率矩阵A和观测概率矩阵B决定。\(\pi\)和A决定状态序列,B决定观测序列。因此,隐马尔可夫模型\(\lambda\)可以用三元符号表示,即
\[\lambda = (A,B,\pi)\]\(A,B,\pi\)称为隐马尔科夫模型的三要素。
状态转移概率矩阵A与初始状态概率向量\(\pi\)确定了隐藏的马尔科夫链,生成不可观测的状态序列。观测概率矩阵B确定了如何从状态生成观测,与状态序列综合确定了如何产生观测序列。
从定义可知,隐马尔可夫模型作了两个基本假设:
(1)齐次马尔可夫假设,即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关。
\[P(i_t \mid i_{t-1}, o_{t-1},..., i_1, o_1) = P(i_t \mid i_{t-1}), t=1,2,...,T\](2)观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关。
\[P(o_t \mid i_T, o_T, i_{T-1}, o_{T-1},..., i_{t+1}, o_{t+1}, i_t, i_{t-1}, o_{t-1},...,i_1, o_1) = P(o_t \mid i_t)\]隐马尔可夫模型可以用于标注,这时状态对应着标记。标注问题是给定观测的序列预测其对应的标记序列。可以假设标注问题的数据是由隐马尔可夫模型生成的。这样我们可以利用隐马尔可夫模型的学习与预测算法进行标注。
观测序列的生成过程
根据隐马尔可夫模型定义,可以将一个长度为T的观测序列\(O=(o_1, o_2, ..., o_T)\)的生成过程描述如下:
输入:隐马尔可夫模型\(\lambda = (A,B,\pi)\),观测序列长度T;
输出:观测序列\(O=(o_1, o_2, ..., o_T)\)
(1) 按照初始状态分布\(\pi\)产生状态\(i_1\)
(2) 令t=1
(3) 按照状态\(i_t\)的观测概率分布\(b_{i_t}(k)\)生成\(o_t\)
(4) 按照状态\(i_t\)的状态转移概率分布\({a_{i_t i_{t+1}}}\)产生状态\(i_{t+1}, i_{t+1}=1,2,...,N\)
(5) 令t=t+1;如果t<T,转步骤(3);否则,终止。
隐马尔可夫模型的3个基本问题
隐马尔可夫模型有3个基本问题:
(1) 概率计算问题。给定模型\(\lambda=(A,B,\pi)\)和观测序列\(O=(o_1, o_2,...,o_T)\),计算在模型\(\lambda\)下观测序列O出现的概率\(P(O \mid \lambda)\)。
(2) 学习问题。已知观测序列\(O=(o_1, o_2, ..., o_T)\),估计模型\(\lambda = (A,B,\pi)\)参数,使得在该模型下观测序列概率\(P(O\mid \lambda)\)最大。即用极大似然估计的方法估计参数。
(3) 预测问题,也称为解码(decoding)问题。已知模型\(\lambda = (A,B,\pi)\)和观测序列\(O=(o_1, o_2, ..., o_T)\),求对给定的观测序列条件概率\(P(I \mid O)\)最大的状态序列\(I=(i_1, i_2, ..., i_T)\)。即给定观测序列,求最有可能的对应的状态序列。