首先来看一下马尔可夫假设。
马尔可夫链
马尔科夫假设:如果系统在t的时间的状态q t只与其在时间t-1的状态相关,则系统构成离散的一阶马尔科夫链。(马尔可夫过程)
马尔可夫模型主要由 S A Π三元组构成。S代表状态集合,A与时间无关的状态转移概率矩阵,Π代表初始状态概率分布。
HMM 隐马尔科夫模型
HMM 由五元组构成。1、隐藏状态s 2、观察状态o 3、状态概率转移矩阵 A 4、观察概率转移矩阵B 5、初始状态的概率分布。
HMM的三个假设
HMM的特点
HMM的状态是不确定或者不可见的。只有通过观察序列的随机过程才能表现出来。
HMM的解决的两个问题
1、HMM评估问题 求给定一个观察序列的概率值 给定模型中出现观察序列的可能性(概率值)
其中又可以用前向算法和向后算法来计算概率。 利用动态规划使用递归来降低计算复杂度。时间复杂度为O(N^2*T)。 穷举算法的时间复杂度是O(N^T)
2、HMM解码问题 给定A B π 概率 选出最可能的观察序列 通过观察序列找出最大的可能的隐状态序列。
维特比算法 使用递归降低复杂度 时间复杂度为O(N^2*T)
HMM存在的问题
输出独立性假设要求序列数据严格相互独立才能保证推导的正确性,导致其不能考虑上下文特征 。在自然语言处理中,常常需要考虑上下文关系。 解决方案 条件随机场
总结
HMM应用 分词、词性标注。 观察序列一般为词 状态序列一般为与语言单位对应的句法信息,一般为词类。HMM是生成模型
条件随机场 CRF
RNN+CRF
最后来总结一下HMM CRF常见的面试题吧
- BI-LSTM+CRF 为什么使用CRF不使用HMM。 CRF层的作用
- CRF和HMM的区别
- 维特比算法讲一下,公式写一下
- CRF 中的特征模板特征函数什么意思
CRF 写的不错的文章
https://kexue.fm/archives/5542