本讲内容

1. Generative learning algorithms(生成学习算法)

2. GDA(高斯判别分析)

3. Naive Bayes(朴素贝叶斯)

4. Laplace Smoothing(拉普拉斯平滑)

1.生成学习算法与判别学习算法

判别学习算法:直接学习  或者学习一个假设  直接输出0或者1。logistic回归是判别学习算法的一个例子。

生成学习算法:对  建模,即在给定所属的类别的情况下,对特征出现的概率建模。出于技术上的考虑,也会对  建模。

         根据贝叶斯公式   得到后验概率。

       其中

       

2.高斯判别分析

高斯判别分析属于生成学习算法

首先,高斯判别分析的两个假设:

(1). , 且是连续值

(2).  属于高斯分布

多元高斯分布

当一个随机变量z满足多元高斯分布时,

所以z的概率密度函数如下

向量 是高斯分布的均值,矩阵 是协方差矩阵,

协方差矩阵对角线元素的值控制图像起伏的程度,反对角线元素的值控制图像起伏的方向。

均值控制图像中心的位置。

高斯判别分析模型

假设y服从伯努利分布,

用高斯分布对 建模

这个模型的参数为 

对这些参数作极大似然估计

这个公式被称为joint likelihood(联合似然性)

对于判别学习算法,我们的参数似然性公式定义如下

这个公式被称为conditional likelihood(条件似然性)

因此,对于生成学习算法,我们对参数的联合似然函数作极大似然估计

     对于判别学习算法,我们对参数的条件似然函数作极大似然估计 

对联合似然函数作极大似然估计,得到参数的值为

得到参数值之后, 对于一个新样本x,预测值为

         

高斯判别分析和logistic回归的关系

假设  属于高斯分布,那么一定可以推出 是一个logistic函数,但是反推不成立

这说明, 服从高斯分布的假设,要比  服从logistic分布的假设更强

那么该如何权衡高斯判别分析模型和logistic回归模型呢?

GDA做出了一个更强的假设,即  服从高斯分布,一旦这个假设正确或者近似正确,那么GDA算法的表现将会比logistic回归要好。

因为这个算法利用了更多数据的信息,算法知道数据服从高斯分布。

相反地,如果不确定  的分布情况,那么logistic回归将会表现的更好,logistic回归的弱假设使得logistic回归算法具有更好的鲁棒性,对不确定的数据分布依然能够得到一个较好的结果。

进一步,假设 的分布属于指数分布簇,那么一定可以推出 是一个logistic函数,但是反推不成立

事实证明,使用生成学习算法的好处是,生成学习算法要比判别学习算法需要更少的数据,

即使在数据量特别小的情况下,生成学习算法依然能够拟合出一个还不错的模型。

3.朴素贝叶斯 

朴素贝叶斯属于生成学习算法

对于一个垃圾邮件分类的问题,这是一个二分类的问题  

那么对于一封邮件,我们如何创建特征向量x?

普遍的做法是创建一个词典,假设该词典包含50000个单词,那么对于邮件中出现的单词,我们在词典的相应位置置1,邮件中没有出现的单词,

词典中相应的位置置0.这样对于每一封邮件,我们就可以得到一个长度为50000的特征向量x

解决了特征向量的表示问题,那么该如何对  建模呢?

假设采用多项式分布,特征向量x的取值有2^50000个,那么需要2^50000-1个参数,参数量实在是太大了。

因此朴素贝叶斯做了一个非常强的假设:给定y的时候, 是相互独立的,(是指邮件中第i个位置的单词)

   (链式法则)

                                       (朴素贝叶斯的强假设)

             

很显然朴素贝叶斯的假设是不可能成立的,但是事实证明朴素贝叶斯算法确实是一个非常有效的算法。

该模型的参数:

联合似然函数为

作极大似然估计(求偏导数,然后让其等于0)求得参数

因此对于一封新的邮件x,预测值y为

高斯判别分析模型和朴素贝叶斯模型的区别?

当随机变量X的取值是连续值时,可以采用GDA模型进行预测,

当随机变量X的取值是离散值时,可以采用朴素贝叶斯模型。

对于上述邮件的例子,是否是垃圾邮件属于二分类问题,  ,因此对 建模为伯努利分布

在给定y的情况下,朴素贝叶斯假设每个单词的出现互相独立,每个单词是否出现也是一个二分类问题,即 ,因此对  也建模为伯努利分布。

在GDA模型中,假设我们要处理的依然是二分类问题,对  依然建模为伯努利分布。

在给定y的情况下,x的取值是连续值,所以我们对  建模为高斯分布。

在上述邮件例子中存在一个问题:假设在一封邮件中出现了一个以前邮件从来没有出现的词,那么在预测该邮件是否是垃圾邮件时,

      

       

存在  使得  和  都为0

那么    模型失灵。

换句话说,在有限的训练集中没有出现过的特征,不可以简单的认为该特征以后会出现的概率为0.

修正方法是采用laplace平滑。

4.laplace平滑 

假设y可以取k个不同的值,,那么

分子加1,分母加k,以避免 在预测从未见过的新值时,分子分母都为0的情况。

在上述邮件问题中,

            

同理

第五讲完。

机器学习之生成学习算法相关推荐

  1. 机器学习(二)——广义线性模型、生成学习算法

    http://antkillerfarm.github.io/ 逻辑回归(续) 注:Ronald Aylmer Fisher,1890-1962,英国人,毕业于剑桥大学.英国皇家学会会员.尽管他被称作 ...

  2. 斯坦福CS229机器学习笔记-Lecture5 - 生成学习算法+高斯判别GDA+朴素贝叶斯+拉普拉斯平滑

    作者:teeyohuang 邮箱:teeyohuang@163.com 本文系原创,供交流学习使用,转载请注明出处,谢谢 声明:此系列博文根据斯坦福CS229课程,吴恩达主讲 所写,为本人自学笔记,写 ...

  3. Petuum提出序列生成学习算法通用框架

    近日,来自人工智能创业公司 Petuum 的研究人员发表论文,提出序列生成学习算法的通用框架--广义的熵正则化策略优化框架(Generalized Entropy-Regularized Policy ...

  4. em算法 实例 正态分布_Petuum提出序列生成学习算法通用框架

    近日,来自人工智能创业公司 Petuum 的研究人员发表论文,提出序列生成学习算法的通用框架--广义的熵正则化策略优化框架(Generalized Entropy-Regularized Policy ...

  5. 生成学习算法.高斯判别分析(GDA).GDA与Logistic模型

    http://blog.csdn.net/v1_vivian/article/details/52190572 <Andrew Ng 机器学习笔记>这一系列文章文章是我再观看Andrew ...

  6. [CS229学习笔记] 5.判别学习算法与生成学习算法,高斯判别分析,朴素贝叶斯,垃圾邮件分类,拉普拉斯平滑

    本文对应的是吴恩达老师的CS229机器学习的第五课.这节课介绍了判别学习算法和生成学习算法,并给出了生成学习算法的一个实例:利用朴素贝叶斯进行垃圾邮件分类. 判别学习(Discriminative L ...

  7. Python大数据综合应用 :零基础入门机器学习、深度学习算法原理与案例

    机器学习.深度学习算法原理与案例实现暨Python大数据综合应用高级研修班 一.课程简介 课程强调动手操作:内容以代码落地为主,以理论讲解为根,以公式推导为辅.共4天8节,讲解机器学习和深度学习的模型 ...

  8. 【重磅干货】Python、机器学习、深度学习算法实战和应用必备书籍

    [导读]首先祝大家中秋佳节快乐,乘此良辰美景,今天就给大家发一波福利干货!本文给大家分享机器学习.深度学习算法实战和应用必备的4本"宝藏"书.具体书籍展示如下:(文末提供下载方式! ...

  9. ML/DL:关于机器学习、深度学习算法模型的选择

    ML/DL:关于机器学习.深度学习算法模型的选择 目录 算法思路 算法思路 更新--

最新文章

  1. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明
  2. linux远程登录键盘反应慢,通过OpenSSH远程登录时的延迟问题解决
  3. .html .php .asp,html静态页面中执行php、asp函数代码
  4. js_组合继承(最常用的继承方式)
  5. 用python画个三维地球_如何用Python制作三维散点图?
  6. Java加密与解密的艺术~AES-GCM-NoPadding实现
  7. java搭建聊天服务器_使用 ServerSocket 建立聊天服务器-2
  8. iQOO高层专访:打造性能旗舰 用户满意度为先
  9. 图片维度不匹配_内容审核基础:审核方式、流程与审核维度
  10. 抖音申请企业蓝v认证的流程是怎样的?
  11. iOS毛玻璃效果(第一次写~有点紧张喔)
  12. TableView全展开实现ContentSizedTableView
  13. 移动统计工具Flurry
  14. 肥姐沈殿霞离世追悼会时间待定 为女儿留下上亿遗产
  15. 一步步带你观察vector.push_back()具体拷贝机制,超级详细哦
  16. openocd Win10安装jlink->winUSB失败
  17. zblog忘记后台密码怎么办 官方解决方案
  18. docker docker compose 云效流水线
  19. 基于javaweb+Swing+MySQL火车票售票管理系统
  20. 打包aab_[Android][AAB]使用Google Play的AAB打包,出现页面渲染失败

热门文章

  1. 如何聚焦自己的研究方向?一个实例研究
  2. time and value
  3. 有一个能够统一的方式来画uml图的软件
  4. MOBA项目定点数的一个想法
  5. JavaScript 工作原理之十一-渲染引擎及性能优化小技巧 1
  6. DM365 dvsdk_2_10_01_18开发环境搭建
  7. 瑞星:周末拦截挂马网站数减少 新闻类网站占主打
  8. 开源监控软件ganglia安装手册
  9. poj 3321 Apple Tree(dfs序+树状数组求和模型)
  10. hdu 5172(RMQ+前缀和)