概率图模型(HMM)

开篇

拖了很久,现在补上概率图的几个模型,陆续补上这部分的内容。概率算是机器学习里面比较抽象和难以理解的模型,它很多时候被应用在自然语言上的一些基本,想是词性标注,命名实体。

概率图模型,知乎上的一个博客,文章里面有不少数学符号有问题,但是整体框架还是很清晰,大家可以扫一下,不要刻意去抠细节。

有向图模型

概率图模型(HMM)

HMM的定义

有向图里面一个经典的模型,隐马尔科模型,序列标注和中文分词的常见模型,当然它还被应用到声音识别。还是先看一下HMM的图,有个感性的认识
概率图模型(HMM)

首先还是稍微提一下马尔科夫模型,这边也算填上我之前挖的坑,HMM是带隐变量的马尔科夫模型。
下面将是我的手写图片+文字描述,希望大家喜欢。

首先讲一下什么是马尔科夫模型,主要就是一个状态转移链,也就是上图中上面的一条状态链(i1->i4),并且每一个状态的产生概率只与前面的一个状态有关,这就是马尔科夫性假设。那么什么是隐马尔科夫模型,其实就如图所示,i状态我们看不到,也就是所谓的隐变量,也是我们的隐状态。那么图中的o又是什么呢,o就是我们能够观察到的状态。

举个简单的例子,我们有n个不同的硬币,但是硬币都只有正反两个面(抛出正面的概率各不相同),我们抛了k次硬币,这k次我们不知道都是那些硬币,也就是我们的隐状态,我们能够观测到的就是k次,每次硬币的正反结果,也就是我们的观测状态。当然n个硬币之间是有一定的转移概率的,比如说,我们第一个抛的是一号硬币,下面可能抛的是n个硬币中的任何一个(假设是均匀分布的),这就是我们的转移概率。如果你还是没有懂的话,请给我留言。

下面看我们隐马尔科夫的两个假设:

概率图模型(HMM)

这边是不是有点熟悉,第一个假设是不是很像我们n元语言模型里面的一元语言模型,其实语言模型里面就是利用了马尔科夫假设。记住上面的两个状态转移公式,它是隐马尔可夫的三要素其中的两个。OK,下面正式介绍一下隐马尔科夫的三要素,我先用通俗的语言稍微描述一下,我描述的主要是观测序列的生成过程,统计学习方法上有算法形式,大家可以参考一下,描述完我们再上我们的数学定义。

还是硬币的例子,我们要重现一个隐马尔可夫模型,首先要做的就是从n个硬币中选择第一个硬币。怎么选择,这是有一定的概率分布的(第一个要素),也就是我们的pi(打不出那个符号,将就一下),我们这边例子假设的是均匀分布的,每个硬币被选中的概率都是1/n,然后就是隐藏状态的转移概率,我们这边依旧是一个均匀分布(第二个要素),我们每获得一个隐藏状态(也就是我们的硬币),我们就要抛掷,我们假设是每一个硬币抛出正面的概率都不一样的,这样每一个硬币又有自己的概率分布(第三个要素),抛出的正反面的结果就是我们观测到的序列。

ok,下面我们看看它的数学表现形式:
概率图模型(HMM)

概率图模型(HMM)

李老师这里面描述的应该是非常清楚的。

隐马尔科夫的三个基本问题

这边牵扯到几个算法,有些可能比较麻烦,我会先放上简单的介绍,有机会专门放上单独的介绍博客。

概率图模型(HMM)

我们先看一下第一个问题的基本应用,声音识别的应用,我们有一个声音识别的模型,我们观测到的结果就是我们识别模型下最大概率的那个o,我们可以计算所有候选的观测结果,计算每一个的概率,选择概率最大的那个作为我们识别的结果。

第二个基本问题就是我们有了识别的结果(观测序列),我们要计算这个识别模型。这个也是我们最麻烦的一种问题,传统的解法就是EM算法。

第三个问题就是我们经典的标注问题,大家想一想词性标注的应用就知道了,词性就是我们的隐状态,我们看到的自然语言就是我们的观测序列。

第一个基本问题

这边基本就是列举出全部的观测序列然后计算概率(复杂度很高)
概率图模型(HMM)

先放一张关于前向和后向算法,这边符号有点不一样,大家应该能够理解
概率图模型(HMM)

前向算法

前向算法是联合概率
概率图模型(HMM)
概率图模型(HMM)
概率图模型(HMM)

后向算法

后向算法是条件概率
概率图模型(HMM)
概率图模型(HMM)
概率图模型(HMM)

补充一些概率

概率图模型(HMM)

概率图模型(HMM)

概率图模型(HMM)

概率图模型(HMM)

第二个基本问题

关于EM算法我会另行再做补充

第三个基本问题

维特比算法

HMM的缺陷

正如宏毅大佬讲的,HMM会产生一定的脑补,这也是生成模型的特色,当数据量比较小的时候,那么它的效果就会比较好,但是数据量比较大的时候,效果优势就会慢慢消失

先看一个例子,说明一下它的脑补状况
概率图模型(HMM)

它计算出来我们训练集中没有的案例。,绿色的那个。为什么会出现这种状况呢,隐状态的转移概率和隐状态转观测值概率是假设独立的。那么怎么改善这种状况呢,一般是使用CRF。