机器学习中的生成模型与判别模型

1.概述

         在机器学习中,对于有监督学习,它的任务就是要学习一个模型,应用这个模型,对给定的输入预测相应的输出。监督学习方法可以分为生成方法(generative approach)和判别方法(discriminative approach)。所学到的模型分别称为生成模型(generative model)和判别模型(discriminative model)。简单地说,生成模型针对联合概率分布进行建模,而判别模型针对条件概率分布建模。

2.生成模型与判别模型的比较

2.1 两者直观对比

判别模型之所以称为“判别”模型,是因为其根据X“判别”Y;求的是P(Y|X),即后验概率;

生成模型之所以称作“生成”是因为其预测的根据是联合概率P(X,Y),而联合概率可以理解为“生成”(X,Y)样本的概率分布(或称为依据), 具体来说,机器学习已知 X,从Y的候选集合中选出一个来,可能的样本有(X,Y_1), (X,Y_2), (X,Y_3),...,(X,Y_n)实际数据是如何“生成”的依赖于P(X,Y),那么最后的预测结果选哪一个Y?选“生成”概率最大的那个!直观对比示意图如下

机器学习中的生成模型与判别模型_第1张图片

2.2 两者的特点

2.2.1 生成模型的特点

生成模型被认为是一类可以生成新数据实例的统计模型。作为执行任务的一种手段,例如可实现:

  • 概率和似然估计
  • 建模数据点
  • 描述数据中的现象
  • 根据这些概率区分类别

由于这些类型的模型通常依靠贝叶斯定理来找到联合概率,因此生成模型可以处理比判别模型更复杂的任务。

生成模型关注数据集中各个类的分布,其学习算法倾向于对数据点的底层模式或分布进行建模。生成模型使用联合概率的概念,创建给定特征输入 ( x )与所需输出或标签 ( y )同时存在的实例。

这些模型使用概率估计和可能性来对数据点进行建模,并区分数据集中存在的不同类别标签。与判别模型不同,这种模型还能够生成新的数据点。

但是,它有一个主要缺点——如果数据集中存在异常值,那么它会在很大程度上会影响这种模型的建模。

机器学习中的生成模型与判别模型_第2张图片

生成模型可以还原出联合概率分布,因此还可以用于无监督机器学习,而判别模型不能;生成模型的学习收敛速度快,当样本容量增加时,学到的模型可以很快收敛于真实模型,当存在隐变量时,仍可以使用生成模型,但不能使用判别模型。从信息量角度来说,生成模型包含的信息量比判别模型包含的信息量大。

2.2.2 判别模型的特点

判别模型是统计分类中使用的一类主要用于有监督的机器学习模型。这种模型也称为条件模型,因为它学习数据集中类别或标签之间的边界。

判别模型(就像字面意思一样)分离类而不是对条件概率进行建模,并且不对数据点做出任何假设。这种模型无法生成新的数据点。判别模型的最终目标是将一个类与另一类分开。

如果数据集中存在一些异常值,则判别模型与生成模型相比效果更好,即判别模型对异常值更稳健。然而,这些模型的一个主要缺点是 错误分类问题,即错误地分类数据点。

机器学习中的生成模型与判别模型_第3张图片

判别模型由于学到的是条件概率分布或决策函数,直接面对预测,通常学习得到的准确性更高,由于直接学习P(Y|X)f(X), 可以对数据进行各种程度的抽象、定义特征并使用特征,可以简化学习过程。

2.3 两者数学依据

1)生成模型预测依据

在生成模型的情况下,为了找到条件概率P(Y|X),他们在训练数据的帮助下估计先验 概率P(Y)和似然概率 P(X|Y),并使用贝叶斯定理计算后验概率 P(Y |X)即:

                                f(X)=\mathop{\arg\max}\limits_{Y} \ p(Y|X)=\mathop{\arg\max}\limits_{Y}\ \frac{p(X|Y)p(Y)}{p(X)}=\mathop{\arg\max}\limits_{Y} \ p(X|Y)p(Y)

2)判别模型预测依据:

在判别模型的情况下,为了找到概率,它们直接假设P(Y|X)的某种函数形式,然后 在训练数据的帮助下 估计P(Y|X)的参数,即

                                                f(X)=p(Y|X)

2.4 两者的差异比较

        a) 核心理念

        判别模型在数据空间中绘制边界,而生成模型试图模拟数据在整个空间中的放置方式。生成模型侧重于解释数据是如何生成的,而判别模型侧重于预测数据的标签。

        b) 数学直觉

       用数学术语来说,判别式机器学习通过学习最大化条件概率P(Y|X)的参数来训练模型,另一方面,生成模型通过最大化P(X,Y)

        c) 应用

        判别模型识别现有数据,即判别建模识别标签并对数据进行排序,并可用于对数据进行分类,而生成建模则产生一些东西。

        由于这些模型使用不同的机器学习方法,因此两者都适用于特定任务,即生成模型可以适用于无监督学习任务,而判别模型只能对监督学习任务有用。

        d) 异常值处理

        生成模型比判别模型对异常值的影响更大,即生成模型对异常值更敏感。

        e) 计算成本

        与生成模型相比,判别模型的计算成本较低。

2.5 举例说明

来自维基百科生成模型维基百科

假设有四个samples

sample 1 sample 2 sample 3 sample 4
x 1 1 2 2
y 0 1 0 0

生成模型学到的结果:

y=0 y=1
x=1 1/4 1/4
x=2 2/4 0

\sum P(x,y)=1

判别模型学到的结果:

y=0 y=1
x=1 1/2 1/2
x=2 1 0

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

3.两者模型各自算法

1)生成模型常用算法:

  • ‌Naïve Bayes
  • Bayesian Networks
  • Markov Random Fields
  • ‌Hidden Markov Models (HMMs)
  • Gaussian Mixture Model(GMM) (some other types of mixture model​)
  • Latent Dirichlet Allocation (LDA)
  • Generative Adversarial Networks (GANs)
  • Autoregressive Model
  • Variational autoencoder
  • Boltzmann machine(Restricted Boltzmann machine,Deep belief network)
  • Energy Based Model
  • Flow-based Generative Model

2)判别模型常用算法

  • ‌K‌ Nearest neighbor
  • Logistic regression
  • Support Vector Machine (SVMs)
  • ‌Traditional neural networks
  • Conditional Random Fields (CRFs)
  • Decision Trees and Random Forest

你可能感兴趣的:(#,机器学习,人工智能,机器学习,生成模型,判别模型)