隐马尔可夫模型HMM---《统计学习方法》第十章

标注问题

标注问题的输入是一个观测序列,输出是一个标记序列或状态序列。标注问题的目的在于学习一个模型,使它能够对观测序列给出标记序列作为预测。
标注常用的统计学习方法有:隐马尔可夫模型,条件随机场。
举例:给定一个由单词组成的句子,对这个句子中的每一个单词进行词性标注,即对一个单词序列预测其对应的词性标记序列。
隐马尔可夫模型HMM---《统计学习方法》第十章_第1张图片

隐马尔可夫模型

隐马尔可夫的基本概念

隐马尔可夫模型是关于时序的概率模型,描述了一个由隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。
隐马尔可夫模型由初始状态概率向量 π π ,状态转移概率矩阵 A A 和观测概率矩阵 B B 决定。
隐马尔可夫模型是一个生成模型,表示状态序列和观测序列的联合分布,但是状态序列是隐藏的,不可观测的。
两个基本的假设:
1)齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于上一时刻的状态,与其他时刻的状态和观测无关,也与时刻t无关;
2)观测独立性假设,即假设任意时刻的观测只依赖于当前时刻的马尔可夫链的状态,与其他观测与状态无关。
隐马尔可夫的三个基本问题:
1)概率计算问题,给定模型 λ=(A,B,π) λ = ( A , B , π ) 和观测序列 O=(o1,o2,..,ot) O = ( o 1 , o 2 , . . , o t ) ,计算在该模型下观测序列出现的概率;
2)学习问题,给出观测序列 O=(o1,o2,..,ot) O = ( o 1 , o 2 , . . , o t ) ,估计模型参数,使得在该模型下观测序列出现的概率最大,即用极大似然估计的方法估计参数;
3)预测问题,也称为解码问题。给定模型 λ=(A,B,π) λ = ( A , B , π ) 和观测序列 O=(o1,o2,..,ot) O = ( o 1 , o 2 , . . , o t ) ,求对给定的观测序列条件概率P(I|O)最大的状态序列I。

  • 考虑这样一个题目:
    隐马尔可夫模型HMM---《统计学习方法》第十章_第2张图片
    概率计算就是计算在已知模型 λ λ 参数的条件下,计算出现这种观测序列“红红白白红”的概率;
    学习算法就是预测模型参数的算法,当状态序列和观测序列已知时为监督学习,当仅观测序列已知时为非监督学习,用EM算法。
    预测算法就是已知模型参数和观测序列“红红白白红”的条件下,预测最有可能的每次选择哪个盒子的概率。

概率计算算法

对应实例中的问题是:在已知模型 λ λ 参数的条件下,计算出现这种观测序列的概率。
它有三种计算方法:
1.暴力计算,计算出在各种状态序列情况下出现观测序列的概率,然后对概率求和。复杂度极高!
换句话说:即列举出所有可能的每一次选取哪个盒子的情况,然后对这些可能求解。例如每次选取的盒子是(1,1,1),(1,1,2)(1,1,3)(1,2,1)…
2.前向算法递归求解,依次求出时间t情况下状态为i且前边的观测序列为题目所给的概率,对最后一次的计算结果求和。
换句话说:分别计算第一个时刻选择第i和盒子且预测状态为“红”,然后递归计算第二个时刻选择第i个盒子且预测状态为“红”,递归计算第三个时刻选择第i个盒子且预测状态为“白”,…,一直计算到最后一个时刻,然后把最后一个时刻选择不同盒子的概率相加。
3.后向算法递归求解,依次求出时间t情况下状态为i且后边的观测序列为题目所给的概率,对最开始的状态结果和观测结果的乘积求和。
换句话说:分别计算最后一个时刻选择第i个盒子的概率(均为1),递归计算倒数第2个时刻状态为i的条件下倒数第一个观测序列为“红”的概率,…,一直计算到第一个时刻状态为i的情况下后面的观测序列为”红白白红“的概率,最后对第一个状态的可能结果与观测结果的乘积求和。
前向-后向算法是通过递归地计算前向-后向概率可以高效地进行隐马尔可夫模型的概率计算。

学习算法

分为两种,一种是给定了观测序列与状态序列,直接根据极大似然估计法来估计模型参数,另外一种是只给定观测序列,此时需要使用EM法,隐变量是状态序列。
后一种方法利用EM算法在隐马尔可夫模型中具体实现就是Baum-Welch算法,它是一种非监督学习算法。

预测算法

近似算法

在每个时刻t选择在该时刻最有可能出现的状态,从而得到状态序列。
优点是计算简单,缺点是不能保证预测的序列整体上是最有可能的状态序列,因为预测的状态序列可能有实际不发生的部分。

维特比算法

维特比算法应用动态规划高效地求解最优路径,即概率最大的状态序列。
具体地,从时刻t=1开始,递推地计算在时刻t状态为i的各条路径的最大概率,直至得到时刻t=T状态为i的各条路径的最大概率。时刻t=T的最大概率即为最优路径的概率 P P ∗ ,最优路径的终结点也同时得到。之后,为了找出最优路径的各个节点,从终结点开始,从后向前逐步求得结点得到最优路径。

你可能感兴趣的:(机器学习算法)