Stanford大学机器学习公开课(五):生成学习算法、高斯判别、朴素贝叶斯

(一)生成学习算法

在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布。如二分类问题,不管是感知器算法还是逻辑回归算法,都是在解空间中寻找一条直线从而把两种类别的样例分开,对于新的样例,只要判断在直线的哪一侧即可;这种直接对问题求解的方法可以称为判别学习方法。

而生成学习算法则是对两个类别分别进行建模,用新的样例去匹配两个模板,匹配度较高的作为新样例的类别,比如分辨大象(y=1)和狗(y=0),首先,观察大象,然后建立一个大象长什么样子的模型,之后,观察狗,同样建立一个狗长什么样子的模型,最后,为了判断一个新来的动物是狗还是大象,我们将这个动物与大象模型进行匹配,再与狗模型进行匹配,看看这个新的动物更像狗还是更像大象,从而判断这个动物到底是什么。

形式化的说,判别学习方法是直接对p(y|x)进行建模或者直接学习输入空间到输出空间的映射关系,其中,x是某类样例的特征,y是某类样例的分类标记。而生成学习算法是对p(x|y)(条件概率)和p(y)(先验概率)进行建模,然后按照贝叶斯法则求出后验概率p(y|x):


使得后验概率最大的类别y即是新样例的预测值:


(二)高斯判别分析

高斯判别分析(GDA)就是一种生成学习算法,在GDA中,假设p(x|y)属于多变量正态分布。多变量正态分布是正态分布在多维变量下的扩展,它的参数是一个均值向量(mean
vector)μ和协方差矩阵(convariance matrix),其中n是多维变量的向量长度,是对称正定矩阵。多变量正态分布的概率密度函数为:

其中,|Σ|是行列式的值。

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


协方差矩阵由协方差函数Cov得到: 其中,cov的计算过程为:


介绍完多变量正态分布,就正式进入GDA模型的介绍。GDA模型针对的是输入特征为连续值时的分类问题。这个模型的基本假设是目标值y服从伯努利分布,条件概率p(x|y)服从正态分布。于是,他们的概率密度为:


于是,数据集的极大似然函数的对数如下所示:


对极大似然函数对数最大化,就得到了GDA模型的各参数的极大似然估计,即得到了如何使用GDA算法的方法。各参数的极大似然估计如下:



一个二维的GDA模型例子如下图所示:


注意到两个二维高斯分布分别对两类数据进行拟合;他们使用相同的协方差矩阵;但却有不同的均值;在直线所示的部分,p(y=1|x)=p(y=0|x)=0.5。

GDA模型与logistic模型的联系

在公式2中,我们使用p(x|y)p(y)作为p(y|x)的拟合。归一化后,可以得到:


实际上,它可以被表示成逻辑分布的形式:

其中,θ是参数φ,μ0,μ1,Σ某种形式的函数。GDA的后验分布可以表示成逻辑分布形式的合理性,在此没有证明,有兴趣的可以自己证明。下面只给出一个例子用于说明GDA模型与logistic模型的联系。

例:假设有一个一维训练集,包含一些正样本和负样本,如下图x轴的叉和圈,设叉为0,圈为1,用GDA对两类样本分别拟合高斯概率密度函数p(x|y=0)和p(x|y=1),如下图的两个钟形曲线。沿x轴遍历样本,在x轴上方画出相应的p(y=1|x)。如选x轴靠左的点,那么它属于1的概率几乎为0,p(y=1|x)=0,两条钟形曲线交点处,属于0或1的概率相同,p(y=1|x)=0.5,x轴靠右的点,输出1的概率几乎为1,p(y=1|x)=1。最终发现,得到的曲线和sigmoid函数曲线很相似。

简单来讲,就是当使用GDA模型时,p(x|y)属于高斯分布,计算p(y}x)时,几乎能得到和logistic回归中使用的sigmiod函数一样的函数,但实际上还是存在本质区别。

实际上,可以证明,不仅仅当先验概率分布服从多变量正态分布时可以推导出逻辑回归模型,当先验概率分布属于指数分布族中的任何一个分布(比如泊松分布)时都可以推导出逻辑回归模型;而反之则不成立,逻辑回归模型的先验概率分布不一定必须得是指数分布族中的成员;因而也说明了逻辑回归模型在建模上的鲁棒性。

由此,我们得到了推导逻辑回归模型的两种方法。第一种是前面的视频中讲到的通过指数分布族来推导;第二种则是刚才提到的通过生成学习假设先验概率分布的方式进行推导。

那么如何选择GDA与逻辑回归模型呢?由上面的分析可以知道,GDA与逻辑回归是泛化与特化的关系,GDA比逻辑回归有更多的前置假设。当数据服从或大致服从正态分布时,使用GDA会达到更好的效果,因为GDA利用了更多的信息构建模型。但是当数据不服从正态分布时,那么逻辑回归更有效,因为它做出更少的假设,构建的模型更加强壮,更加具有鲁棒性。生成学习还有另外的一个好处,就是可以使用比判别学习模型更少的数据构建出强壮的模型。

(三)朴素贝叶斯

 

GDA针对的是特征向量x为连续值时的问题。而朴素贝叶斯(Navie
Bayes,NB)则针对的是特征向量x为离散值时的问题。

NB算法的标准应用,也是最常见的应用是文本分类问题,例如邮件是否为垃圾邮件的分类。

同其它分类算法一样,NB算法也需要有相应的标准好的数据集。对于文本分类问题来说,使用向量空间模型(vector
space
model,VSM)来表示文本。何为VSM?首先,我们需要有一个词典,词典的来源可以是现有的词典,也可以是从数据中统计出来的词典,对于每个文本,我们用长度等于词典大小的向量表示,如果文本包含某个词,该词在词典中的索引为index,则表示文本的向量的index出设为1,否则为0。

如果按直接对p(x|y)进行建模,那么会遇到参数过多的问题,我们假设词典里拥有50000个词,即向量长度为50000,向量中每个分量的取值为{0,1},那么可能有250000个可能的结果,对其建模则需要250000-1个参数。因而,NB模型做了另外的假设,成为朴素贝叶斯假设,由朴素贝叶斯假设推导出的分类器称为朴素贝叶斯分类器。

朴素贝叶斯假设即是在给定分类y后,假设特征向量中的各个分量是相互独立的。如下式所示:


朴素贝叶斯假设在文本分类问题上的解释是文本中出现某词语时不会影响其它词语在文本中的概率。

以VSM与NB假设为基础,我们就得到了NB方法的参数:


于是,我们就得到了NB方法的极大似然估计的对数函数:

其中,n为词典的大小。最大化该函数,我们得到参数的极大似然估计:

对于新样本,按照如下公式计算其概率值:

以上就是最基本的NB方法。注意到特征向量的每个分量都智能取值{0,1},我们可以将其扩展为{0,1,2,...k},而概率分布由伯努利分布变为多项式分布。对于一些连续的变量,我们可以将其离散化使其可以使用NB方法解决,离散化的方法为将连续变量按值分段。

(四)拉普拉斯平滑

拉普拉斯平滑(Laplace
Smoothing)又被称为加1平滑,是比较常用的平滑方法。平滑方法的存在是为了解决零概率问题。

所谓的零概率问题,就是在计算新实例的概率时,如果某个分量在训练集中从没出现过,会导致整个实例的概率计算结果为0。针对文本分类问题就是当一个词语在训练集中没有出现过,那么该词语的概率为0,使用连乘计算文本出现的概率时,整个文本出现的概率也为0。这显然是不合理的,因为不能因为一个事件没有观测到就判断该事件的概率为0。

对于一个随机变量z,它的取值范围是{1,2,3...,k},对于m次试验的观测结果{z(1),z(2),...z(m))},极大似然估计按照下式计算:

使用Laplace平滑后,计算公式变为:


即在分母上加上取值范围的大小,在分子加1。

回到NB算法,我们可以修正各分量的计算公式:

时间: 2024-10-13 11:45:18

Stanford大学机器学习公开课(五):生成学习算法、高斯判别、朴素贝叶斯的相关文章

Stanford大学机器学习公开课(六):朴素贝叶斯多项式模型、神经网络、SVM初步

(一)朴素贝叶斯多项式事件模型 在上篇笔记中,那个最基本的NB模型被称为多元伯努利事件模型(Multivariate Bernoulli Event Model,以下简称 NB-MBEM).该模型有多种扩展,一种是在上一篇笔记中已经提到的每个分量的多值化,即将p(xi|y)由伯努利分布扩展到多项式分布:还有一种在上一篇笔记中也已经提到,即将连续变量值离散化.本文将要介绍一种与多元伯努利事件模型有较大区别的NB模型,即多项式事件模型(Multinomial Event Model,一下简称NB-M

Stanford大学机器学习公开课(二):监督学习应用与梯度下降

本课内容: 1.线性回归 2.梯度下降 3.正规方程组 监督学习:告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案 1.线性回归 问题引入:假设有一房屋销售的数据如下: 引入通用符号: m =训练样本数 x =输入变量(特征) y =输出变量(目标变量) (x,y)—一个样本 ith—第i个训练样本=(x(i),y(i)) 本例中:m:数据个数,x:房屋大小,y:价格 监督学习过程: 1) 将训练样本提供给学习算法 2) 算法生成一个输出函数(一般用h表示,成为假设) 3)

Stanford大学机器学习公开课(四):牛顿法、指数分布族、广义线性模型

(一)牛顿法解最大似然估计 牛顿方法(Newton's Method)与梯度下降(Gradient Descent)方法的功能一样,都是对解空间进行搜索的方法.其基本思想如下: 对于一个函数f(x),如果我们要求函数值为0时的x,如图所示: 我们先随机选一个点,然后求出该点的切线,即导数,延长它使之与x轴相交,以相交时的x的值作为下一次迭代的值. 更新规则为: 那么如何将牛顿方法应用到机器学习问题求解中呢? 对于机器学习问题,我们优化的目标函数为极大似然估计L,当极大似然估计函数取得最大时,其导

Stanford大学机器学习公开课(三):局部加权回归、最小二乘的概率解释、逻辑回归、感知器算法

(一)局部加权回归 通常情况下的线性拟合不能很好地预测所有的值,因为它容易导致欠拟合(under fitting).如下图的左图.而多项式拟合能拟合所有数据,但是在预测新样本的时候又会变得很糟糕,因为它导致数据的 过拟合(overfitting),不符合数据真实的模型.如下图的右图. 下面来讲一种非参数学习方法——局部加权回归(LWR).为什么局部加权回归叫做非参数学习方法呢?首先,参数学习方法是这样一种方法:在训练完成所有数据后得到一系列训练参数,然后根据训练参数来预测新样本的值,这时不再依赖

斯坦福大学机器学习公开课学习—1.机器学习的动机与应用

斯坦福大学机器学习公开课学习—1.机器学习的动机与应用 介绍了课程主要内容包含以下4点 1.supervised learning(监督学习) 2.learning theory(学习理论) 3.unsupervised learning(非监督学习) 4.reinforcement learning(强化学习) 其中介绍了很多例子,有一些例子还是非常有趣的: 而且通过课程内容我发现机器学习的应用范围真的比之前想象的大多了,而且现在也的确在很多领域取得了很大的成就. 监督学习介绍了回归问题,分类

斯坦福大学机器学习公开课 ---Octave Tutorial Transcript

斯坦福大学机器学习公开课 ---Octave Tutorial Transcript Prompt (命令窗口提示符)can be changed with the command PS1('>> '). Transcript 1  Basics 1.1 Basic algebra in Octave Elementary +; -; *; / ;            %arithmetic operations. == ; ~=;&&; ||; xor ;  % logic

斯坦福大学机器学习公开课---Programming Exercise 1: Linear Regression

斯坦福大学机器学习公开课---Programming Exercise 1: Linear Regression 1  Linear regression with one variable In thispart of this exercise, you will implement linear regression with one variableto predict profits for a food truck. Suppose you are the CEO of a rest

斯坦福大学机器学习公开课:Programming Exercise 2: Logistic Regression

斯坦福大学机器学习公开课:Programming Exercise 2: Logistic Regression---Matlab实现 1 Logistic Regression In this part of the exercise, I will build a logistic regression model to predict whether a student gets admitted into a university. You want to determine each

《机器学习实战》学习笔记:基于朴素贝叶斯的垃圾邮件过滤

概率是许多机器学习算法的基础,在前面生成决策树的过程中使用了一小部分关于概率的知识,即统计特征在数据集中取某个特定值的次数,然后除以数据集的实例总数,得到特征取该值的概率. 之前的基础实验中简单实现了朴素贝叶斯分类器,并正确执行了文本分类,这一节将贝叶斯运用到实际场景,垃圾邮件过滤这一实际应用. 实例:使用朴素贝叶斯过滤垃圾邮件 在上一节:http://blog.csdn.net/liyuefeilong/article/details/48383175中,使用了简单的文本文件,并从中提取了字符