这个题目遇到两次
自然语言处理中,经常要处理序列标注问题(分词、词性标注、组快分析等),为给定的观察序列标注标记序列。
令o和s分别代表观察序列和标记序列,
根据贝叶斯公式,
1 生成模型和判别模型的定义
对o和s进行统计建模,通常有两种方式:
(1)生成模型
构建o和s的联合分布p(s,o) = p(s) *p(o|s)
(2)判别模型
构建o和s的条件分布p(s|o)
2 判别模型和生成模型的对比
(1)训练时,二者优化准则不同
生成模型优化训练数据的联合分布概率;
判别模型优化训练数据的条件分布概率,判别模型与序列标记问题有较好的对应性。
(2)对于观察序列的处理不同
生成模型中,观察序列作为模型的一部分;
判别模型中,观察序列只作为条件,因此可以针对观察序列设计灵活的特征。
(3)训练复杂度不同
判别模型训练复杂度较高。需要各种梯度下降,优化等等求解参数
生成式模型感觉只要统计共现频率(就像朴素贝叶斯)
(4)是否支持无指导训练
生成模型支持无指导训练。
3 优缺点
判别式:
- 主要特点:
寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。
- 优点:
分类边界更灵活,比使用纯概率方法或生产模型得到的更高级。
能清晰的分辨出多类或某一类与其他类之间的差异特征
在聚类、viewpoint changes, partial occlusion and scale variations中的效果较好
适用于较多类别的识别
生成式:
优点:可以增量式训练
4 主要模型
判别式:
logistic regression