文章目录
有些先决条件没有理解的很透彻导致了后续很多概念反反复复搞不清楚。
自己之前的文章:是什么机器学习中生成模型/判别模型?
1. 生成模型和判别模型
一句话粗略总结:
面对分类问题,
生成模型学习同类之间的相似点(并不关心分类边界),
判别模型学习不同类别之间的差别(寻找不同类别间的最优分类面)。
1.1 概念
-
生成模型:使用的生成方法,即由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。
-
判别模型:由数据学习联合概率密度分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X)。
(注意:求P(X,Y)这个过程中还得先求出P(X)——训练数据的概率分布,而数据样本非常多的情况下得到的P(X)才能很好的描述你数据真正的分布。)
1.2 特点/区别
- 生成方法学习联合概率密度分布P(X,Y),所以就可以从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪。
- 判别方法直接学习的是决策函数Y=f(X)或者条件概率分布P(Y|X)。不能反映训练数据本身的特性。但它寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。
1.3 联系
由生成模型可以得到判别模型,
但由判别模型得不到生成模型。
2. 补充
2.1 决策函数Y=f(X)和条件概率分布P(Y|X)的关系
- 决策函数 Y= f(X) :输入一个 X,他就输出一个 Y,这个Y与一个阈值比较,根据比较结果判定X属于哪个类别。
- 条件概率分布 P(Y|X):输入一个 X,它通过比较它属于所有类的概率,然后输出概率最大的那个作为该X对应的类别。
上面两个模型都可以实现对给定的输入X预测相应的输出Y的功能。
重点是,它们在本质上其实是一个意思:
1.实际上通过条件概率分布P(Y|X)进行预测也是隐含着表达成决策函数Y=f(X)的形式。
例如也是两类w1和w2,那么我们求得了P(w1|X)和P(w2|X),那么实际上判别函数就可以表示为Y= P(w1|X)/P(w2|X),如果Y大于1或者某个阈值,那么X就属于类w1,如果小于阈值就属于类w2。
2.决策函数Y=f(X)也是隐含着使用P(Y|X)。因为一般决策函数Y=f(X)是通过学习算法使你的预测和训练数据之间的误差平方最小化,而贝叶斯告诉我们,虽然它没有显式的运用贝叶斯或者以某种形式计算概率,但它实际上也是在隐含的输出极大似然假设(MAP假设)。也就是说学习器的任务是在所有假设模型有相等的先验概率条件下,输出极大似然假设。
所以,分类器的设计就是在给定训练数据的基础上估计其概率模型P(Y|X)。
2.2 判别模型的产生原因
问题是,一般来说,概率模型是比较难估计的。所以,产生了不依赖概率模型的方法:判别方法。比如,能够直接求出判别函数的SVM 等,以及不依赖设计分类器,只依赖分类原则的KNN。
给一堆数给你,特别是数不多的时候,你一般很难找到这些数满足什么规律吧。那能否不依赖概率模型直接设计分类器呢?事实上,分类器就是一个决策函数(或决策面),如果能够从要解决的问题和训练样本出发直接求出判别函数,就不用估计概率模型了,这就是决策函数Y=f(X)的伟大使命了。例如支持向量机,我已经知道它的决策函数(分类面)是线性的了,也就是可以表示成Y=f(X)=WX+b的形式,那么我们通过训练样本来学习得到W和b的值就可以得到Y=f(X)了。
还有一种更直接的分类方法,它不用事先设计分类器,而是只确定分类原则,根据已知样本(训练样本)直接对未知样本进行分类。包括近邻法,它不会在进行具体的预测之前求出概率模型P(Y|X)或者决策函数Y=f(X),而是在真正预测的时候,将X与训练数据的各类的Xi比较,和哪些比较相似,就判断它X也属于Xi对应的类。
3. 更多思考(待完善)
理想状态下:期望风险、联合概率
经验状态下:经验风险、关于经验的联合概率
实际状态下:结构风险
理想状态 | 经验状态 | 解决办法 |
---|---|---|
所有样本 | 基于观测样本,似然降解 | |
正态分布 | ||
生成方法 | 判别方法 | |
期望风险 | 经验风险 | 结构风险 |
联合概率 | 经验下的联合概率 |
| | | |
参考: