隐马尔科夫模型定义算法
隐马尔可夫模型是关于时序的几率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。markdown
隐藏的马尔可夫链随机生成的状态的序列,称为状态序列(state sequence);每一个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列(observation sequence)。ide
序列的每个位置又能够看做是一个时刻。3d
下面咱们引入一些符号来表示这些定义:blog
设Q是全部可能的状态的集合,V是全部可能的观测的集合。it
其中,N是可能的状态数,M是可能的观测数。io
状态q是不可见的,观测v是可见的。class
应用到词性标注中,v表明词语,是能够观察到的。q表明咱们要预测的词性(一个词可能对应多个词性)是隐含状态。lambda
应用到分词中,v表明词语,是能够观察的。q表明咱们的标签(B,E这些标签,表明一个词语的开始,或者中间等等)方法
应用到命名实体识别中,v表明词语,是能够观察的。q表明咱们的标签(标签表明着地点词,时间词这些)
上面提到的方法,有兴趣的同窗能够查阅相应资料。
I是长度为T的状态序列,O是对应的观测序列。
咱们能够看作是给定了一个词(O)+词性(I)的训练集。或者一个词(O)+分词标签(I)的训练集....有了训练数据,那么再加上训练算法则不少问题也就能够解决了,问题后面慢慢道来~
咱们继续定义A为状态转移几率矩阵:
其中,
是在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的几率。
B是观测几率矩阵:
其中,
是在时刻t处于状态qj的条件下生成观测vk的几率(也就是所谓的“发射几率”)。
因此咱们在其它资料中,常见到的生成几率与发射几率实际上是一个概念。
π是初始状态几率向量:
其中,
隐马尔可夫模型由初始状态几率向量π、状态转移几率矩阵A和观测几率矩阵B决定。π和A决定状态序列,B决定观测序列。所以,隐马尔可夫模型能够用三元符号表示,即
\lambda =(A,B,\Pi )称为隐马尔可夫模型的三要素。
若是加上一个具体的状态集合Q和观测序列V,构成了HMM的五元组,这也是隐马尔科夫模型的全部组成部分。
下面介绍一下隐马尔可夫链的三个基本问题:一、已知模型求观测序列出现的几率二、已知观测序列,求模型的参数三、已知观测序列求可能的状态序列