手推隐马尔科夫模型HMM(Hidden Markov Model)01-背景介绍

目录

1.写在前面

2.概率图模型

3.HMM模型

3.1 HMM模型的5元组

3.2 HMM模型中的两个假设

3.3 HMM模型中的三个问题


1.写在前面

        这篇文章带大家看一个比较有意思的模型-HMM,扩展起来就是Hidden Markov Model。HMM模型在深度学习流行之前,一直活跃在NLP领域,对该领域发展起到了非常大的作用,HMM可以处理自然语言处理和语音识别等领域。我们会在写HMM模型的过程中,将其所涉及到的知识全部串联起来。

        当然了,在讲解具体算法之前,我们需要对背景知识做一个小小的扩充。机器学习分为频率派和贝叶斯派频率派后期逐渐发展成为了统计机器学习,其核心问题就是优化问题(定义loss fuction),我们处理这类问题一般包含三个步骤:1)确定model;2)确定策略:loss fuction; 3)算法求解最优化问题:梯度下降、随机梯度下降、牛顿法等;推荐李航老师统计学习方法,很多章节都是在讲函数优化的问题。贝叶斯派逐渐发展出来一个体系是概率图模型,主要是涉及到推断,求后验概率,进而引申为一个积分问题,我们可以采用数值积分的方法MCMC

2.概率图模型

        HMM本质上属于概率图模型,概率图模型根据有向和无向可以分为贝叶斯网络和马尔科夫随机场(也可以叫马尔科夫网络)。对于概率图模型加上时间序列的话,叫做动态模型。动态模型中,样本与样本之间不是独立同分布的关系,而且往往又是混合的。横向是时间序列,纵向混合高斯。

        动态模型我们一般表示下面图中形状,分为两个部分,上面圆圈表示系统状态,也叫隐变量(隐含状态),下面长方形表示观测变量(可见状态)。根据系统状态之间的关系,如果state是离散的,我们称为HMM;如果state是连续的,可以分为线性模型(代表是kalman filter)和非线性模型(particle filter)。也就是说在HMM中系统状态(隐变量)是服从离散分布的。

3.HMM模型

      隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。HMM模型大概长像如下,偷的52NLP的图,这个模型包含了一个底层隐藏的随时间改变的马尔科夫过程,通常是一阶的,对应下图就是天气之间的状态转移概率关系。以及一个与隐藏状态某种程度相关的可观察到的状态集合,对应就是天气如何影响苔藓,即我们的术语叫做发射概率或者混淆概率

这里写图片描述

3.1 HMM模型的5元组

        每个模型都有自己相关的概念,弄清算法之前我们先来看看这个模型的基本概念,5元组(S,K,π,A,B):以上分别对应了HMM中的5个重要概念,其中(π,A,B)是HMM的三要素。

  •         S:隐藏状态的集合(Sun Cloud Rain),N为隐状态个数 N=3
  •         K : 输出状态或者说观测状态的集合(Soggy Damp Dryish Dry),M为观测状态个数M=4
  •         π : 对应隐藏状态的初始化概率 (sun : 0.5 cloud : 0.3 rain : 0.2)
  •         A : 隐藏状态的状态转移概率,是一个N*N的概率矩阵
  •         B : 隐藏状态到观测状态的混淆矩阵,是一个N*M的发射概率矩阵

        另外符号体系中会有对于每个序列的状态序列和观测序列,如一周的观测和状态,定义下:O : 某特定观测序列,I表示状态变量(下表格用的X)。

这里写图片描述

3.2 HMM模型中的两个假设

        HMM是有两个基本假设的,一个是齐次马尔科夫性假设,另一个是观测独立性假设

        齐次马尔科夫性假设指的是,假设隐马尔可夫链在任意时刻t的状态只依赖前一个时刻的状态,与其他状态和观测变量是没有任何关系的。观测独立性假设指的是,在任意时刻的观测只依赖于该时刻的状态,与其他时刻的状态和观测没有任何关系。只有在这两个条件下,我们才能真正的去求解。

3.3 HMM模型中的三个问题

        HMM模型主要是用来解决三类问题:Evaluation问题、Learning问题、Decoding问题。其中Decoding问题是重点关系的地方。

  •         Evaluation估问题:已知模型参数 λ= (A, B, π),计算某个观测序列发生的概率,即求P(O|λ),即概率计算问题,常用算法是前向后向算法
  •         Learning学习问题:如何调整模型参数 λ=(π, A, B),使得P(O|λ)最大?  常用算法:EM算法;
  •         Decoding解码问题:给出观测序列O和模型μ,怎样选择一个隐藏状态序列S(s1,s2,...st+1),能最好的解释观测序列O,可以细化分为预测问题和滤波问题;常用算法:维特比算法

猜你喜欢

转载自blog.csdn.net/Suyebiubiu/article/details/108180781