斯坦福大学机器学习-note2

Part IV 生成学习算法


至今,我们已经大体讨论了这样的学习算法模型:p(y|x; θ),给定x时,y的条件概率分布。例如,逻辑回归模型:p(y|x; θ) ,其中:

这里函数g是一个sigmoid函数。在本文中,我们将讨论另一种类型的学习算法。

考虑这样的一个分类问题:我们需要根据动物的特征来,区分大象(y = 1)和狗(y = 0),对于给定训练集合,逻辑回归或者感知算法,需要尝试找到一条直线,用来作为区分大象和狗

的决策边界。然后,当分类一个新的动物无论是作为大象或狗,分类器检它的特征落在决策边界的那一边,并做出相应的判断。

这里提出一种不同的思路。首先,根据大象和狗的特征,建立2个不同的模型。然后,为了对一个动物进行分类,我们分别用2个模型对齐进行匹配,并在训练集的先验知识条件下,判断

该动物更像大象,还是更像狗。

       如果一个算法直接对p(y | x) 进行学习(如逻辑回归),或者直接把输入X 映射到输出标签{0,1}。那么我们把这类算法称为:判别学习算法(discriminativelearning algorithm)。

这里,我们将讨论一种新的算法,它是对p{x | y}、p{y}进行建模,这类算法称为:生成学习算法(generative learning algorithm)。例如,假如y代表动物的类别,且狗

(y=0),大象(y=1)。那么p{x|y=0}模型表示狗的特征分布。p{x|y=1}模型表示大象的特征分布。

当建模完p{y} (先验概率)和 p{x|y}(条件概率),就可以使用贝叶斯公式推导y在给定x的后验分布:

上式,分母p(x) = p(x|y = 1)p(y = 1) + p(x|y =0)p(y = 0),而p(x|y) 和p(y)也可以从样本集的学习获得。事实上,通过计算p(y|x)获得一个预测,根本不需要知道分母,因为:


1、高斯判别分析

第一个生成学习算法,我们来看看是高斯判别分析(GDA)。在这个模型中,我们假设p(x | y)是根据多元正态分布。

在我们开始介绍GDA模型本身之前,简单了解下多元正态分布的性质。

1.1、多元正态分布

多元高斯分布也称为多变量高斯分布,其参数是:均值向量µ和协方差矩阵Σ(正定矩阵)通常写作“N (µ, Σ)“:

对于服从多变量正态分布的随机变量 x ,均值由下面公式得到:

     
协方差矩阵由协方差函数Cov得到:
Cov(x) = Σ
下面几个例子,将展示多元高斯分布的概率密度函数:



上面的三个图片,均值都为0向量。最左边是一个标准正态分布,协方差是一个单位矩阵I(2*2identity matrix)。中间的图片协方差为0.6*I。右边的图片协方差为2*I。可以看出,当协 方差矩阵越大时候,概率分布越为”展开“。 当协方差矩阵越小时候,概率分布越为“压缩“。
更多的例子如下:


上图的高斯分布,均值都为0向量,协方差矩阵分别如下:


最左边的图形,是我们熟悉标准高斯分布,可以看到,随着增加矩阵的斜对角线的值,概率密度函数变得更加“压缩”向45度线(given by x1=x2)。
从概率密度的轮廓,我们可以更清楚的看到这一点:



继续改变协方差矩阵,获得如下概率密度轮廓:

上图的协方差矩阵:



最后一个例子,我们让协方差矩阵固定为单位矩阵,然后修改均值u,得到的概率密度函数的图形如下:


上图对应的均值向量为:



1.2 高斯判别分析模型

当我们有这么一个分类问题,它的输入特征是连续随机变量。那么我们就可以应用高斯判别分析(GDA):使用多元高斯分布对 p(x|y)进行建模,具体模型如下:


写出的分布是这样的:


这里,我们的模型的参数是φ,Σ,μ0和μ1(注意,有2个不同的均值向量,但只有一个协方差矩阵)。其对数似然函数如下:


求出最大似然估计为:



得出参数后,我们的模型可以形象的展示如下:


上图是训练样本,及2个多元高斯分布的等高线。由2个高斯分布可以得出一个分类边界(p(y= 1|x) = 0.5)。


1.3 讨论:GDA和逻辑回归

略........


2、朴素贝叶斯

在GDA模型中,特征向量是连续实数变量。现在我们将讨论另一种算法,它的特性向量是离散值。

考虑使用机器学习建立一个垃圾邮件分类系统。该系统能够自动过滤垃圾邮件,或者把垃圾信息归纳到单独的邮件组。事实上,邮件分类是文本分类的一个例子。

假如,现在我们有一个训练集(该集合中的邮件,被标记为垃圾或非垃圾邮件)。

首先,我们使用一个特征向量来代表一份邮件。该特征向量的长度等于字典的词汇个数,如果一份邮件包含了字典的 i 个词汇,则特征向量的xi = 1,否则 xi = 0。

例如,下面这个特征向量,代表邮件包含"a"和"buy" ,但不包含"aardvark"、"aardwolf"、"zygmurgy"。


邮件被编码成一个词汇表向量,该向量的维度等于字典的词汇个数。然后我们对 p(x|y) 进行建模。假如一个词汇表有50000个词语,那么x是一个5000维向量。如果采用多项式建模的方

式,有2^50000 - 1个参数,这明显行不通。因此,为了对 p(x|y) 建模,我们作出一个强假设:假设对于给定的y,xi 之间是条件独立的。

这个假设称为朴素贝叶斯假设,所得算法称为朴素贝叶斯分类器

根据假设,那么有:



上面第一行等号是概率的基本性质,第二行等号应用了朴素贝叶斯假设。我们注意到,即使朴素贝叶斯假设是一个非常强的假设,由此产生的算法行对诸多问题仍然十分有效。

我们模型的参数为:φi|y=1=p(xi= 1|y= 1), φi|y=0=p(xi=1|y= 0), and φy=p(y= 1)。通常,对于给定的训练集,{x(i),y(i)};i={1,...,m}。

可以写出联合似然估计:


根据似然估计,求出参数值:



上式中,"^" 符号表示逻辑与,上式有一个非常自然的解释。例如 φj | y=1 代表垃圾邮件中第j个词汇出现的比例。

有了上述参数。预测一个新的样本特征x,就可以简单的计算:


然后,挑选出哪个类别有最高的后验概率,则新样本属于该类别。

最后,虽然上面讨论的朴素贝叶斯算法,主要的应用情景是样本特性x 服从伯努利分布。但特征是可以推广到多项分布。另外,事实上,即使一些原始输入特征(例如,房屋的居住面

积,在我们前面的例子)是连续变量。通过离散化后也可以应用朴素贝叶斯算法的。

当原始的连续值不能被一个多元正态分布很好的建模,离散后,再使用朴素贝叶斯(代替GDA)通常会导致更好的分类器。


2.1Laplace smoothing

略.....



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值