背景
最近学习NLP总是会遇到HMM与CRF模型,一直都是一知半解,这篇博客用户整理一下两个模型的推导与学习笔记。
下图为概率图模型 贝叶斯 LR HMM CRF之间的关系,理清楚模型之间的关系有助于我们理解。
下文也会对在介绍模型同时比各个模型之间的关系。
HMM 隐马尔可夫模型
解决什么问题?
使用HMM模型时我们的问题一般有这两个特征:
- 我们的问题是基于序列的,比如时间序列,或者状态序列。
- 我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。
基本概念
- HMM是一个关于时序的概率模型,可以用于根据一些已知的来推断未知的东西;
- 马尔可夫链是一个随机过程模型,服从马尔可夫性质:无记忆性,某一时刻的状态只受前一个时刻的影响;
- 状态序列是由马尔可夫链随机生成的,是隐藏的,不可观测的;每个状态又有其对应的观测结果,这些观测结果根据时序排序后即为观测序列;也可以说观测序列长度跟时刻长度是一致的;
HMM基本假设:
- 假设隐藏的马尔可夫链在任意时刻的状态只依赖于前一个时刻(t−1时)的状态,与其他时刻的状态及观测无关,也与时刻t无关;
- 假设任意时刻的观测只依赖于该时刻的马尔可夫链状态,与其它观测及状态无关;
因此组成HMM有两个空间(状态空间Q和观测空间V),三组参数(状态转移矩阵A,观测概率矩阵以及状态初始概率分布π),有了这些参数,一个HMM就被确定了.
HMM三个基本问题:
- 评估观测序列的概率,在给定HMM模型λ=(A,B,π)和观测序列O下,计算模型λ下观测序列的出现概率P(O|λ),用到的是
前向-后向算法
- 预测(解码)问题,在给定HMM模型λ=(A,B,π)和观测序列O下,求解观测序列的条件概率最大的条件下,最可能出现的状态序列,用到的是
维特比算法
- 模型参数学习问题,在给定观测序列O下,估计模型λ的参数,使得该模型下观测序列的条件概率P(O|λ)最大,用到的是EM算法的
鲍姆-韦尔奇算法
具体解法可以参考统计学习方法
CRF 条件随机场
General CRF
条件随机场(Conditional random field,CRF)是条件概率分布模型 P(Y|X) ,表示的是给定一组输入随机变量 X 的条件下另一组输出随机变量 Y 的马尔可夫随机场,也就是说 CRF 的特点是假设输出随机变量构成马尔可夫随机场。条件随机场可被看作是最大熵马尔可夫模型在标注问题上的推广。
如果随机变量 Y 构成一个由无向图 G=(V, E) 表示的马尔可夫随机场,对任意节点