机器学习斯坦福大学讲义.docx_第1页
机器学习斯坦福大学讲义.docx_第2页
机器学习斯坦福大学讲义.docx_第3页
机器学习斯坦福大学讲义.docx_第4页
机器学习斯坦福大学讲义.docx_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机器学习斯坦福大学讲义第一课机器学习的动机与应用工具:需正版:Matlab,免费:Octave定义(Arthur Samuel 1959):在不直接针对问题进行编程的情况下,赋予计算机学习能力的研究领域。例:Arthur的下棋程序,计算走每一步获胜的概率,最终打败程序作者本人。(感觉使用决策树思想)定义2(Tom Mitchell 1998):一个合理的学习问题应该这样定义:对一个计算机程序来说,给它一个任务T和一个性能测量方法P,如果在经验E的影响下,P对T的测量结果得到了改进,那么就说改程序从E中学习了。如上例:E:程序不断和自己下棋的经历,T:下棋,P:和人类选手对弈的胜率课程的四大部分:1、有监督学习(1)回归问题例:收集某地房屋价格统计、房屋大小和价格对应情况:画出一条拟合曲线,就可以通过房屋大小估计价格。-有监督学习即给出一个数据集(正确的房屋价格及对应大小)-此例为回归问题。回归意味着需要预测的变量是连续的(2)分类问题分类问题中需要处理的变量是离散的例:判断肿瘤是恶性还是两性-收集肿瘤大小和恶性/良性数据,大小为横轴,是否是恶性为纵轴(只有0,1)画图-肿瘤可能由多个因素导致,引入年龄,大小为横轴,年龄为纵轴,恶性以叉表示,良性以圆圈表示画图,分析患肿瘤的区域-还可引入更多属性,画在多维空间中-无限维空间如何处理?将无限维映射到内存的算法?2、学习理论学习理论即解释学习型算法有效的原因(学习算法的理论基础)寻找什么样的算法能很好地近似不同的函数,训练集的规模是否合适3、无监督学习例:如上述肿瘤例子,图中的点不知道正确答案,而是由你从中找去一定的结构,即聚类。应用于生物基因工程,图像处理,计算机视觉等领域例:鸡尾酒会问题在嘈杂的鸡尾酒会中,将你感兴趣的声音提取出来运用两个不同位置的麦克分开来自不同位置的声音还能应用于文本处理等领域使用ICA算法,Matlab一行代码即可解决4、强化学习通过决策产生的结论或对或错,故产生一系列的决策。例:对一个模型飞机编写一个起飞程序,飞机在程序做了一连串错误决策是才会坠毁,只要做出连续的整体还不错的决策,即可保持飞机正常飞行强化学习的基本概念:回报函数(正反馈及负反馈),程序做出正确决策时给出正反馈,反之亦然。程序不断做出决策,在不断尝试获得尽量多的正反馈时,逐渐学习并做出正确决策关键在于要定义什么是正确决策,什么是错误决策,再设计算法获取尽量多的正反馈第二课监督学习应用与梯度下降本课内容:1、线性回归2、梯度下降3、正规方程组(复习)监督学习:告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案1、线性回归例:Alvin汽车,先让人开车,Alvin摄像头观看(训练),而后实现自动驾驶。本质是一个回归问题,汽车尝试预测行驶方向。例:上一节课的房屋大小与价格数据集引入通用符号:m =训练样本数x =输入变量(特征)y =输出变量(目标变量)(x,y) 一个样本第i个训练样本=本例中:m:数据个数,x:房屋大小,y:价格监督学习过程:1)将训练样本提供给学习算法2)算法生成一个输出函数(一般用h表示,成为假设)3)这个函数接收输入,输出结果。(本例中为,接收房屋面积,输出房价)将x映射到y。如下图所示:对假设进行线性表示:通常来说,回归问题有多个输入特征。如上例中,我们还已知房屋的卧室数,即有个第二个特征。即表示大小,表示卧室数,则可将假设写成:。为了将公式写整洁,定义,则h可写成:n =特征数目,:参数。选择的目的,是使h(x)与y的平方差尽量小。又由于有m个训练样本,需要计算每个样本的平方差,最后为了简化结果乘以1/2,即:我们要做的就是求:min(J()求min(J()方法:梯度下降和正规方程组2、梯度下降梯度下降是一种搜索算法,基本思想:先给出参数向量一个初始值,比如0向量;不断改变,使得J()不断缩小。改变的方法:梯度下降如图所示,水平坐标轴表示,垂直坐标表示J()一开始选择0向量作为初始值,假设该三维图为一个三维地表,0向量的点位于一座“山”上。梯度下降的方法是,你环视一周,寻找下降最快的路径,即为梯度的方向,每次下降一小步,再环视四周,继续下降,以此类推。结果到达一个局部最小值,如下图:当然,若初始点不同,则结果可能为另一个完全不同的局部最小值,如下:表明梯度下降的结果依赖于参数初始值。梯度下降算法的数学表示:为赋值运算符,即表示程序中的的赋值语句。每一次将减去对求偏导的结果,即沿最陡峭的“山坡”下降将偏导数展开分析:代入上式:学习速度,即决定你下山时每一步迈多大。设的过小,收敛时间长,设的过大,可能会超过最小值(1)批梯度下降算法:上述为处理一个训练样本的公式,将其派生成包含m个训练样本的算法,循环下式直至收敛:复杂度分析:对于每个的每次迭代,即上式所示,时间为O(m)每次迭代(走一步)需要计算n个特征的梯度值,复杂度为O(mn)一般来说,这种二次函数的的三维图形为一个碗状,有一个唯一的全局最小值。其等高线为一个套一个的椭圆形,运用梯度下降会快速收敛到圆心。梯度下降性质:接近收敛时,每次的步子会越来越小。其原因是每次减去乘以梯度,但是梯度会越来越小,所以步子会越来越小。下图为使用梯度下降拟合的上例房屋大小和价格的曲线检测是否收敛的方法:1)检测两次迭代的改变量,若不再变化,则判定收敛2)更常用的方法:检验,若不再变化,判定收敛批梯度下降算法的优点是能找到局部最优解,但是若训练样本m很大的话,其每次迭代都要计算所有样本的偏导数的和,时间过慢,于是采用下述另一种梯度下降方法。(2)随机梯度下降算法(增量梯度下降算法):每次计算不需要再遍历所有数据,而是只需计算样本i即可。即批梯度下降中,走一步为考虑m个样本;随机梯度下降中,走一步只考虑1个样本。每次迭代复杂度为O(n)。当m个样本用完时,继续循环到第1个样本。上述使用了迭代的方法求最小值,实际上对于这类特定的最小二乘回归问题,或者普通最小二乘问题,存在其他方法给出最小值,接下来这种方法可以给出参数向量的解析表达式,如此一来就不需要迭代求解了。3、正规方程组给定一个函数J,J是一个关于参数数组的函数,定义J的梯度关于的导数,它自己也是一个向量。向量大小为n+1维(从0到n),如下:所以,梯度下降算法可写成:更普遍的讲,对于一个函数f,f的功能是将一个m*n的矩阵映射到实数空间上,即:假设输入为m*n大小的矩阵A,定义f关于矩阵A的导数为:导数本身也是个矩阵,包含了f关于A的每个元素的偏导数。如果A是一个方阵,即n*n的矩阵,则将A的迹定义为A的对角元素之和,即:trA即为tr(A)的简化。一些关于迹运算符和导数的定理:1)trAB = trBA2)trABC = trCAB = trBCA3)4)5)若,tra = a6)有了上述性质,可以开始推导了:定义矩阵X,称为设计矩阵,包含了训练集中所有输入的矩阵,第i行为第i组输入数据,即:则由于,所以可得:又因为对于向量z,有,则有:由上述最后一个性质可得:通过上述6个性质,推导:倒数第三行中,运用最后一个性质将置为0,则有:称为正规方程组可得:第三课欠拟合与过拟合概念本次课程大纲:1、局部加权回归:线性回归的变化版本2、概率解释:另一种可能的对于线性回归的解释3、Logistic回归:基于2的一个分类算法4、感知器算法:对于3的延伸,简要讲复习:第i个训练样本令,以参数向量为条件,对于输入x,输出为:n为特征数量定义成本函数J,定义为:m为训练样本通过正规方程组推导的结论:1、过拟合与欠拟合通常,你选择交给学习算法处理的特征的方式对算法的工作过程有很大影响。例:上次课的例子中,用x1表示房间大小。通过线性回归,在横轴为房间大小,纵轴为价格的图中,画出拟合曲线。回归的曲线方程为:若定义特征集合为:x1表示房子大小,x2表示房子大小的平方,使用相同的算法,拟合得到一个二次函数,在图中即为一个抛物线,即:以此类推,若训练集有7个数据,则可拟合出最高6次的多项式,可以找到一条完美的曲线,该曲线经过每个数据点。但是这样的模型又过于复杂,拟合结果仅仅反映了所给的特定数据的特质,不具有通过房屋大小来估计房价的普遍性。而线性回归的结果可能无法捕获所有训练集的信息。所以,对于一个监督学习模型来说,过小的特征集合使得模型过于简单,过大的特征集合使得模型过于复杂。对于特征集过小的情况,称之为欠拟合(underfitting);对于特征集过大的情况,称之为过拟合(overfitting)解决此类学习问题的方法:1)特征选择算法:一类自动化算法,在这类回归问题中选择用到的特征2)非参数学习算法:缓解对于选取特征的需求,引出局部加权回归参数学习算法(parametric learning algorithm)定义:参数学习算法是一类有固定数目参数,以用来进行数据拟合的算法。设该固定的参数集合为。线性回归即使参数学习算法的一个例子非参数学习算法(Non-parametric learning algorithm)定义:一个参数数量会随m(训练集大小)增长的算法。通常定义为参数数量虽m线性增长。换句话说,就是算法所需要的东西会随着训练集合线性增长,算法的维持是基于整个训练集合的,即使是在学习以后。2、局部加权回归(Locally Weighted Regression)一种特定的非参数学习算法。也称作Loess。算法思想:假设对于一个确定的查询点x,在x处对你的假设h(x)求值。对于线性回归,步骤如下:1)拟合出,使最小2)返回对于局部加权回归,当要处理x时:1)检查数据集合,并且只考虑位于x周围的固定区域内的数据点2)对这个区域内的点做线性回归,拟合出一条直线3)根据这条拟合直线对x的输出,作为算法返回的结果用数学语言描述即:1)拟合出,使最小2)w为权值,有很多可能的选择,比如:-其意义在于,所选取的x(i)越接近x,相应的w(i)越接近1;x(i)越远离x,w(i)越接近0。直观的说,就是离得近的点权值大,离得远的点权值小。-这个衰减函数比较具有普遍意义,虽然它的曲线是钟形的,但不是高斯分布。-被称作波长函数,它控制了权值随距离下降的速率。它越小,钟形越窄,w衰减的很快;它越大,衰减的就越慢。3)返回总结:对于局部加权回归,每进行一次预测,都要重新拟合一条曲线。但如果沿着x轴对每个点都进行同样的操作,你会得到对于这个数据集的局部加权回归预测结果,追踪到一条非线性曲线。*局部加权回归的问题:由于每次进行预测都要根据训练集拟合曲线,若训练集太大,每次进行预测的用到的训练集就会变得很大,有方法可以让局部加权回归对于大型数据集更高效,详情参见Andrew Moore的关于KD-tree的工作。3、概率解释概率解释所解决的问题:在线性回归中,为什么选择最小二乘作为计算参数的指标,使得假设预测出的值和真正y值之间面积的平方最小化?我们提供一组假设,证明在这组假设下最小二乘是有意义的,但是这组假设不唯一,还有其他很多方法可以证明其有意义。(1)假设1:假设输入与输出为线性函数关系,表示为:其中,为误差项,这个参数可以理解为对未建模效应的捕获,如果还有其他特征,这个误差项表示了一种我们没有捕获的特征,或者看成一种随机的噪声。假设服从某个概率分布,如高斯分布(正态分布):,表示一个均值是0,方差是的高斯分布。高斯分布的概率密度函数:根据上述两式可得:即,在给定了特征与参数之后,输出是一个服从高斯分布的随机变量,可描述为:*为什么选取高斯分布?1)便于数学处理2)对绝大多数问题,如果使用了线性回归模型,然后测量误差分布,通常会发现误差是高斯分布的。3)中心极限定律:若干独立的随机变量之和趋向于服从高斯分布。若误差有多个因素导致,这些因素造成的效应的总和接近服从高斯分布。注意:并不是一个随机变量,而是一个尝试估计的值,就是说它本身是一个常量,只不过我们不知道它的值,所以上式中用分号表示。分号应读作“以作为参数”,上式读作“给定x(i)以为参数的y(i)的概率服从高斯分布”。假设每个为IID(independently and identically distributed)独立同分布即误差项彼此之间是独立的,并且他们服从均值和方差相同的高斯分布(2)假设2:设的似然性为(即给定x(i)以为参数的y(i)的概率):由于是独立同分布,所以上式可写成所有分布的乘积:(3)假设3:极大似然估计:选取使似然性最大化(数据出现的可能性尽可能大)定义对数似然函数为:上式两个加项,前一项为常数。所以,使似然函数最大,就是使后一项最小,即:这一项就是之前的,由此得证,即之前的最小二乘法计算参数,实际上是假设了误差项满足高斯分布,且独立同分布的情况,使似然最大化来计算参数。注意:高斯分布的方差对最终结果没有影响,由于方差一定为正数,所以无论取什么值,最后结果都相同。这个性质会在下节课讲到。4、Logistic回归这是我们要学习的第一个分类算法。之前的回归问题尝试预测的变量y是连续变量,在这个分类算法中,变量y是离散的,y只取0,1两个值。一般这种离散二值分类问题用线性回归效果不好。比如x3,y=1,那么当x3的样本占得比例很大是,线性回归的直线斜率就会越来越小,y=0.5时对应的x判决点就会比3大,造成预测错误。若y取值0,1,首先改变假设的形式,使假设得到的值总在0,1之间,即:所以,选取如下函数:其中:g函数一般被称为logistic函数,图像如下:z很小时,g(z)趋于0,z很大时,g(z)趋于1,z=0时,g(z)=0.5对假设的概率解释:假设给定x以为参数的y=1和y=0的概率:可以简写成:参数的似然性:求对数似然性:为了使似然性最大化,类似于线性回归使用梯度下降的方法,求对数似然性对的偏导,即:因为求最大值,此时为梯度上升。偏导数展开:则:即类似上节课的随机梯度上升算法,形式上和线性回归是相同的,只是符号相反,为logistic函数,但实质上和线性回归是不同的学习算法。5、感知器算法在logistic方法中,g(z)会生成0,1之间的小数,但如何是g(z)只生成0或1?所以,感知器算法将g(z)定义如下:同样令,和logistic回归的梯度上升算法类似,学习规则如下:尽管看起来和之前的学习算法类似,但感知器算法是一种非常简便的学习算法,临界值和输出只能是0或1,是比logistic更简单的算法。后续讲到学习理论是,会将其作为基本的构造步骤。第四课牛顿方法本次课程大纲:1、牛顿方法:对Logistic模型进行拟合2、指数分布族3、广义线性模型(GLM):联系Logistic回归和最小二乘模型复习:Logistic回归:分类算法假设给定x以为参数的y=1和y=0的概率:求对数似然性:对其求偏导数,应用梯度上升方法,求得:本次课程介绍的牛顿方法是一种比梯度上升快很多的方法,用于拟合Logistic回归1、牛顿方法假设有函数,需要找使=0的步骤:1)给出一个的初始值2)对求导,求导数为0时的值(就是求切线与x轴交点)3)重复步骤2因为该点的导数值即为切线斜率,而斜率=该点y轴的值/该点x轴的变化值,所以每次的变化值:*使用这个方法需要f满足一定条件,适用于Logistic回归和广义线性模型*一般初始化为0应用于Logistic回归:求对数似然的最大值,即求为0时的,根据上述推论,更新规则如下:牛顿方法的收敛速度:二次收敛每次迭代使解的有效数字的数目加倍:假设当前误差是0.1,一次迭代后,误差为0.001,再一次迭代,误差为0.0000001。该性质当解距离最优质的足够近才会发现。牛顿方法的一般化:是一个向量而不是一个数字,一般化的公式为:是目标函数的梯度,H为Hessian矩阵,规模是n*n,n为特征的数量,它的每个元素表示一个二阶导数:上述公式的意义就是,用一个一阶导数的向量乘以一个二阶导数矩阵的逆优点:若特征数和样本数合理,牛顿方法的迭代次数比梯度上升要少得多缺点:每次迭代都要重新计算Hessian矩阵,如果特征很多,则H矩阵计算代价很大2、指数分布族回顾学过的两种算法:对于:若y属于实数,满足高斯分布,得到基于最小二乘法的线性回归;若y取0,1,满足伯努利分布,得到Logistic回归。问题:如Logistic回归中,为何选择sigmoid函数?sigmoid函数是最自然的默认选择。接下来,会以这两个算法为例,说明它们都是广义线性模型的特例。考虑上述两个分布,伯努利分布和高斯分布:1)伯努利分布设有一组只能取0或1的数据,用伯努利随机变量对其建模:,则,改变参数,y=1这一事件就会有不同概率,会得到一类概率分布(而非固定的)。2)高斯分布,改变参数,也会得到不同的高斯分布,即一类概率分布。上述这些分布都是一类分布的特例,这类分布称为指数分布族。指数分布族的定义:若一类概率分布可以写成如下形式,那么它就属于指数分布族:-自然参数,通常是一个实数T(y) 充分统计量,通常,T(y)=y,实际上是一个概率分布的充分统计量(统计学知识)对于给定的a,b,T三个函数,上式定义了一个以为参数的概率分布集合,即改变可以得到不同的概率分布。证明伯努利分布是指数分布族:可知:由上式可见,=log(/(1-),可解出:=1/(1+exp(-),发现得到logistic函数(之后讨论其原因),则:证明高斯分布是指数分布族:,设方差为1(方差并不影响结果,仅仅是变量y的比例因子)这种情况下高斯密度函数为:可得:*指数分布族包括:高斯分布(正态分布),多元正态分布;伯努利分布(01问题建模),多项式分布(对k个结果的事件建模);泊松分布(对计数过程建模);伽马分布,指数分布(对实数的间隔问题建模);分布,Dirichlet分布(对小数建模);Wishart分布(协方差矩阵的分布)3、广义线性模型GLM选定了一个指数分布族后,怎样来推导出一个GLM呢?假设:(1),即假设试图预测的变量y在给定x,以作为参数的条件概率,属于以作为自然参数的指数分布族例:若要统计网站点击量y,用泊松分布建模(2)给定x,目标是求出以x为条件的T(y)的期望ET(y)|x,即让学习算法输出h(x) = ET(y)|x(3),即自然参数和输入特征x之间线性相关,关系由决定。仅当是实数时才有意义。若是一个向量,推导伯努利分布的GLM:,伯努利分布属于指数分布族对给定的x,学习算法进行一次预测的输出:得到logistic回归算法。正则响应函数:g() = Ey;,将自然参数和y的期望联系起来正则关联函数:g-1推导多项式分布的GLM:多项式分布是在k个可能取值上的分布,即y1,k,如将收到的邮件分成k类,诊断某病人为k种病中的一种等问题。(1)将多项式分布写成指数分布族的形式:设多项式分布的参数:,且,i表示第i个取值的概率分布,最后一个参数可以由前k-1个推导出,所以只将前k-1个视为参数。多项式分布是少数几个T(y)!=y的分布,T(1)T(k)都定义成一个k-1维的列向量,表示为:这样定义T(y)是为了将多项式分布写成指数分布族形式。*定义符号:指示函数,1.1True = 1, 1False = 0,即大括号内命题为真,值为1,;否则为0。例:12=3 = 0, 11+1=2 = 1用T(y)i表示T(y)的第i个元素,则T(y)i = 1y=i根据参数的意义(i表示第i个取值的概率分布),可推出:可得:证明多项式分布式指数分布族。再用表示:(2)根据上述假设(3)中自然参数和输入x的线性关系,可求得:(3)根据上述假设(2)中的输出h(x) = ET(y)|x,可求得:称这种回归算法为softmax回归,是logistic回归的推广。Softmax回归的训练方法和logistic相似,通过极大似然估计找到参数,其对数似然性为:再通过梯度上升或牛顿方法找对数似然性的最大值,即可求出参数。第五课生成学习算法本次课程大纲:1、生成学习算法2、高斯判别分析(GDA,Gaussian Discriminant Analysis)-高斯分布(简要)-对比生成学习算法&判别学习算法(简要)3、朴素贝叶斯4、Laplace平滑复习:分类算法:给出一个训练集,若使用logistic回归算法,其工作方式是观察这组数据,尝试找到一条直线将图中不同的类分开,如下图。之前讲的都是判别学习算法,本课介绍一种不同的算法:生成学习算法。1、生成学习算法例:对恶性肿瘤和良性肿瘤的分类除了寻找一个将两类数据区分的直线外,还可以用如下方法:1)遍历训练集,找到所有恶性肿瘤样本,直接对恶性肿瘤的特征建模;同理,对良性肿瘤建模。2)对一个新的样本分类时,即有一个新的病人时,要判断其是恶性还是良性,用该样本分别匹配恶性肿瘤模型和良性肿瘤模型,看哪个模型匹配的更好,预测属于恶性还是良性。这种方法就是生成学习算法。两种学习算法的定义:1)判别学习算法:-直接学习p(y|x),即给定输入特征,输出所属的类-或学习得到一个假设h(x),直接输出0或12)生成学习算法:-对p(x|y)进行建模,p(x|y)表示在给定所属的类的情况下,显示某种特征的概率。处于技术上的考虑,也会对p(y)进行建模。-p(x|y)中的x表示一个生成模型对样本特征建立概率模型,y表示在给定样本所属类的条件下例:在上例中,假定一个肿瘤情况y为恶性和良性,生成模型会对该条件下的肿瘤症状x的概率分布进行建模-对p(x|y)和p(y)建模后,根据贝叶斯公式p(y|x) = p(xy)/p(x) = p(x|y)p(y)/p(x),可以计算:p(y=1|x) = p(x|y=1)p(y=1)/p(x),其中,p(x) = p(x|y=0)p(y=0) + p(x|y=1)p(y=1)2、高斯判别分析GDAGDA是一种生成学习算法。GDA的假设条件:1)假设输入特征xRn,并且是连续值。2)假设p(x|y)满足高斯分布*高斯分布基础知识:设随机变量z满足多元高斯分布,zN(,),均值向量为,协方差矩阵为。其概率密度函数为:多元高斯分布为一元高斯分布的推广,也是钟形曲线,z是一个高维向量。多元高斯分布注意两个参数即可:-均值向量-协方差矩阵= E(Z-EZ)(Z-EZ)T=E(x-)(x-)T多元高斯分布图:左图:=0,=I(单位矩阵)中图:=0,=0.6I,图形变陡峭右图:=0,=2I,图形变扁平三图中=0,如下:可见增加矩阵对角元素的值,即变量间增加相关性,高斯曲面会沿z1=z2(两个水平轴)方向趋于扁平。其水平面投影图如下:即增加对角线的元素,图形会沿45角,偏转成一个椭圆形状。若对角线元素为负,图形如下:分别为:不同的图形如下:分别为:决定分布曲线中心的位置。GDA拟合:给出训练样本如下图所示:-观察正样本(图中的x),拟合正样本的高斯分布,如图中左下方的圆,表示p(x|y=1)-观察负样本(图中的圈),拟合负样本的高斯分布,如图中右上方的圆,表示p(x|y=0)-通过这两个高斯分布的密度函数,定义出两个类别的分隔器,即图中的直线-这条分隔器直线比之前的logistic拟合的直线要复杂GDA模型:写出其概率分布:参数包括,0,1,对数似然性为:由于第一个等式为xy的联合概率,将这个模型命名为联合似然性(Joint likelihood)。*对比logistic回归中的对数似然性:由于计算的是y在x条件下的概率,将此模型命名为条件似然性(conditional likelihood)通过对上面对数似然性求极大似然估计,参数的结果为:训练样本中标签为1的样本所占的比例0:分母为标签为0的样本数,分子是对标签为0的样本的x(i)求和,结合起来就是对对标签为0的样本的x(i)求均值,与高斯分布参数为均值的意义相符1:与0同理,标签改为1GDA预测:预测结果应该是给定x的情况下最可能的y,等式左边的运算符argmax表示计算p(y|x)最大时的y值,预测公式如下:因为p(x)独立于y,所以可以忽略p(x)。*如果p(y)为均匀分布,即每种类型的概率都相同,那么也可以忽略p(y),要求的就是使p(x|y)最大的那个y。不过这种情况并不常见。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回归中使用的sigmoid函数一样的函数。但实际上还是存在本质区别的。使用生成学习算法的优缺点:给出两个推论:推论1:x|y服从高斯分布= p(y=1|x)是logistic函数该推论在反方向不成立。推论2:x|y=1 Poisson(1),x|y=0 Poisson(0) =p(y=1|x)是logistic函数x|y=1 Poisson(1)表示x|y=1服从参数为1泊松分布推论3:x|y=1 ExpFamily(1),x|y=0 ExpFamily (0) = p(y=1|x)是logistic函数推论2的推广,即x|y的分布属于指数分布族,均可推出结论。显示了logistic回归在建模假设选择方面的鲁棒性。优点:推论1反方向不成立,因为x|y服从高斯分布这个假设更强,GDA模型做出了一个更强的假设,所以,若x|y服从或近似服从高斯分布,那么GDA会比logistic回归更好,因为它利用了更多关于数据的信息,即算法知道数据服从高斯分布。缺点:如果不确定x|y的分布情况,那么判别算法logistic回归性能更好。例如,预先假设数据服从高斯分布,但是实际上数据服从泊松分布,根据推论2,logistic回归仍能获得不错的效果。生成学习算法比判决学习算法需要更少的数据。如GDA的假设较强,所以用较少的数据能拟合出不错的模型。而logistic回归的假设较弱,对模型的假设更为健壮,拟合数据需要更多的样本。3、朴素贝叶斯另一种生成学习算法。例:垃圾邮件分类实现一个垃圾邮件分类器,以邮件输入流作为输入,确定邮件是否为垃圾邮件。输出y为0,1,1为垃圾邮件,0为非垃圾邮件。首先,要将邮件文本表示为一个输入向量x,设已知一个含有n个词的字典,那么向量x的第i个元素0,1表示字典中的第i个词是否出现在邮件中,x示例如下:要对p(x|y)建模,x是一个n维的0,1向量,假设n=50000,那么x有250000种可能的值,一种方法是用多项式分布进行建模(伯努利分布对01建模,多项式分布对k个结果建模),这样就需要250000-1个参数,可见参数过多,下面介绍朴素贝叶斯的方法。假设xi在给定y的时候是条件独立的,则x在给定y下的概率可简化为:这个假设直观理解为,已知一封邮件是不是垃圾邮件(y),以及一些词是否出现在邮件中,这些并不会帮助你预测其他的词是否出现在邮件中。虽然这个假设不是完全正确的,但是朴素贝叶斯依然应用于对邮件进行分类,对网页进行分类等用途。*对于朴素贝叶斯,我的理解为:通过指定一些垃圾邮件的关键词来计算某个邮件是垃圾邮件的概率。具体讲,就是给定字典后,给出每个词的p(xi|y=1),即这个词xi在垃圾邮件中出现的概率,然后对于一个邮件,将邮件所有词的p(xi|y)的相乘,就是邮件为垃圾邮件的概率。再简化一些,规定p(xi|y=1)=0,1,即划定一些关键词,这些关键词在邮件中出现的概率就是这封邮件为垃圾邮件的概率。模型参数包括:i|y=1 = p(xi=1|y=1)i|y=0 = p(xi=1|y=0)y = p(y=1)联合似然性:求得参数结果:i|y=1的分子为标记为1的邮件中出现词j的邮件数目和,分母为垃圾邮件数,总体意义就是训练集中出现词j的垃圾邮件在垃圾邮件中的比例。i|y=0就是出现词j的非垃圾邮件在非垃圾邮件中的比例。y就是垃圾邮件在所有邮件中的比例。求出上述参数,就知道了p(x|y)和p(y),用伯努利分布对p(y)建模,用上式中p(xi|y)的乘积对p(x|y)建模,通过贝叶斯公式就可求得p(y|x)*实际操作中,例如将最近两个月的邮件都标记上“垃圾”或“非垃圾”,然后得到(x(1),y(1)(x(m),y(m),x(i)为词向量,标记出现在第i个邮件中的词,y(i)为第i个邮件是否是垃圾邮件。用邮件中的所有出现的词构造字典,或者选择出现次数k次以上的词构造字典。朴素贝叶斯的问题:设有一封新邮件中出现一个字典没有的新词,设其标号为30000,因为这个词在垃圾邮件和非垃圾邮件中都不存在,则p(x3000|y=1)=0,p(x30000|y=0)=0,计算p(y=1|x)如下:p(y=1|x) = p(x|y=1)p(y=1) / ( p(x|y=1)p(y=1) + p(x|y=0)p(y=0)由于p(x|y=1)=p(x|y=0)=0(p(x30000|y=1)=p(x30000|y=0)=0,则乘积为0),则p(y=1|x)=0/0,则结果是未定义的。其问题在于,统计上认为p(x30000|y)=0是不合理的。即在过去两个月邮件里未出现过这个词,就认为其出现概率为0,并不合理。概括来讲,即之前没有见过的事件,就认为这些事件不会发生,是不合理的。通过Laplace平滑解决这个问题。4、Laplace平滑根据极大似然估计,p(y=1) = #”1”s / (#”0”s + #”1”s),即y为1的概率是样本中1的数目在所有样本中的比例。Laplace平滑就是将分子分母的每一项都加1,,即:p(y=1) = (#”1”s+1) / (#”0”s+1 + #”1”s+1)例:给出一支球队5场比赛的结果作为样本,5场比赛都输了,记为0,那么要预测第六场比赛的胜率,按照朴素贝叶斯为:p(y=1) = 0/(5+0) = 0,即样本中没有胜场,则胜率为0,显然这是不合理的。按照Laplace平滑处理,p(y=1) = 0+1/(5+1+0+1) = 1/7,并不为0,且随着负场次的增加,p(y=1)会一直减小,但不会为0。更一般的,若y取k中可能的值,比如尝试估计多项式分布的参数,得到下式:即值为j的样本所占比例,对其用Laplace平滑如下式:对于朴素贝叶斯,得到的结果为:在分子上加1,分母上加2,解决了0概率的问题。第六课朴素贝叶斯本次课程大纲:1、朴素贝叶斯-朴素贝叶斯事件模型2、神经网络(简要)3、支撑向量机(SVM)铺垫最大间隔分类器复习:1、朴素贝叶斯一种生成学习算法,对p(x|y)建模。例:垃圾邮件分类以邮件输入流作为输入,输出y为0,1,1为垃圾邮件,0为非垃圾邮件。将邮件文本表示为一个输入向量x1)xi0,1,表示字典中的第i个词是否出现在邮件中2)x长度为n,n为字典的词数3)该模型称为多元伯努利事件模型假设xi在给定y的时候是条件独立的,则x在给定y下的概率可简化为:根据朴素贝叶斯公式,求p(y|x)最大时的y:算法变化版本:1)让xi取多个值,xi1,2,k,类似上式有:p(x|y) = p(xi|y),但是p(xi|y)变成多项式分布,而不是伯努利分布。例:估计房屋面积预测房屋能否被卖掉,将房屋面积分成几个离散区间,如0-,1000为xi=1,1000-1500为xi=2,1500-2000为xi=3,2000以上为xi=42)如上例处理邮件(文本)中,x向量记录每个词出现的次数(而不是是否出现)多项式事件模型接上例,给出一封邮件,将它表示成特征向量:,ni表示邮件中词的数量,xj是个到词典的索引,表示该词在词典的位置。如邮件中有300个词,那么特征向量x(i)长度为300,若词典有50000个词,每个元素xj的取值范围为1,2,50000则生成模型的联合概率p(xy)为:n为邮件长度上式理解:邮件内容满足一些概率分布,有一些随机分布在生成这些邮件。过程为:首先确定y,即是否为垃圾邮件,决定一个人是否向你发送垃圾邮件后,遍历邮件的300个词,按照某种概率分布生成一些词,基于他们是否向你发送垃圾邮件模型参数:表示某人决定向你发送垃圾邮件(y=1)时,选择词k的概率,类似有:给出训练集后,求极大似然估计:得到:上面第一个式子,分子的意思是,对所有标签为1的邮件求和,之后对垃圾邮件中的词k求和,所以分子实际上就是训练集中所有垃圾邮件中词k出现的次数。分母是训练集中所有垃圾邮件的长度。比值的含义就是所有垃圾邮件中,词k占的比例。表示生成垃圾邮件时选择词k的概率。应用Laplace平滑,分子加1,分母加总词数(字典大小,xi可能取值的数目):事实上,多项式事件模型比之前的模型要好,可能是因为考虑了词出现的次数这个因素。但此问题仍存在争论。非线性分类算法例:logistic回归中,假设值小于0.5预测0,大于0.5预测1。即给定一个训练集,logistic回归会找到一条直线(牛顿方法或梯度下降),将正负样本合理分开。但有时数据不能被一条直线分开,需要一种算法,学习非线性的分界线。上一讲的推论:x|y=1 ExpFamily(1),x|y=0 ExpFamily (0) = p(y=1|x)是logistic函数即x|y的分布属于指数分布族,可推出后验分布是logistic函数。朴素贝叶斯模型也属于指数分布族,所以也是用logistic线性分类器。下面介绍一种非线性分类器。2、神经网络假设特征是x0,x1,x2,x3,x0设置为1,用连线表示logistic回归单元,圆圈表示计算节点,下图中间的节点以x0等特征作为输入,h(x)作为输出,这是一个sigmoid函数。为了找到非线性的界限,需要找到一种方式,表示出能够输出非线性分界限的假设。将之前画的小单元拼在一起,得到神经网络。特征输入到若干个sigmoid单元,在输入到另外一个sigmoid单元,得到输出。中间节点的输出值设为a1,a2,a3。这些中间节点称为隐藏层,神经网络可以由多个隐层。每个中间节点有一系列参数:a2,a3同理。g为sigmoid函数。最终的输出值为:其中,a向量由a1,a2,a3组成。一种学习模型参数的方法是,利用成本函数J(),使用梯度下降使J()最小。即用梯度下降使得神经网络的预测结果和你观察到的训练集中的样本标签尽可能接近。在神经网络中,这种方法称为反向传播。3、支撑向量机铺垫最大间隔分类器另外一种能生成非线性分类器的学习算法。本节课先介绍另外一类线性分类器,在下一讲或者下下讲中,利用支撑向量机的想法,进行一些巧妙的改动和扩展,让它可以生成非线性分界线。两种对于分类的直观理解:1)考虑logistic回归,计算Tx:输出1 Tx=0;输出0 Tx0,相当确定的预测y=1;如果Tx0,如果y=0,Tx(i)=0; -1,如果z 0;如果y(i)=-1,为了获得较大的函数间隔,需要令wTx(i)+b 0,意味着分类结果正确一个超平面(w,b)和整个训练集的函数间隔定义为:即相对于整个训练集的函数间隔定义为所有相对于样本的函数间隔的最坏情形(上述讲到,分界线距离样本越远效果越好)。几何间隔:几何距离定义为:一个训练样本对应的点到由超平面确定的分隔线的距离。如下图A到分隔线的距离AB就是几何距离。和分隔线垂直的单位向量表示为:w/|w|,AB这段距离表示为(i),上有小三角表示函数间隔,没有表示几何间隔。若A点表示x(i),那么点B表示为:由于点B在分隔线上,它应该还满足:可以解出:上式说明,对于一个训练样本x(i),到由参数w和b确定的分隔平面之间的距离,可以由上式得到。由于上述一直假设对样本进行了正确的分类,所以更一般的,将几何间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论