理解生成模型与判别模型

导言

我们都知道,对于有监督的机器学习中的分类问题,求解问题的算法可以分为生成模型与判别模型两种类型。但是,究竟什么是生成模型,什么是判别模型?不少书籍和技术文章对这对概念的解释是含糊的。在今天这篇文章中,我们将准确、清晰的解释这一组概念。

第一种定义

对于判别模型和生成模型有两种定义,第一种定义针对的是有监督学习的分类问题。该问题的目标是给定一个样本的向量x(可以是原始数据如图像,声音,也可以是提取出来的特征向量),在这里我们将它称为输入变量,目标是预测出这个样本的类别y即标签值,一般是一个离散的标量,即类别编号。因此算法要解决的核心问题是根据训练样本建立下面这样的映射函数:

对于这个问题,有3种求解思路,下面我们分别介绍。

第一种做法称为生成模型。已知输入变量x和目标变量y,先对它们的联合概率分布p(x, y)建模,然后计算样本属于每一个类的条件概率p(y|x)即类后验概率,按照这个值来完成分类,如将样本分到概率p(y|x)最大的那个类。根据概率论的知识,有:

在这里,p(x, y)为联合概率密度函数,p(x)为样本输入向量x的边缘密度函数。对上面这种做法的直观解释是:我们已知某一个样本具有某种特征x,现在要确定它输入哪个类,而自然的因果关系是,样本之所以具有这种特征x,是因为它属于某一类。例如,我们要根据体重,脚的尺寸这两个特征x来判断一个人是男性还是女性,我们都知道,男性的体重总体来说比女性大,脚的尺寸也更大,因此从逻辑上来说,是因为一个人是男性,因此才有这种大的体重和脚尺寸。而在分类任务中要做的却相反,是给了你这样个特征的样本,让你反推这人是男性还是女性。

联合概率密度函数等于类概率p(y)与类条件概率p(x|y)即先验概率的乘积,即:

将上面两个公式合并起来,有:

这就是贝叶斯公式。它完成了因果转换,我们要完成的是由果推断因,而在训练时我们建立的是因到果的模型及p(x|y),即男性和女性的体重、脚尺寸分别服从的概率分布。

总结起来,生成模型对联合概率p(x, y)建模,根据它,我们可以得到类后验概率p(y|x)。事实上,这种做法不仅仅局限于分类问题,如果将x看做可以观测的变量,y看做不可观测到的变量,只要具有这种特征的问题,我们都可以建立生成模型。

生成模型的典型代表是贝叶斯分类器,它对类条件概率p(x|y)建模,而p(x|y)p(y)就是联合概率p(x, y)。通过贝叶斯公式,根据联合概率又可以得到类后验概率:

如果只用于分类而不需要给出具体的概率值,则分母p(x)对所有类型y都是一样的,只需要计算分子p(x|y)p(y)。如果我们假设每个类y的样本的特征向量x的每个分量相互独立,则可以得到朴素贝叶斯分类器,如果假设每个类的样本服从正态分布,则p(x|y)为正态分布,此时为正态贝叶斯分类器。

生成模型的另外一个典型代表是受限玻尔兹曼机(RBM),这是一种随机性的神经网络,由两类神经元组成(每一类为一个层),量个层之间有连接关系,第一种神经元为可见变量,即可以直接观测到的值v,如图像的每个像素。第二类为隐含变量h,是不能直接观测到的变量,如图像的特征。v和h的联合概率服从玻尔兹曼分布:

根据这个联合概率,我们可以很容易得到条件概率p(x|y)和p(y|x)。例如为了得到p(y|x),可以先求边缘概率p(x),对于离散型随机变量,对y的概率求和,对于连续型随机变量,则为求积分,然后有:

生成模型最显著的一个特征是假设样本向量x服从何种概率分布,如正态分布,均匀分布。

第二种做法称为判别模型。已知输入变量x,它直接对目标变量y的条件概率p(y|x)建模。即计算样本x属于 每一类的概率。注意,这里和生成模型有一个本质的区别,那就是每一假设x服从何种概率分布,而是直接估计出条件概率p(y|x)。

这类模型的典型代表是logistic回归和softmax回归,它们直接对p(y|x)建模,而不对p(x, y)建模,即每一假设x服从何种概率分布。logistic回归用于二分类问题,它直接根据样本x估计出它是正样本的概率:

注意,这里只是直接猜测出了这个概率,而没有假设每个类的样本服从何种概率分布,即没有对p(x|y)或者p(x, y)建模。如果对logistic回归感兴趣,可以阅读SIGAI之前的公众号文章“理解logistic回归”。

softmax回归是logistic回归的多分类版本,它直接估计出一个样本向量x属于k个类中每一个类的概率:

这里预测出的是一个向量,每个分量为样本属于每个类的概率。和logistic回归一样,它是直接预测出了这个条件概率,而没有假设每个类的样本x所服从的概率分布。

第三种做法最直接,分类器根本就不建立概率模型,而是直接得到分类结果,这种是非概率模型,也称为判别模型。它直接根据样本向量x预测出类别编号y:

这类模型的典型代表是决策树,支持向量机,随机森林,kNN算法,AdaBoost算法,xgboost,标准的人工神经网络(包括全连接神经网络,卷积神经网络,循环神经网络等)。如果神经网络的最后一层是softmax变换,即softmax回归,则可以归到第二种情况里,如果没有使用,则是这第三种情况。

支持向量机的预测函数是:

它自始至终没有假设样本向量x服从何种分布,也没有估计类后验概率p(y|x)。这可以看成是一种几何划分的思想,把空间划分成多个部分。如果对支持向量机感兴趣,可以阅读SIGAI之前的公众号文章“用一张图理解支持向量机的脉络”。

类似的,决策树的预测函数时分段常数函数,直接实现从向量x到类别标签y的映射,没有计算任何概率值。如果对决策树感兴趣,可以阅读SIGAI之前的公众号文章“理解决策树”。其他的算法如随机森林,kNN,也是如此。

这类模型没有使用概率的观点进行建模,而是用几何或者分析(函数)的手段建模,如找出分类超平面或者曲面,直接得到映射函数。

一般来说,我们把使用第一种模型的分类器称为生成式分类器,把使用第二种和第三种模型的分类器称为判别式分类器。

第二种定义

除此之外,对生成模型和判别模型还有另外一种定义。生成模型是已知样本的标签值y,对样本的特征向量x的条件概率进行建模,即对条件概率p(x|y)建模,它研究的是每种样本服从何种概率分布。判别模型则刚好相反,已知样本的特征向量x,对样本的标签值y的概率进行建模,即对条件概率p(y|x)建模,这种一般用于分量,即给定样本x,计算它属于每个类的概率。

根据这种定义,生成模型可以用来根据标签值y生成随机的样本数据x。生成对抗网络(GAN)就是典型的例子,它可以生成服从某种概率分布的随机变量,即拟合类条件概率密度函数p(x|y),而此时它的目的不是分类,而是生成样本。事实上,如果我们知道了p(x|y)或者p(x, y),无论是用来做分类,还是用来做数据生成,都是可以的。

而判别模型以及不使用概率模型的判别型分类器则根据样本特征向量x的值判断它的标签值y,即用于判断样本的标签值y。

推荐阅读

[1]机器学习-波澜壮阔40年【获取码】SIGAI0413.

[2]学好机器学习需要哪些数学知识?【获取码】SIGAI0417.

[3] 人脸识别算法演化史【获取码】SIGAI0420.

[4]基于深度学习的目标检测算法综述 【获取码】SIGAI0424.

[5]卷积神经网络为什么能够称霸计算机视觉领域?【获取码】SIGAI0426.

[6] 用一张图理解SVM的脉络【获取码】SIGAI0428.

[7] 人脸检测算法综述【获取码】SIGAI0503.

[8] 理解神经网络的激活函数 【获取码】SIGAI2018.5.5.

[9] 深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读【获取码】SIGAI0508.

[10] 理解梯度下降法【获取码】SIGAI0511.

[11] 循环神经网络综述—语音识别与自然语言处理的利器【获取码】SIGAI0515

[12] 理解凸优化 【获取码】 SIGAI0518

[13] 【实验】理解SVM的核函数和参数 【获取码】SIGAI0522

[14]【SIGAI综述】行人检测算法 【获取码】SIGAI0525

[15] 机器学习在自动驾驶中的应用—以百度阿波罗平台为例(上)【获取码】SIGAI0529

[16]理解牛顿法【获取码】SIGAI0531

[17] 【群话题精华】5月集锦—机器学习和深度学习中一些值得思考的问题【获取码】SIGAI 0601

[18] 大话Adaboost算法 【获取码】SIGAI0602

[19] FlowNet到FlowNet2.0:基于卷积神经网络的光流预测算法【获取码】SIGAI0604

[20] 理解主成分分析(PCA)【获取码】SIGAI0606

[21] 人体骨骼关键点检测综述 【获取码】SIGAI0608

[22]理解决策树 【获取码】SIGAI0611

[23] 用一句话总结常用的机器学习算法【获取码】SIGAI0611

[24] 目标检测算法之YOLO 【获取码】SIGAI0615

[25] 理解过拟合 【获取码】SIGAI0618

[26]理解计算:从√2到AlphaGo ——第1季 从√2谈起 【获取码】SIGAI0620

[27] 场景文本检测——CTPN算法介绍 【获取码】SIGAI0622

[28] 卷积神经网络的压缩和加速 【获取码】SIGAI0625

[29] k近邻算法 【获取码】SIGAI0627

[30]自然场景文本检测识别技术综述 【获取码】SIGAI0627

[31] 理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 【获取码】SIGAI0704

[32] 机器学习算法地图【获取码】SIGAI0706

[33] 反向传播算法推导-全连接神经网络【获取码】SIGAI0709

[34] 生成式对抗网络模型综述【获取码】SIGAI0709.

[35]怎样成为一名优秀的算法工程师【获取码】SIGAI0711.

[36] 理解计算:从根号2到AlphaGo——第三季 神经网络的数学模型【获取码】SIGAI0716

[37]【技术短文】人脸检测算法之S3FD 【获取码】SIGAI0716

[38] 基于深度负相关学习的人群计数方法【获取码】SIGAI0718

[39] 流形学习概述【获取码】SIGAI0723

[40] 关于感受野的总结 【获取码】SIGAI0723

[41] 随机森林概述 【获取码】SIGAI0725

[42] 基于内容的图像检索技术综述——传统经典方法【获取码】SIGAI0727

[43] 神经网络的激活函数总结【获取码】SIGAI0730

[44] 机器学习和深度学习中值得弄清楚的一些问题【获取码】SIGAI0802

[45] 基于深度神经网络的自动问答系统概述【获取码】SIGAI0803

[46] 反向传播算法推导——卷积神经网络 【获取码】SIGAI0806

[47] 机器学习与深度学习核心知识点总结 写在校园招聘即将开始时 【获取 码】SIGAI0808

[48] 理解Spatial Transformer Networks【获取码】SIGAI0810

[49]AI时代大点兵-国内外知名AI公司2018年最新盘点【获取码】SIGAI0813

[50] 理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 【获取码】SIGAI0815

[51] 基于内容的图像检索技术综述--CNN方法 【获取码】SIGAI0817

[52]文本表示简介 【获取码】SIGAI0820

[53]机器学习中的最优化算法总结【获取码】SIGAI0822

[54]【AI就业面面观】如何选择适合自己的舞台?【获取码】SIGAI0823

[55]浓缩就是精华-SIGAI机器学习蓝宝书【获取码】SIGAI0824

[56]DenseNet详解【获取码】SIGAI0827

[57]AI时代大点兵国内外知名AI公司2018年最新盘点【完整版】【获取码】SIGAI0829

[58]理解Adaboost算法【获取码】SIGAI0831

[59]深入浅出聚类算法 【获取码】SIGAI0903

[60]机器学习发展历史回顾【获取码】SIGAI0905

[61] 网络表征学习综述【获取码】SIGAI0907

[62] 视觉多目标跟踪算法综述(上) 【获取码】SIGAI0910

[63] 计算机视觉技术self-attention最新进展 【获取码】SIGAI0912

[64] 理解Logistic回归 【获取码】SIGAI0914

[65] 机器学习中的目标函数总结 【获取码】SIGAI0917

[66] 人脸识别中的活体检测算法综述【获取码】SIGAI0919

[67] 机器学习与深度学习常见面试题(上)【获取码】SIGAI0921

[68] 浅谈动作识别TSN,TRN,ECO 【获取码】SIGAI0924

[69] OCR技术简介【获取码】SIGAI0926

[70] 轻量化神经网络综述【获取码】SIGAI1001

[71] 行人重识别PCB-RPP,SGGNN 【获取码】SIGAI1001

[72] 人工智能非技术从业者必知的十件事 【获取码】SIGAI1008

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的

猜你喜欢

转载自blog.csdn.net/SIGAI_CSDN/article/details/83000946