CRF 将输出层面的关联分离了出来
Softmax将序列标注看成是 n 个 k 分类问题,CRF将序列标注看成是 1 个 k^n 分类问题
打分函数取softmax就得到概率
计算归一化因子(所有路径的总概率),预测Viterbi, 都是用的动态规划。
讲解Tensorflow里的LSTM+CRF实现:
https://blog.csdn.net/u011724402/article/details/82078328
LSTM的softmax打分p(依赖于LSTM的网络参数), 和label转移概率矩阵A, 是联合在一起训练的;训练目标函数就是最大化p(label序列y | LSTM最后一层输出序列x)
外层softmax的分母,是必须要计算的。
判别式模型和生成式模型-------------------------------------------------------
1. 判别式模型
那么A批模型对应了判别式模型。根据上面的两句话的区别,可以知道判别模型的特征了,所以有句话说:判别模型是直接对 建模,就是说,直接根据X特征来对Y建模训练。
具体地,我的训练过程是确定构件 模型里面“复杂映射关系”中的参数,完了再去inference一批新的sample。
所以判别式模型的特征总结如下:
- 对 建模
- 对所有的样本只构建一个模型,确认总体判别边界
- 观测到输入什么特征,就预测最可能的label
- 另外,判别式的优点是:对数据量要求没生成式的严格,速度也会快,小数据量下准确率也会好些。
2. 生成式模型
同样,B批模型对应了生成式模型。并且需要注意的是,在模型训练中,我学习到的是X与Y的联合模型 ,也就是说,我在训练阶段是只对 建模,我需要确定维护这个联合概率分布的所有的信息参数。完了之后在inference再对新的sample计算 ,导出 ,但这已经不属于建模阶段了。
结合NB过一遍生成式模型的工作流程。学习阶段,建模: (当然,NB具体流程去隔壁参考),然后 。
另外,LDA也是这样,只是他更过分,需要确定很多个概率分布,而且建模抽样都蛮复杂的。
所以生成式总结下有如下特点:
- 对 建模
- 这里我们主要讲分类问题,所以是要对每个label( )都需要建模,最终选择最优概率的label为结果,所以没有什么判别边界。(对于序列标注问题,那只需要构件一个model)
- 中间生成联合分布,并可生成采样数据。
- 生成式模型的优点在于,所包含的信息非常齐全,我称之为“上帝信息”,所以不仅可以用来输入label,还可以干其他的事情。生成式模型关注结果是如何产生的。但是生成式模型需要非常充足的数据量以保证采样到了数据本来的面目,所以速度相比之下,慢。
条件随机场(CRF)和隐马尔科夫模型(HMM)最大区别在哪里?
1.特征函数的选择: 特征函数的选取直接关系模型的性能。
2.参数估计: 从已经标注好的训练数据集学习条件随机场模型的参数,即各特征函数的权重向量λ。
3.模型推断: 在给定条件随机场模型参数λ下,预测出最可能的状态序列。
CRF介绍
如何轻松愉快地理解条件随机场(CRF)?
特征函数可以和label有关,也可以和输入有关。