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

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

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

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

HMM模型结构图

(NLP学习)(九)HMM(Hidden Markov Model)_第1张图片

HMM模型五元组

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

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

HMM三个假设

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

HMM三个问题及解决方法

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

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

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

你可能感兴趣的:(NLP)