机器学习--隐马尔可夫模型(一)

机器学习 | 隐马尔可夫模型(一)

隐马尔可夫模型(hidden Markov model,HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型。隐马尔可夫模型在语音识别、自然语言处理、生物信息、模式识别等领域有着广泛的应用。

隐马尔可夫模型的定义

隐马尔可夫模型:隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,称为状态序列(state sequence);每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列(observation sequence)。序列的每一个位置又可以看作是一个时刻。

隐马尔可夫模型由初始的概率分布、状态转移概率分布以及观测概率分布确定。具体的形式如下,这里设Q是所有可能的状态的集合,V是所有可能的观测的集合,即有: \[ Q = \lbrace q_1,q_2,...,q_N\rbrace \\ V =\lbrace v_1,v_2,...,v_N\rbrace \] 其中,N是可能的状态数,M是可能观测的数。另外设I是长度为T的状态序列,O是对应的观测序列: \[ I = \lbrace i_1,i_2,...,i_N\rbrace\\ O = \lbrace o_1,o_2,...,o_B\rbrace \] 在马尔可夫链中,有几个矩阵变量,分别是状态转移概率矩阵A,观测概率矩阵B,以及初始状态概率向量C,其中状态转移概率矩阵A为: \[ A = [a_{ij}]_{N×N} \] 其中 \[ a_{ij} = p(i_{t+1} =q_j|i_t = q_i)\\ i = 1,2,...,N,j = 1,2,...,N \] 是在时刻t处于状态\(q_i\)的条件下生成状态\(q_j\)的概率。

初始状态概率向量为: \[ C = (C_i),C_i = P(i_1=q_i),i =1,2,...,N \] \(C_i\)为时刻t=1处于状态\(q_i\)的概率。

隐马尔可夫模型由初始状态概率向量C,状态转移概率矩阵A和观测概率矩阵B决定,C和A决定状态序列,B决定观测序列,因此隐马尔可夫模型可以用三元符号表示为: \[ \lambda = (A,B,\pi) \] A、B和C也被称为隐马尔科夫模型的三要素

状态转移概率矩阵A与初始状态概率向量C确定了隐藏的马尔可夫链,生成不可观测的状态序列,观测概率矩阵B确定了如何从状态生成观测,与状态序列综合确定了如何产生观测序列。

从定义中,可以发现隐马尔可夫模型作了两个基本假设:

  1. 马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其它时刻的状态及观测无关,也与时刻t无关, \[ p(i_t|i_{t-1},o_{i-1},...,i_1,o_1) = p(i_t|i_{t-1}),t = 1, 2,...,T \]
  2. 观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关。 \[ p(o_t|i_T,i_{T-1},o_{T-1},...,i_{t+1},o_{t+1}.i_t,o_t,...,i_1,o_1) = p(o_t|i_t) \] 隐马尔可夫模型可以用于标注,这时状态对应着标记,标注问题是给定观测的序列预测其对应的标记序列。可以假设标注问题的数据是由隐马尔可夫模型生成的,这样可以利用该模型的学习与预测算法进行标注。

下面举一个例子:

假设有4个盒子,每个盒子里都装有红白两种颜色的球,盒子里的红白球数如下表所示:

盒子 1 2 3 4
红球数 5 3 6 8
白球数 5 7 4 2

按照下面的方法抽球,产生一个球的颜色的观测序列:开始,从4个盒子里以等概率随机选取1个盒子,从这个盒子里随机抽出1个球,记录其颜色后,放回;然后从当前盒子随机转移到下一个盒子,规则是:如果当前盒子是盒子1,那么下一个盒子一定是盒子2,如果当前是盒子2或3,那么分别以概率0.4和0.6转移到左边或右边的盒子,如果当前是盒子4,那么各以0.5的概率停留在盒子4或转移到盒子3;确定转移的盒子后,再从这个盒子里随机抽出1个球,记录其颜色,放回;如此下去,重复进行5次,得到一个球的颜色的观测序列: \[ O = \lbrace红,红,白,白,红\rbrace \] 在这个过程中,观察者只能观测到球的颜色的序列,观测不到球是从哪个盒子取出的,即观测不到盒子的序列。

在这个例子中有两个随机序列,一个是盒子的序列(状态序列),一个是球的颜色的观测序列(观测序列)。前者是隐藏的,只有后者是可观测的。这是一个隐马尔可夫模型的例子,根据所给条件,可以明确状态集合、观测集合、序列长度以及模型的三要素。

盒子对应状态,状态的集合是 \[ Q = \lbrace盒子1,盒子2,盒子3,盒子4\rbrace,N = 4 \] 球的颜色对应观测。观测的集合是 \[ V = \lbrace红,白\rbrace,M = 2 \] 状态序列和观测序列长度T = 5。

初始概率分布为 \[ \pi = (0.25,0.25,0.25,0.25)^T \] 状态转移概率分布为 \[ A = [\begin{array}{cccc} 0 & 1 & 0 & 0\\ 0.4 & 0 & 0.6 &0\\ 0&0.4&0&0.6\\ 0&0&0.5&0.5 \end{array}] \] 观测概率分布为 \[ B = [\begin{array}{cc} 0.5&0.5\\ 0.3&0.7\\ 0.6&0.4\\ 0.8&0.2 \end{array} ] \]

观测序列生成过程

可以将一个长度为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\)的状态转移概率分布\(\lbrace a_{i_t} a_{i_{t+1} }\rbrace\)产生状态\(i_{t+1}\), \(i_{t+1} = 1,2,...,N\)

(5)令t = t+1;如果t<T,转步(3);否则,终止

以上就是今天的内容,谢谢大家的观看!