
HMM VS CRF
同:
① 都是图概率模型
② 都可用于序列标注这类问题上
异:
- HMM是生成模型,CRF是判别模型
- HMM是概率有向图,CRF是概率无向图
- HMM模型中存在两个假设:①:隐藏状态满足马尔科夫链;②:观测独立性假设。但实际上序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。

HMM的观测独立性假设使得HMM的输出之间相互独立,在序列标注问题中不能考虑词语与词语间的上下文特征。但是CRF引入自定义状态特征函数,不仅可以表达观测之间的依赖,还可表示当前观测与前后多个状态之间的复杂依赖。
序列标注训练HMM根本不用EM算法(放大加粗)
搞自然语言处理的同学接触的多是Y是可见量的HMM,因为训练数据给出了观测状态,便没有了hidden的变量,没有了hidden变量的hmm就不需要EM来训练。只是使用极大似然估计即可。
下面看看大佬们的一些观点(再次复习感觉现在自己算是入门机器学习了)
我们可以看到,CRF比HMM更强大, 更广泛
CRF可以定义更广泛的特征函数:HMM受限于相邻位置的状态转换(二元转换)和发射概率函数,迫使每个单词仅依赖于当前标签,并且每个标签仅依赖于前一个标签。而CRF可以使用更多样的全局特征。例如,如果句子的结尾包含问号,则可以给给CRF模型增加一个特征函数,记录此时将句子的第一个单词标记为VERB的概率。这使得CRF可以使用长距离依赖的特征。
CRF可以有任意的权重值:HMM的概率值必须满足特定的约束,, 而CRF的权重值是不受限制的。
CRF既具有判别式模型的优点,又考虑到长距离上下文标记间的转移概率,以序列化形式进行全局参数优化和解码的特点,解决了其他判别式模型(如MEMM)难以避免的标记偏见问题。
上面引用来自
条件随机场(CRF)和隐马尔科夫模型(HMM)最大区别在哪里?CRF的全局最优体现在哪里?www.zhihu.com
HMM -> MEMM: HMM模型中存在两个假设:一是输出观察值之间严格独立,二是状态的转移过程中当前状态只与前一状态有关。但实际上序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。MEMM解决了HMM输出独立性假设的问题。因为HMM只限定在了观测与状态之间的依赖,而MEMM引入自定义特征函数,不仅可以表达观测之间的依赖,还可表示当前观测与前后多个状态之间的复杂依赖。
MEMM -> CRF:CRF不仅解决了HMM输出独立性假设的问题,还解决了MEMM的标注偏置问题,MEMM容易陷入局部最优是因为只在局部做归一化,而CRF统计了全局概率,在做归一化时考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置的问题。使得序列标注的解码变得最优解。
HMM、MEMM属于有向图,所以考虑了x与y的影响,但没讲x当做整体考虑进去(这点问题应该只有HMM)。CRF属于无向图,没有这种依赖性,克服此问题。
上面引用来自:
如何用简单易懂的例子解释条件随机场(CRF)模型?它和HMM有什么区别?www.zhihu.com
上面这些原因也许是HMM在实体识别中用的很少的原因吧
生成模型VS判别模型
生成模型就是去学习训练数据的分布,即学习联合概率P(X,Y)。主要是对数据分布建模
判别模型就是直接学习特征与label之间的映射关系
生成式模型的优点是:
- 实际上带的信息要比判别模型丰富, 研究单类问题比判别模型灵活性强
- 能更充分的利用先验知识
- 模型可以通过增量学习得到 (实验过)
缺点也很明显:
- 学习过程比较复杂;
- 在目标分类问题中准确度不高
而判别式模型的优点是:
- 分类边界更灵活,比生成模型实验效果好
- 能清晰的分辨出多类或某一类与其他类之间的差异特征
- 适用于较多类别的识别
缺点是:
- 不能反映训练数据本身的特性。
- 能力有限,可以分类, 但无法把整个场景描述出来。
觉得有帮助的看官点个赞,别只顾着收藏呀