首页 > 代码库 > 生成模型和判别模型

生成模型和判别模型

这篇文章浅谈一下我对机器学习中生成模型和判别模型的认识。

首先,机器学习算法分为监督学习、半监督学习、非监督学习等。而对于监督学习,又可以分成生成学习(generative approach)和判别学习(discriminative approach)。下面是NG对这两个概念的解释:

Algorithms that try to learn p(y|x) directly (such as logistic regression), or algorithms that try to learn mappings directly from the space of inputs X to the labels {0, 1}, (such as the perceptron algorithm) are called discriminative learning algorithms. Here, we’ll talk about algorithms that instead try to model p(x|y) (and p(y)). These algorithms are called generative learning algorithms. For instance, if y indicates whether an example is a dog (0) or an elephant (1), then p(x|y = 0) models the distribution of dogs’ features, and p(x|y = 1) models the distribution of elephants’ features. 

从学习的目标看,生成学习的学习目标是求得联合概率p(x,y),而判别学习的学习目标是求得条件概率p(y|x)。

李航老师的《统计学习方法》中有说:“之所以成为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系”。我的理解,判别模型就是给一个x,模型能直接输出类别y;而生成模型则要先找到x,y的关系。

典型的生成模型有:朴素贝叶斯和隐马尔科夫模型等;判别模型有:k近邻,感知机,决策树,logistic回归等。

生成模型和判别模型