机器学习“断定模型”和“生成模型”有什么区别?

维基百科上Generative条目里面有个经典的案例:html

假设有四个samples:算法

 

生成式模型的世界是这个样子:机器学习

 


\Sigma P(x, y) = 1

而断定式模型的世界是这个样子:学习

 


\sum_{y}{P(y | x)} = 1

也就是说:生成模型是联合几率分布,判别模型是条件几率分布。ui

 


 

简单地说,对于监督学习,预测时,通常都是在求p(Y|X)htm

生成模型: 从数据中学习联合几率分布p(X,Y),而后利用贝叶斯公式求:p(Y|X)=\frac{P(X,Y)}{\Sigma P(X,Y_{i} )} ; 这类典型的模型包括:朴素贝叶斯、LDA、HMM
判别模型:直接学习P(Y|X), 它直观输入什么特征X,就直接预测出最可能的Y; 典型的模型包括:LR, SVM,CRF,Boosting,Decision tree....blog

 


 

其实机器学习的任务是从属性X预测标记Y,即求几率P(Y|X);ip

对于判别式模型来讲求得P(Y|X),对未见示例X,根据P(Y|X)能够求得标记Y,便可以直接判别出来,如上图的左边所示,实际是就是直接获得了判别边界,因此传统的、耳熟能详的机器学习算法如线性回归模型、支持向量机SVM等都是判别式模型,这些模型的特色都是输入属性X能够直接获得Y(对于二分类任务来讲,实际获得一个score,当score大于threshold时则为正类,不然为反类)~(根本缘由我的认为是对于某示例X_1,对正例和反例的标记的条件几率之和等于1,即P(Y_1|X_1)+P(Y_2|X_1)=1)ci

而生成式模型求得P(Y,X),对于未见示例X,你要求出X与不一样标记之间的联合几率分布,而后大的获胜,如上图右边所示,并无什么边界存在,对于未见示例(红三角),求两个联合几率分布(有两个类),比较一下,取那个大的。机器学习中朴素贝叶斯模型、隐马尔可夫模型HMM等都是生成式模型,熟悉Naive Bayes的都知道,对于输入X,须要求出好几个联合几率,而后较大的那个就是预测结果~(根本缘由我的认为是对于某示例X_1,对正例和反例的标记的联合几率不等于1,即P(Y_1,X_1)+P(Y_2,X_1)<1,要遍历全部的X和Y的联合几率求和,即sum(P(X,Y))=1,具体可参见楼上woodyhui提到的维基百科Generative model里的例子)get

博文机器学习之判别式模型和生成式模型 - nolonely - 博客园 举了一个例子:

判别式模型举例:要肯定一个羊是山羊仍是绵羊,用判别模型的方法是从历史数据中学习到模型,而后经过提取这只羊的特征来预测出这只羊是山羊的几率,是绵羊的几率。

生成式模型举例:利用生成模型是根据山羊的特征首先学习出一个山羊的模型,而后根据绵羊的特征学习出一个绵羊的模型,而后从这只羊中提取特征,放到山羊模型中看几率是多少,在放到绵羊模型中看几率是多少,哪一个大就是哪一个。

细细品味上面的例子,判别式模型是根据一只羊的特征能够直接给出这只羊的几率(好比logistic regression,这几率大于0.5时则为正例,不然为反例),而生成式模型是要都试一试,最大的几率的那个就是最后结果~

补充20180524:

在机器学习中任务是从属性X预测标记Y,判别模型求的是P(Y|X),即后验几率;而生成模型最后求的是P(X,Y),即联合几率。从本质上来讲:

判别模型之因此称为“判别”模型,是由于其根据X“判别”Y;

生成模型之因此称为“生成”模型,是由于其预测的根据是联合几率P(X,Y),而联合几率能够理解为“生成”(X,Y)样本的几率分布(或称为 依据);具体来讲,机器学习已知X,从Y的候选集合中选出一个来,可能的样本有(X,Y_1), (X,Y_2), (X,Y_3),……,(X,Y_n),实际数据是如何“生成”的依赖于P(X,Y),那么最后的预测结果选哪个Y呢?那就选“生成”几率最大的那个

相关文章
相关标签/搜索