隐马尔可夫模型(HMM)

本文不是HMM的详细推导文章,是对HMM的一个小总结。详细的推导可参考李航统计学习方法第10章。本文目录如下:

目录

隐马尔可夫模型简介

HMM基本假设

HMM三要素(也即参数)

HMM基本问题

概率计算问题

学习问题

预测问题


隐马尔可夫模型简介

HMM可用于标注问题。隐马尔可夫模型是关于时序的概率模型,由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测从而产生观测随机序列。隐藏的马尔可夫链随机生成的状态的序列,称为状态序列;每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列。序列的每个位置可以看作是一个时刻。

隐马尔可夫模型两个特点:1、引入了隐状态;2、是时序的。

HMM基本假设

1、齐次马尔可夫性假设:即假设隐藏的马尔可夫链在任意时刻 t 的状态只依赖于其前一时刻的状态,与其他时刻的状态和观测无关。

2、观测独立性假设:即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他时刻的状态和观测无关。

HMM三要素(也即参数)

1、初始状态概率向量 \pi

2、状态转移矩阵 A

3、观测概率矩阵 B

HMM基本问题

1、概率计算问题:在参数 \lambda =(\pi,A,B) 给定的情况下,计算观测序列出现的概率。假设观测序列为 O ,即计算 P(O|\lambda ) 。

2、学习问题:已知观测序列O或者已知观测序列O和状态序列 I,求参数 (\pi,A,B),(利用极大似然估计的方法估计参数)。

3、预测问题:给定模型参数(\pi,A,B),给定一个观测序列 O (未必是用在训练集里的观测序列),求最有可能对应的状态序列。

其中 1概率计算问题服务于 2学习问题 和 3预测问题。

概率计算问题

计算P(O|\lambda ),有两种方法,一种是直接计算法,复杂度高;另外一种是递推方法,复杂度低,包括前向算法和后向算法。

1、直接计算法:先求 状态序列和观测序列的联合概率 P(O,I|\lambda ),再求边缘概率得到 P(O|\lambda )。计算复杂度 O(TN^{T})

2-1、前向算法:从t=1时刻求到 t=T 时刻,最终求得完整序列概率。计算复杂度  O(N^{2}T)

2-2、后向算法:从t=T时刻求到 t=1 时刻,最终求得完整序列概率。计算复杂度 O(N^{2}T)

前向和后向计算复杂度低,利用前向算法和后向算法两者,还可以方便求得另外一些概率用于学习问题和预测问题。

学习问题

有两种方法。

1、训练数据是观测序列和对应的状态序列:极大似然估计,即频数统计。

2、训练数据只有观测序列:极大似然估计,即EM算法。EM算法可参考EM(期望最大)算法推导以及实例计算

预测问题

有两种方法。

1、近似算法:预测出来的状态序列中每一时刻的状态是该时刻所有状态中最优的。不保证预测出来的状态序列整体最优。该方法得到的状态序列中有可能存在转移概率为 0 的相邻状态。

2、维特比算法:预测出来的整条状态序列最优。保证预测出来的状态序列整体最优。

你可能感兴趣的:(自然语言处理,机器学习,人工智能,概率论,机器学习,语音识别,人工智能,自然语言处理)