原文地址为:机器学习--判别式模型与生成式模型

一、引言

  本材料参考Andrew Ng大神的机器学习课程 http://cs229.stanford.edu

  在上一篇有监督学习回归模型中,我们利用训练集直接对条件概率p(y|x;θ)建模,例如logistic回归就利用hθ(x) = g(θTx)对p(y|x;θ)建模(其中g(z)是sigmoid函数)。假设现在有一个分类问题,要根据一些动物的特征来区分大象(y = 1)和狗(y = 0)。给定这样的一种数据集,回归模型比如logistic回归会试图找到一条直线也就是决策边界,来区分大象与狗这两类,然后对于新来的样本,回归模型会根据这个新样本的特征计算这个样本会落在决策边界的哪一边,从而得到相应的分类结果。

  现在我们考虑另外一种建模方式:首先,根据训练集中的大象样本,我们可以建立大象模型,根据训练集中的狗样本,我们可以建立狗模型。然后,对于新来的动物样本,我们可以让它与大象模型匹配看概率有多少,与狗模型匹配看概率有多少,哪一个概率大就是那个分类。

  判别式模型(Discriminative Model)是直接对条件概率p(y|x;θ)建模。常见的判别式模型有 线性回归模型、线性判别分析、支持向量机SVM、神经网络等。

  生成式模型(Generative Model)则会对x和y的联合分布p(x,y)建模,然后通过贝叶斯公式来求得p(yi|x),然后选取使得p(yi|x)最大的yi,即:

常见的生成式模型有 隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA等。

二、高斯判别分析 Gaussian Discriminant Analysis

  高斯判别分析GDA是一种生成式模型,在GDA中,假设p(x|y)满足多值正态分布。多值正态分布介绍如下:

  2.1 多值正态分布 multivariate normal distribution

  一个n维的多值正态分布可以表示为多变量高斯分布,其参数为均值向量,协方差矩阵,其概率密度表示为:

当均值向量为2维时概率密度的直观表示:

左边的图表示均值为0,协方差矩阵∑ = I;中间的图表示均值为0,协方差矩阵∑ = 0.6I;右边的图表示均值为0,协方差矩阵∑ = 2I。可以观察到,协方差矩阵越大,概率分布越扁平;协方差矩阵越小,概率分布越高尖。

  2.2 高斯判别分析模型

  如果有一个分类问题,其训练集的输入特征x是随机的连续值,就可以利用高斯判别分析。可以假设p(x|y)满足多值正态分布,即:

该模型的概率分布公式为:

模型中的参数为Φ,Σ,μ0和μ1。于是似然函数(x和y的联合分布)为:

其中Φ是y = 1的概率,Σ是协方差矩阵,μ0是y = 0对应的特征向量x的均值 , μ1是y = 1对应的特征向量x的均值,于是得到它们的计算公式如下:

于是这样就可以对p(x,y)建模,从而得到概率p(y = 0|x)与p(y = 1|x),从而得到分类标签。其结果如下图所示:

三、朴素贝叶斯模型

  在高斯判别分析GDA中,特征向量x是连续实数值,如果特征向量x是离散值,可以利用朴素贝叶斯模型。

  3.1 垃圾邮件分类

  假设我们有一个已被标记为是否是垃圾邮件的数据集,要建立一个垃圾邮件分类器。用一种简单的方式来描述邮件的特征,有一本词典,如果邮件包含词典中的第i个词,则设xi = 1,如果没有这个词,则设xi = 0,最后会形成这样的特征向量x:

这个特征向量表示邮件包含单词"a"和单词"buy",但是不包含单词"aardvark,"aardwolf","zygmurgy"。特征向量x的维数等于字典的大小。假设字典中有5000个单词,那么特征向量x就为5000维的包含0/1的向量,如果我们建立多项式分布模型,那么有25000中输出结果,这就意味着有接近25000个参数,这么多的参数,要建模很困难。

  因此为了建模p(x|y),必须做出强约束假设,这里假设对于给定的y,特征x是条件独立的,这个假设条件称为朴素贝叶斯假设,得到的模型称为朴素贝叶斯模型。比如,如果y= 1表示垃圾邮件,其中包含单词200 "buy",以及单词300 "price",那么我们假设此时单词200 "buy" x200、单词300"price"x300 是条件独立的,可以表示为p(x200|y) = p(x200|y,x300)。注意,这个假设与x200与x300独立是不同的,x200与x300独立可以写作:p(x200) = p(x200|x300);这个假设是对于给定的y,x200与x300是条件独立的。

  因此,利用上述假设,根据链式法则得到:

  该模型有3个参数:

, , 

那么。根据生成式模型的规则,我们要使联合概率最大:

根据这3个参数意义,可以得到它们各自的计算公式:

这样就得到了朴素贝叶斯模型的完整模型。对于新来的邮件特征向量x,可以计算:

实际上只要比较分子就行了,分母对于y = 0和y = 1是一样的,这时只要比较p(y = 0|x)与p(y = 1|x)哪个大就可以确定邮件是否是垃圾邮件。

  3.2 拉普拉斯平滑

  朴素贝叶斯模型可以在大部分情况下工作良好。但是该模型有一个缺点:对数据稀疏问题敏感。

  比如在邮件分类中,对于低年级的研究生,NIPS显得太过于高大上,邮件中可能没有出现过,现在新来了一个邮件"NIPS call for papers",假设NIPS这个词在词典中的位置为35000,然而NIPS这个词从来没有在训练数据中出现过,这是第一次出现NIPS,于是算概率时:

由于NIPS从未在垃圾邮件和正常邮件中出现过,所以结果只能是0了。于是最后的后验概率:

  对于这样的情况,我们可以采用拉普拉斯平滑,对于未出现的特征,我们赋予一个小的值而不是0。具体平滑方法为:

假设离散随机变量取值为{1,2,···,k},原来的估计公式为:

使用拉普拉斯平滑后,新的估计公式为:

即每个k值出现次数加1,分母总的加k,类似于NLP中的平滑,具体参考宗成庆老师的《统计自然语言处理》一书。

  对于上述的朴素贝叶斯模型,参数计算公式改为:

转载请注明本文地址:机器学习--判别式模型与生成式模型

机器学习--判别式模型与生成式模型相关推荐

  1. 【机器学习】判别式模型和生成式模型

    问题 判别式模型和生成式模型是机器学习中很重要的两个概念,也是笔试面试中很可能出现的问题,这里整理一遍是为了让自己更好地理解和区分这两者之间的不同. 概念 假设可观测到的变量集合为X,其他变量集合为Z ...

  2. 机器学习中的判别式模型和生成式模型

    首发于人工智能 写文章 机器学习中的判别式模型和生成式模型 Microstrong 微信公众号:Microstrong,人工智能算法工程师 已关注 78 人赞同了该文章 目录: 基本概念 用例子说明概 ...

  3. 【机器学习】:判别式模型与生成式模型

    目录 问题引出 基本概念 举个例子 优缺点 模型实例 参考文献 问题引出 来源:牛客网 以下几种模型方法属于判别式模型(Discriminative Model)的有() 1)混合高斯模型 2)条件随 ...

  4. BAT面试题9:谈谈判别式模型和生成式模型?

    BAT面试题9:谈谈判别式模型和生成式模型? https://mp.weixin.qq.com/s/X7zWJCMN7gbCwqskIIpLcw 判别方法:由数据直接学习决策函数 Y = f(X),或 ...

  5. 判别式模型和生成式模型的区别(discriminative model and generative model)

    判别式模型和生成式模型的区别(discriminative model and generative model) 本博客转载自: http://blog.csdn.net/amblue/articl ...

  6. 谈谈判别式模型与生成式模型

    判别式模型与生成式模型是机器学习领域中的基本概念,今天将两者的特点总结一下,如下表所示: 对比 判别式模型 生成式模型 特点 寻找不同类别之间的最优分类面,反映异类数据之间的差异 以统计的角度表示数据 ...

  7. 判别式模型和生成式模型的区别

    其实机器学习的任务是从属性X预测标记Y,即求概率P(Y|X). 判别式模型 对于判别式模型来说求得P(Y|X),对未见示例X,根据P(Y|X)可以求得标记Y,即可以直接判别出来,如上图的左边所示,实际 ...

  8. 监督学习中判别式模型和生成式模型的区别 | 无监督学习的生成模型GAN、VAE(生成样本)

    文章目录 一.监督学习中的判别式模型和生成式模型 1.1 判别式模型(线性回归.SVM.NN) 1.2 生成式模型(朴素贝叶斯.HMM) 1.3 两种模型的小结 二.无监督学习中的生成式模型(生成样本 ...

  9. 判别式模型和生成式模型分别是什么?判别式模型和生成式模型的优缺点?

    判别式模型和生成式模型分别是什么?判别式模型和生成式模型的优缺点? 目录 判别式模型和生成式模型分别是什么?判别式模型和生成式模型的优缺点? 判别式模型和生成式模型分别是什么?

最新文章

  1. 全网最全最详细的Windows下安装Anaconda2 / Anaconda3(图文详解)
  2. 程序员:我不学Python了!!
  3. 简单尝试 express 使用 websocket
  4. C# Console类学习笔记
  5. 外卖小哥是怎样炼成的?
  6. Spring IOC核心原理分析
  7. 一文读懂Python 装饰器函数
  8. 鸢尾花分类_基于鸢尾花(iris)数据集的逻辑回归分类实践
  9. Go语言基础进阶—程序结构—变量
  10. 现代通信原理5.2:带通信号的(复包络)低通表示
  11. 什么是共模干扰和差模干扰,它们是怎么产生的
  12. R语言开放数据分析报告
  13. PTA:7-1 哥尼斯堡的“七桥问题” (25 分)
  14. a标签中的href=javascript
  15. python 进阶案例_Python 进阶内容整理
  16. php图片上传保留第一帧,七牛云上传视频怎么截取第一帧为图片
  17. vim制作python3编辑器
  18. 科技爱好者周刊(第 202 期):三个有启发的学习方法
  19. 服务器域名解析步骤总结
  20. 国外客户最讨厌的开发信

热门文章

  1. 智源研究院发布世界首个“机器学习通用数学符号集”
  2. 北京智源人工智能研究院2020年博士后招收简章
  3. 「智源论坛Live报名」清华大学董胤蓬:深度学习对抗攻防平台
  4. Python 之父:Python 4.0 可能不会来了
  5. 赋能RPA时代,微软发布通用文档理解预训练模型LayoutLM
  6. 独家 | 图解BiDAF中的单词嵌入、字符嵌入和上下文嵌入(附链接)
  7. 独家 | 带你认识几种最流行的Python编辑器/IDEs(附链接)
  8. 手把手教你在多种无监督聚类算法实现Python(附代码)
  9. 清华大学朱军:深度生成模型、算法和概率编程库(附视频+PPT)
  10. 世界级数学大牛来了!2002年菲尔兹奖得主加盟华为