关闭

机器学习系列-Generative Learning Algorithms

标签: 机器学习生成学习算法深度学习算法
653人阅读 评论(0) 收藏 举报
分类:

前言

目前为止,之前学习的几个算法的模型P(y|x;θ),在给定x的情况下y的条件分布。比如逻辑回归算法中,基础模型P(y|x;θ)的演化为 h(x)=g(θTx),g 是sigmod函数。这类的算法都是直接的去学习p(y|x)或者学习如何将输入x映射到{0,1}这样的标签中,我们称这类算法为判别学习算法。

这篇文章要讲述的是另外一个算法,假设有一个分类问题,主要为了学习区分大象(y=1)和小狗(y=0),当然是根据给定的一些动物的featurs来判定类别。之前的回归算法可能就会通过梯度上升算法算出一条直线来区分这两个类别,然后对于新的animal只要输入这个回归算法中,就能判别是在直线的哪一边,从而判断是属于什么动物。而另外一种方法就是,在数据集中,挑选出大象的数据,以这个数据集为基础建立一个模型,描述大象应该有的features,同理对于小狗也可以建立一个模型,学习小狗的一些features。这样就有两个不一样的模型,当有新的animal输入时,我们可以分别让这个新输入和大象模型与小狗模型进行匹配,观察这个新输入的animal更像哪一个类型,从而确定类别 。

Generative Learning Algorithms

类似上面这种我们称作是生成学习算法,举个例子,假设y的值{0,1},0代表是小狗,1代表是大象,那么p(x|y=0)是对小狗的features的建模,p(x|y=1)是对大象的features的建模。可以看出生成学习算法一开始是对p(x|y)建模而不是对p(y|x)建模,这个是跟判别算法有差异的地方。对p(x|y)建模后就可以通过贝叶斯法则来求出p(y|x)

下面是求p(y|x)要用的贝叶斯的一般性公式:

这里写图片描述

利用这一公式我们分别写出一下P(y=1|x)和p(y=0|x)的求解公式以及变化:
这里写图片描述

可以得出的结论就是下面红线标记的公式,这也是对p(x)建模的模型。

这里写图片描述

最终目的是为了预测p(y|x)我们可以用下面定义公式来计算:

这里写图片描述

不用考虑分母p(x)的原因是: arg max的定义是求出使p(y|x)最大的y值,最后的结果是y值,而分母p(x)由上面的建模模型可以看出y值都是已经确定了0或1,所以p(x)是一个与y无关的数值,即常数。这个定义会在后面具体分析高斯模型的时候用到。

Gaussian discriminant analysis

第一个要研究的生成学习算法是GDA,在这个模型中我们假设p(x|y)是多元正态分布,接下来先讨论一下多元正态分布。

GDA也被称作是多元高斯分布,这是ng课件里面的定义,符号有点多直接截图了:

这里写图片描述

上面是由一般性的正态分布公式演化而来,简单介绍下其演化过程:
这里写图片描述

一一去对比公式中的各个式子都可以对上号,由于引进的是多元正态分布,也是多维高斯分布,所以用矩阵的方式来计算,式子中会有所变化。

当然,多维随机向量具有类似的概率规律时,称此随机向量遵从多维正态分布。多元正态分布有很好的性质,例如,多元正态分布的边缘分布仍为正态分布,它经任何线性变换得到的随机向量仍为多维正态分布,特别它的线性组合为一元正态分布。

下面是对多元高斯分布的均值公式:

这里写图片描述

期望值μ决定了其位置,其协方差∑决定了分布的幅度,具体的影响性,ng的视频及课件用了好几个形象化的例子来描述协方差的变化对分布形状的变化影响。这边就不做深入研究了。

GDA 模型是为了针对解决当输入的值是连续的随机值时,此时我们可以用GDA来建模,当然GDA也是生成学习算法类,所以也是对p(x|y)建模,下面研究一下GDA模型的建模过程,当然这个模型选的是多元正态分布:

这里写图片描述

下面是具体的模型公式:

这里写图片描述

将这些模型用函数图形表现出来:

这里写图片描述

假设两个凸函数(对p(x|y的建模))形状的曲线就是正态分布的图像,中心位置不一样。其中我们预测p(y=1|x),明显在偏左边的区域p(y=0)的概率更大,所以p(y=1|x)的概率偏小,越往右,越靠近p(x|y=1)概率越大。同理p(y=0|x)也一样,最后发现预测出来的两条曲线跟逻辑回归的sigmod函数图形很相似,这里就不做详细描述了,课件和视频都有具体讲。

p(y)的建模公式其实就是伯努利模型,线面给出比较详细的公式以便理解:
这里写图片描述

对于上面的模型,一共涉及到了(∮,∑,u0,u1),这里虽然有两个不同的均值u0,u1,但是不影响使用同一个协方差∑,对于多参数的模型这边用log-likehood来估计:
这里写图片描述

接下来就是计算出各个参数取多少时,这个似然公式会取到最大值,课件直接给了以下结论:

这里写图片描述

具体代表的意义,图上有少许注释。其实自己学习到这里也是一头雾水,上面的几个式子琢磨了挺久没有思路,决定等以后顿悟之后再回头看这些到底是什么名堂。生成学习算法应该算是一类算法,高斯属于其中的一种,而且课件后面还介绍了逻辑回归和高斯判别的区别,总结来说就是我们以后使用逻辑回归的机会会比高斯判别更经常。所以高斯判别也就简单学习到这里了,后面有机会继续探索一下算法原型,争取代码实现出来。

0
0
查看评论

生成学习算法Generative Learning algorithms

前段时间开始研究图像检索,进展困难,于是回归基础,捧起PRML一书,无奈看起来极其晕乎,参考AN的的讲义才有点初步的认识。 1、概述:什么是生成学习算法 两类学习算法:判别学习算法(discriminative learning algorithm)和生成学习算法(generative lear...
  • shuhuai007
  • shuhuai007
  • 2013-08-29 19:41
  • 1883

MachineLearning—Generative Learning algorithms

这一节我们介绍机器学习课程当中的Generative Learning algorithms 生成学习算法,此算法与我们之前学习的逻辑回归等算法不太一样,它主要利用了贝叶斯公式为核心,也因此随后我们将引入朴素贝叶斯,贝叶斯网络等等算法,这些算法都在大数据时代大放异彩,体现出了贝叶斯思想的强大功能, ...
  • qq_14959801
  • qq_14959801
  • 2016-04-27 22:29
  • 635

生成学习算法(Generative Learning Algorithms)

今天我们来聊一聊生成学习算法,内容主要包括生成模型和判别模型的比较,以及生成学习算法的一个例子——高斯判别分析(Gaussian Discriminant Analysis, GDA)。1. 生成模型和判别模型  前面我们讨论的学习算法(线性回归、逻辑回归、softmax等)都有一个共同点,那就是我...
  • isMarvellous
  • isMarvellous
  • 2016-04-22 19:23
  • 6076

机器学习系列-Generative Learning Algorithms

前言目前为止,之前学习的几个算法的模型P(y|x;θ),在给定x的情况下y的条件分布。比如逻辑回归算法中,基础模型P(y|x;θ)的演化为 h(x)=g(θTx),g 是sigmod函数。这类的算法都是直接的去学习p(y|x)或者学习如何将输入x映射到{0,1}这样的标签中,我们称这类算法为判别学习...
  • w401229755
  • w401229755
  • 2017-01-02 23:35
  • 653

生成学习算法Generative Learning algorithms

转载时请注明来源:http://www.cnblogs.com/jerrylead 1判别模型与生成模型 上篇报告中提到的回归模型是判别模型,也就是根据特征值来求结果的概率。形式化表示为,在参数确定的情况下,求解条件概率。通俗的解释为在给定特征后预测结果出现的概率。 比如说要确定一...
  • Real_Myth
  • Real_Myth
  • 2016-08-23 15:44
  • 485

Discriminative Learning和Generative Learning的总体区别

Discriminative 学习算法是一类模型化输入(X)输出(Y)的关系的方法。Discriminative Learning要求X的各个项是相互独立变化的。只需了解X对Y的决定关系,即model P(Y|X).学习的结果就是X参数所决定的Y参数。 Generative学习算法倒过来,是一...
  • dllian
  • dllian
  • 2012-04-24 09:52
  • 941

机器学习系列-Generative Learning Algorithms

前言目前为止,之前学习的几个算法的模型P(y|x;θ),在给定x的情况下y的条件分布。比如逻辑回归算法中,基础模型P(y|x;θ)的演化为 h(x)=g(θTx),g 是sigmod函数。这类的算法都是直接的去学习p(y|x)或者学习如何将输入x映射到{0,1}这样的标签中,我们称这类算法为判别学习...
  • w401229755
  • w401229755
  • 2017-01-02 23:35
  • 653

机器学习系列(10)_如何提高深度学习(和机器学习)的性能

我经常被问到诸如`如何从深度学习模型中得到更好的效果`的问题,类似的问题还有:我如何提升准确度,如果我的神经网络模型性能不佳,我能够做什么? 对于这些问题,我经常这样回答,“我并不知道确切的答案,但是我有很多思路”,接着我会列出了我所能想到的所有**或许能够给性能带来提升**的思路,。 为避免一...
  • yaoqiang2011
  • yaoqiang2011
  • 2016-09-24 23:34
  • 21890

Differential geometry for machine learning (微分几何在机器学习中的应用)

An overview of several uses of differential geometry ideas in machine learning
  • jasonzzj
  • jasonzzj
  • 2016-11-01 16:07
  • 560

CVPR 2016-12-19

[1] arXiv:1612.05601 [pdf, other] Real-Time Detection and Localisation of Fetal Standard Scan Planes in 2D Freehand Ultrasound 标准二维超声扫描中实时检测和胎儿的平面定...
  • u011171235
  • u011171235
  • 2016-12-22 21:43
  • 788
    个人资料
    • 访问:160645次
    • 积分:1982
    • 等级:
    • 排名:千里之外
    • 原创:57篇
    • 转载:1篇
    • 译文:1篇
    • 评论:76条
    最新评论