Advertisement

(NLP学习)(九)HMM(Hidden Markov Model)

阅读量:

隐马尔可夫模型(Hiden Markov Model, HMM)

隐马尔可夫模型是马尔可夫链的一种,它的状态不能直接观察到,但能通过观测向量序列观察到,每个观测向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一个具有相应概率密度分布的状态序列产生。所以,隐马尔可夫模型是一个双重随机过程----具有一定状态数的隐马尔可夫链和显示随机函数集。自20世纪80年代以来,HMM被应用于语音识别,取得重大成功。到了90年代,HMM还被引入计算机文字识别和移动通信核心技术“多用户的检测”。HMM在生物信息科学、故障诊断等领域也开始得到应用。摘自百度百科。

HMM是一个时序概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。应用非常广泛,特别是在自然语言处理,语音识别等等

HMM模型结构图

在这里插入图片描述

HMM模型五元组

HMM模型可以用五元组(O, S, A, B, π)表示。其中

O: {o_{0}, o_{1}, ..., o_{n}} 表示观测系列,是系统的外在可观测变量。
S: {s_{0}, s_{1}, ..., s_{n}} 表示隐状态序列,是导致系统外在表现变化的内因。
A: {a_{ij} = p(s_{j} | s_{i})} 表示状态转移概率。
B: {b_{ij} = p(o_{j} | s_{i})} 表示输出概率,又称发射概率
π: {π_{0}, π_{1}, ..., π_{m}} 表示初始状态概率。

HMM三个假设

  1. 当前观测值只由当前隐藏状态决定
  2. 当前隐藏状态由前一个隐藏状态决定
  3. 隐藏状态之间转移概率不随时间改变

HMM三个问题及解决方法

评估问题: 前向算法
即给定观测序列 O=O_{1}O_{2}…O_{t}和模型参数λ=(A,B,π),怎样有效计算这一观测序列出现的概率P(O|λ)

预测问题 (也称解码问题):Viterbi算法
即给定观测序列 O=O_{1}O_{2}…O_{t}和模型参数λ=(A,B,π),怎样寻找满足这种观察序列意义上最优的隐含状态序列S
例如:给一段声音信息,推出说了哪些单词

学习问题: Baum-Welch算法(前向+后向算法)+EM算法
即HMM的模型参数λ=(A,B,π)未知,如何求出这3个参数以使观测序列O=O_{1}O_{2}…O_{t}的概率尽可能的大,可以使用极大似然估计参数。

全部评论 (0)

还没有任何评论哟~