生成模型(Generative Model)和 判别模型(Discriminative Model)
引入
监督学习的任务就是学习一个模型(或者得到一个目标函数),应用这一模型,对给定的输入预测相应的输出。这一模型的一般形式为一个决策函数Y=f(X),或者条件概率分布P(Y|X)。
监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach)。所学到的模型分别为生成模型(generative model)和判别模型(discriminative model)。
决策函数和条件概率分布
决策函数Y=f(X)
决策函数Y=f(X):你输入一个X,它就输出一个Y,这个Y与一个阈值比较,根据比较结果判定X属于哪个类别。例如两类(w1和w2)分类问题,如果Y大于阈值,X就属于类w1,如果小于阈值就属于类w2。这样就得到了该X对应的类别了。
条件概率分布P(Y|X)
你输入一个X,它通过比较它属于所有类的概率,然后输出概率最大的那个作为该X对应的类别。例如:如果P(w1|X)大于P(w2|X),那么我们就认为X是属于w1类的。
小结
两个模型都可以实现对给定的输入X预测相应的输出Y的功能。实际上通过条件概率分布P(Y|X)进行预测也是隐含着表达成决策函数Y=f(X)的形式的。
而同样,很神奇的一件事是,实际上决策函数Y=f(X)也是隐含着使用P(Y|X)的。因为一般决策函数Y=f(X)是通过学习算法使你的预测和训练数据之间的误差平方最小化,而贝叶斯告诉我们,虽然它没有显式的运用贝叶斯或者以某种形式计算概率,但它实际上也是在隐含的输出极大似然假设(MAP假设)。也就是说学习器的任务是在所有假设模型有相等的先验概率条件下,输出极大似然假设。
生成方法和生成模型
生成模型:无穷样本==》概率密度模型 = 产生模型==》预测
生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)=P(X,Y)/P(X)作为预测的模型。这样的方法之所以成为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。用于随机生成的观察值建模,特别是在给定某些隐藏参数情况下。典型的生成模型有:朴素贝叶斯法、马尔科夫模型、高斯混合模型。这种方法一般建立在统计学和Bayes理论的基础之上。
生成方法的特点
- 从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度;
- 生成方法还原出联合概率分布,而判别方法不能;
- 生成方法的学习收敛速度更快、即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;
- 当存在隐变量时,扔可以用生成方法学习,此时判别方法不能用
判别方法和判别模型
判别模型:有限样本==》判别函数 = 预测模型==》预测
判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。判别方法关心的是对给定的输入X,应该预测什么样的输出Y。典型的判别模型包括:k近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、boosting方法和条件随机场等。判别模型利用正负例和分类标签,关注在判别模型的边缘分布。
判别方法的特点
- 判别方法寻找不同类别之间的最优分类面,反映的是异类数据之间的差异;
- 判别方法利用了训练数据的类别标识信息,直接学习的是条件概率P(Y|X)或者决策函数f(X),直接面对预测,往往学习的准确率更高;
- 由于直接学习条件概率P(Y|X)或者决策函数f(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。
- 缺点是不能反映训练数据本身的特性
判别模型和生成模型对比
(1)训练时,二者优化准则不同
生成模型优化训练数据的联合分布概率;
判别模型优化训练数据的条件分布概率,判别模型与序列标记问题有较好的对应性。
(2)对于观察序列的处理不同
生成模型中,观察序列作为模型的一部分;
判别模型中,观察序列只作为条件,因此可以针对观察序列设计灵活的特征。
(3)训练复杂度不同
判别模型训练复杂度较高。
(4)是否支持无指导训练
生成模型支持无指导训练。
(5)本质区别
discriminative model 估计的是条件概率分布(conditional distribution)p(class|context)
generative model 估计的是联合概率分布(joint probability distribution)p()
另外,由生成模型可以得到判别模型,但由判别模型得不到生成模型。
对于跟踪算法
由于之前用Camshift方法做人脸的跟踪,这里看到了有关跟踪算法的说明,特此陈述一下。
跟踪算法一般来说可以分为两类:基于外观模型的生成模型或者基于外观模型的判别模型。
生成模型:一般是学习一个代表目标的模型,然后通过它去搜索图像区域,然后最小化重构误差。类似于生成模型描述一个目标,然后就是模式匹配了,在图像中找到和这个模型最匹配的区域,就是目标了。
判别模型:将跟踪问题看成一个二分类问题,然后找到目标和背景的决策边界。它不管目标是怎么描述的,那只要知道目标和背景的差别在哪,然后你给一个图像,它看它处于边界的那一边,就归为哪一类。
参考资料
统计学习方法 李航著,清华大学出版社
CSDN博客 生成模型与判别模型
转载请注明作者Jason Ding及其出处
Github主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)
作者:JasonDing
链接:https://www.jianshu.com/p/d195b887a32e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
概率图分为有向图(bayesian network)与无向图(markov random filed)。在概率图上可以建立生成模型或判别模型。有向图多为生成模型,无向图多为判别模型。
判别模型(Discriminative Model),又可以称为条件模型,或条件概率模型。估计的是条件概率分布(conditional distribution),p(class|context)。利用正负例和分类标签,主要关心判别模型的边缘分布。其目标函数直接对应于分类准确率。 (判别模型多数放在分类)
主要特点:寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。
优点:(1)分类边界更灵活,比使用纯概率方法或生产模型得到的更高级;(2)能清晰的分辨出多类或某一类与其他类之间的差异特征;(3)在聚类、视角变化、部分遮挡、尺度改变等方面效果较好;(4)适用于较多类别的识别;(5)判别模型的性能比生成模型要简单,比较容易学习。
缺点:(1)不能反映训练数据本身的特性,即能力有限,可以告诉你的是1还是2,但没有办法把整个场景描述出来;(2)缺少生成模型的优点,即先验结构的不确定性;(3)黑盒操作,即变量间的关系不清楚,不可视。
常见的主要有:logistic regression、SVMs、traditional neural networks、Nearest neighbor、Conditional random fields。
主要应用:Image and document classification、Biosequence analysis、Time series prediction。
优点:(1)实际上带的信息要比判别模型丰富;(2)研究单类问题比判别模型灵活性强;(3)模型可以通过增量学习得到;(4)能用于数据不完整(missing data)情况;(5)很容易将先验知识考虑进去。
缺点:(1)容易会产生错误分类;(2)学习和计算过程比较复杂。
常见的主要有:Gaussians、Naive Bayes、Mixtures of multinomials、Mixtures of Gaussians、Mixtures of experts、HMMs、Sigmoidal belief networks、Bayesian networks、Markov random fields。
主要应用:(1)传统基于规则的或布尔逻辑系统正被统计方法所代替;(2)医学诊断。
注:所列举的生成模型也可以用判决模型的方法来训练,比如GMM或HMM,训练的方法有EBW(Extended Baum Welch),或最近Fei Sha提出的Large Margin方法。
如果这篇文章帮助到了你,你可以请作者喝一杯咖啡