BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #10643同步于 2013/6/1
ML_DM机器人发帖

【分类问题中的判别模型和生成模型以及它们之间的那些事】

chentingpc
2013/6/1镜像同步0 回复
统计机器学习中的分类问题是学习在给定观察X的情况下的y的概率分布,从而输出一个最有可能的y。 因此,判别模型就直接给P(Y|X)建模,一般可以用exponential family来建模(如LR/CRF)。 而生成模型是对P(X,Y)建模,由于大多数情况下对X做积分难度太大(穷举所有可能的X来作为归一化因子),所以生成模型一般不会直接对P(X,Y)用exponential family,而是用bayes公式进行转换,有两种转换方式: P(X,Y) = P(X)*P(Y|X),由于分类问题中X是固定的,可以忽略P(X),于是给P(Y|X)就不是生成模型而是判别模型了。 P(X,Y) = P(Y)*P(X|Y),这里P(Y)可以直接统计出来,但是P(X|Y)就很难办了,也是没办法直接上exponential family的(要对X积分),于是有两种思路,一种是假设X之间是独立的,这就是naive bayes(或sequential taging中的HMM,HMM不仅假设X之间相互独立,也假设Y的转移是条件独立的,即一阶隐马的yi只和yi-1有关),另一种是对P(X|Y)进行建模,假设服从什么高斯分布啊、狄利克雷分布啊。一般来说,独立性假设会损害准确度,而对P(X|Y)做的假设存在比较难选择、不好泛化(针对特定模型与特定问题)等问题。 所以,在做分类问题的时候,就可以看出来为什么生成模型比较吃力呢,最重要的原因之一就是没办法去利用各种自定义的feature,因为往往生成过程太“僵硬”了(要么独立性、要么做特定的模型假设)。而对于判别模型,除了exponential family可以很好融合各种自定义特征(而不去做太强的观察数据以及状态转移之间的假设),也可以用很多其他的假设空间(比如决策树、SVM等)。当然,在分类问题上,生成模型也还是有其优点,比如收敛速度快,对于小数据可能比判别模型更准确等,比较硬的一点是能够很好结合隐变量。另外,生成模型一般也更符合人类对事物的认识。 仅是抛砖引玉,可能有不少错误或不全的地方还需要改进,【欢迎大家参与生成模型与判别模型的讨论】。
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。