斯坦福大学公开课机器学习课程(Andrew Ng)六朴素贝叶斯算法

来源:互联网 发布:php 对象类型 编辑:程序博客网 时间:2024/05/19 03:29

课程概要:

1.朴素贝叶斯多项式事件模型

2.神经网络

3.支持向量机


一、朴素贝叶斯多项式事件模型

      

     在上一篇中提到过的朴素贝叶斯中,主要是二元值,即以0,1标示邮件中的词是否在词典中出现。这个最基本的NB模型也被称为多元伯努利事件模型(NB-MBEN),而这一篇要讲的为多项式事件模型(NB-MEN)。

NB-MBEN与NB-MEN的区别

首先,NB-MEM 改变了特征向量的表示方法。在 NB-MBEM 中,特征向量的每个分量代表词典中该 index 上的词语是否在文本中出现过,

其取值范围为{0,1},特征向量的长度为词典的大小。

而在 NB-MEM 中,特征向量中的每个分量的值是文本中处于该分量的位置的词语在词典中的索引,其取值范围是{1,2,…,|V|},|V|是词典的大小,

特征向量的长度为相应样例文本中词语的数目。
举例来说,在NB-MBEM 中,一篇文档的特征向量可能如下所示:

其在 NB-MEM 中的向量表示则如下所示:

在 NB-MEM 中,假设文本的生成过程如下:
确定文本的类别,比如是否为垃圾文本、是财经类还是教育类等;

遍历文本的各个位置,以相同的多项式分布生成各个词语,生成词语时相互独立。

由上面的生成过程可知,NB-MEM 假设文本类别服从多项式分布或伯努利
布,而词典中所有的词语服从多项式分布。生成过程还可如下解释,即先在类
所服从的多项式分布中选取类别,然后遍历整个文本,在词语所服从的多项式
布中选取词语,放到文本中相应的位置上。
于是,NB-MEM 的参数如下所示:

上述式子含义分别为垃圾邮件频率,当为垃圾邮件时在词典中k位置的词出现频率,和当为非垃圾邮件时在词典中k位置的词出现频率。(而在NB-MBEN中标示的是当为垃圾邮件或非垃圾邮件时词典中某词是否出现的频率)

所以参数在训练集上的极大似然估计为:

极大化该函数,得到各参数的极大似然估计:

上面第一个式子,分子的意思是,对所有标签为1的邮件求和,之后对垃圾邮件中的词k(词典中第k个位置的词)求和,所以分子实际上就是训练集中所有垃圾邮件中词k出现的次数。分母是训练集中所有垃圾邮件的长度。比值的含义就是所有垃圾邮件中,词k占的比例。表示生成垃圾邮件时选择词k的频率。第二个式子的含义和第一个差不多,只是垃圾邮件变成了非垃圾邮件。第三个式子的含义为垃圾邮件在所有邮件中的比例。

应用Laplace平滑,分子加1,分母加总词数(字典大小,xi可能取值的数目):


二、神经网络

     

     之前介绍的无论是感知器算法还是逻辑斯蒂回归还是刚才所介绍的朴素贝
叶斯模型(朴素贝叶斯算法是前置假设是多项式分布的多项式模型,所以也属于

逻辑斯蒂回归模型),其最终结果反映在数据上都是一条直线或一个超平面,但
如果数据并不是线性可分的话,这些模型的性能会变差。针对该问题,涌现出很
多对非线性可分数据进行分类的算法,神经网络(neural network)是其中最早出
现的一种。

对于逻辑斯蒂回归模型,可以将其表示为下图所示:

其中,xi 是输入的特征向量的各个分量,sigmoid 是计算单元,output 是函
数输出。而神经网络则是将这样的计算单元组合起来,如下所示:

将之前画的小单元拼在一起,得到神经网络。特征输入到若干个sigmoid单元,再输入到另外一个sigmoid单元,

得到输出。中间节点的输出值设为a1,a2,a3(sigmoid单元参数)。这些中间节点称为隐藏层,神经网络可以有多个隐藏层。

神经网络算法的一大特点就在于不知道隐藏层计算的东西的意义,另一个特点在于神经网络有比较多的局
部最优值,可以通过多次随机设定初始值然后运行梯度下降算法获得最优值。

四个sigmoid单元之间的参数关系如下式:

学习这些参数需要用到成本函数比如:


这是第一次视频里就提到的二次成本函数(quadratic cost function),可以使
用梯度下降方法最小化成本函数来求得参数,在神经网络中的梯度下降算法有一
个专门的名称叫做反向传播算法(back propagation)。

三、支持向量机铺垫--函数间隔与几何间隔

     

     要理解支持向量机(Support  Vector  Machine,SVM),必须先了解函数间隔(functional margin)与几何间隔(geometric margin) 。

考虑logistic回归:
预测1等价于这里写图片描述等价于这里写图片描述这里写图片描述越大,这里写图片描述就越大,就越高的程度预测1,也就是可以说如果这里写图片描述,那么y=1. 类似地,如果这里写图片描述那么y=0.
如果能够找到参数使得当y(i)=1时,这里写图片描述,而当y(i)=0时有这里写图片描述. 那么这个预测对训练集很好的.

为了接下来SVM的讨论,需要变换一下符号,类别 y可取值由{0,1}变为{-1,1},假设函数g为

而目标函数 h也由:

变为:

函数间隔

    由公式 16,我们得知,w,b可以唯一的确定一个超平面。一个点(x(i),y(i))到由w,b决定的超平面的函数间隔是:

如果y(i)=1,为了获得较大的函数间隔,需要令wTx(i)+b >> 0

如果y(i)=-1,为了获得较大的函数间隔,需要令wTx(i)+b << 0;

如果y(i)(wTx(i)+b) > 0,意味着分类结果正确

一个超平面(w,b)和整个训练集的函数间隔定义为:

即相对于整个训练集的函数间隔定义为所有相对于样本的函数间隔的最坏情形(因为距离越远越好)。

函数间隔的问题在于只要成倍增大 w,b,就能是函数间隔变大。为了解决这个问题,就有了几何间隔的定义。

几何间隔

       几何距离定义为:一个训练样本对应的点到由超平面确定的分隔线的距离。如下图A到分隔线的距离AB就是几何距离。

和分隔线垂直的单位向量表示为:w/||w||AB这段距离表示为γ(i),γ上有小三角表示函数间隔,没有表示几何间隔。若A点表示x(i),那么点B表示为:

由于点B在分隔线上,它应该还满足:

可以解出:

上式说明,对于一个训练样本x(i),到由参数wb确定的分隔平面之间的距离,可以由上式得到。

由于上述一直假设对样本进行了正确的分类,所以更一般的,将几何间隔定义为:

这个定义和函数间隔很相似,不同点是对向量w进行了标准化。同样,希望几何间隔也是越大越好。

 

结论:如果||w||=1,函数间隔等于几何间隔。更一般的,几何间隔等于函数间隔除以||w||

 

一个超平面(w,b)和整个训练集的几何间隔定义为:

和函数间隔类似,取样本中最小的几何间隔。

 

最大间隔分类器可以看做是支撑向量机的前身,是一种学习算法,选择特定的wb,使几何间隔最大化。最大分类间隔是下述这样的优化问题:

即选择γ,wb是γ最大,同时满足条件:所选取的最大几何间隔必须保证每个样本的结合间隔至少为γ。

几何间隔与函数间隔的意义在于为根据训练集合得到的模型增添了一个指标,使得模型不仅保证分类结果的正确性,更要进一步保证分类结果的确定性。


参考:

斯坦福ML公开课笔记

http://blog.csdn.net/maverick1990/article/details/16115077



阅读全文
2 0