隐马尔可夫模型python_隐马尔可夫模型HMM及Python实现

本文深入浅出地介绍了隐马尔可夫模型(HMM),包括定义、观测序列生成过程、三个基本问题及其解决方案,并提供Python代码实现。HMM在词性标注和中文分词等自然语言处理任务中有广泛应用。
摘要由CSDN通过智能技术生成

286fcbbae47a0025fa9e195cfda76304.png

隐马尔可夫模型差不多是学习中遇到的最难的模型了,本节通过对《统计学习方法》进行学习并结合网上笔记,用Python代码实现了隐马模型观测序列的生成、前向后向算法、Baum-Welch无监督训练、维特比算法。比较清晰的了解了隐马尔可夫模型,其实在实际运用中我们只需要调用库就一行代码解决问题。

在调用分词函数时就采用的隐马尔可夫模型HMM原理来进行切词。

134186710_1_20180527113242207

具体原理解释介绍如下:

1 隐马尔可夫模型定义

隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,称为状态序列(state sequence);每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列(observation sequence)。序列的每一个位置又可以看作是一个时刻。

什么叫隐马尔科夫链呢?简单说来,就是把时间线看做一条链,每个节点只取决于前N个节点。就好比你打开朋友圈通过你朋友的最近几条状态就可以判断他接下来要干嘛。

接下来引入一些符号来表述定义:

设Q是所有可能的状态的集合,V是所有可能的观测的集合。

134186710_2_20180527113242285

其中,N是可能的状态数,M是可能的观测数。

状态q不可见,观测v可见。应用到词性标注系统,词就是v,词性就是q。

I是长度为T的状态序列,O是对应的观测序列。

134186710_3_20180527113242332

这可以理解为相当于给定了一个词(O)+词性(I)的训练集或者说是中文分词系统里的词典。

定义A为状态转移概率矩阵:

134186710_4_20180527113242363

其中,

134186710_5_20180527113242394

是在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的概率。

这实际在表述一个一阶的HMM,所作的假设是每个状态只跟前一个状态有关。

B是观测概率矩阵:

134186710_6_20180527113242441

其中,

134186710_7_20180527113242472

是在时刻t处于状态qj的条件下生成观测vk的概率。

π是初始状态概率向量:

134186710_8_20180527113242503

其中,

134186710_9_20180527113242535

是时刻t=1处于状态qj的概率。

隐马尔可夫模型由初始状态概率向量π、状态转移概率矩阵A和观测概率矩阵B决定。π和A决定状态序列,B决定观测序列。因此,隐马尔可夫模型可以用三元符号表示,即

134186710_10_20180527113242582

括号里的三个变量称为隐马尔可夫模型的三要素。加上一个具体的状态集合Q和观测序列V,则构成了HMM的五元组。

状态转移概率矩阵A与初始状态概率向量π确定了隐藏的马尔可夫链,生成不可观测的状态序列。观测概率矩阵B确定了如何从状态生成观测,与状态序列综合确定了如何产生观测序列。

从定义可知,隐马尔可夫模型作了两个基本假设:

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

134186710_11_20180527113242597

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

134186710_12_20180527113242628

2 观测序列的生成过程

根据隐马尔可夫模型定义,将一个长度为T的观测序列O的生成过程描述如下:

观测序列的生成算法:

输入:隐马尔可夫模型

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值