版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大家好,这里是,今天就让我带大家来学习,机器学习当中,从发明到现在一直非常活跃的算法支持向量机。机器学习——支持向量机算法内容纲要线性SVM分类间隔123能力提升在于实践456对偶问题与KKT条件软间隔与正则化核函数SMO算法SVM的总结与碎碎念7相关API与超参数这一小节,我们就讲到这里,大家可以登陆我们的网站,去了解跟多的内容,谢谢大家。全面推动学习者能力提升升级实践教学
激发技术创新
助力产业变革大家好,这里是,今天就让我带大家来学习,支持向量机中的线性svm分类间隔。机器学习——支持向量机算法线性SVM分类间隔首先我们了解下支持向量机的一些特点。我再屏幕当中写上支持向量机最最经典的一个特点,叫做“准确”,那么当时在1995年提出支持向量机的时候,它的准确度比当时已知的其他算法都都要高出一大截。所以这是支持向量机给人们最初的印象。它是一个极度准确的,那么随着课程的深入你就会知道为什么是一个极度准备的算法,因为它在数学上是一个趋近完美的算法,从数学模型层面去寻找最优的解,但是这并不是没有代价的,它付出的代价就是支持向量机的理解可能比一般算法的理解要困难很多。但是让我们一起去接触这样的挑战,去看一看支持向量机到底是怎么运作的。线性SVM分类间隔支持向量机(Support
Vector
Machine)是
Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势。准确我们先回顾一个分类问题。比如在一个二维的样本空间当中,有两个类别的样本,一个类别是我们这里的蓝色,一个类别是我们这里的红色。我想在样本空间中做出一条直线,将样本空间分成两个部分。分别对应着两个类别。在二维的空间当中,我可以使用y=ax+b的直线去完成这个任务。那么它更加综合、更加广义的一种写法,我们通常把它写作这个WX加B啊那么所谓的W就是我们每一项X所对应的权重,B就是我们所定的截距。那么如同前面线性回归或者说其他的算法当中大家所了解的那样,如果说我要把这样的一个线性分类的边界上升到更高的维度,比如说我的X所对应的特征变得更多了,不仅仅是这里的二维特征,那么说可能是这里有三类特征,那么我们相应的权重也要进行维度的增加。它要变成两个维度、三个维度,那么这是我们对于线性分类一般形式的体现WX加B,线性SVM分类间隔类别1类别2更高维度这里我们会遇到一些问题,就是像这样的线性分类的边界,我想要准确的分出这个第一个类别和第二个类别,其实我的选择是非常充裕的。那么如果大家所见屏幕上这些颜色不同的线代表的都是这样的线性边界。那么这样的每一个线性边界呢,它其实都可以把样本空间当中的这两类药去很好的分开。每一个现象边界会对应着一个相应的W和B。也就是说对于我们来说,在一个样本空间当中,我们可以有无数个分类边界,对应着无数组参数,都可以完成我们这样的分类任务。线性SVM分类间隔X1X2是这个线性分类问题的解但只是无数个解之中的一个因为这样的超平面有无数个这些无数w,b参数都可以解决分类问题但是这无数组分类边界当中,我们一定知道它是有好有坏的。如果说我能够选出最好的那一组分类边界,那自然是我们期待的。那么这也是线性支持向量机它所要进行的一个工作。那么我们这里举一个简单的例子,如果说我的样本空间当中还是这两个类别的样本,然后我使用了两个分类边界,一个是这条深色的直线,一个是这条浅色的主线。
那么大家可以显而易见,在我们排除这两个不同的点的情况下,我们这两条直线对于所有的样本类别其实都是可以完美分类的。但是大家如果去观察一下,如果使用这条黑色的分类主线作为分类边界法,当我添加这两个不是那么优秀的数据点的时候,这个深色的确定边界,就把这两个数据点进行了错误的分类。但是当我选择了这条红色的直线作为分类边界的时候,即使是我添加了这两个点,这条红色的分类出现这条红色的边界一样能将这两个新加入点都进行正确的分类。那么这和我们所追求的目标是一致的。在无限的W,B所决定的超平面当中所决定的这些分类编辑当中,必定有一个是分类能力最好的。那么我们在这个例子当中,显然这条红色的分类边界相比藏蓝色的分离边界,它的泛化能力要优秀一些。比如说他抵抗数据变化的能力其实是要更加优秀的。即它的鲁棒性更好。线性SVM分类间隔X1X2显而易见在诸多w,b决定的超平面中必定有一个是鲁棒性泛化能力组好的那我们的线性svm的一个关键点。就说他所追求的一个目标其实就是寻找这样的一条分类边界。我们怎么去解决这个问题呢?如果说这样的一条分类边界我们是wx加b等于零的话,这么。那么我期待的是我要寻找这样的一个边界,让它的分类当中会具有最大的一个间隔。那么这个时候我就期待我不仅仅需要wx加b等于零这样的一个边界,我希望拓展一下它的边界,我比如说我扩展到这里下界扩展到这里,那么最终我们去取得像这样两条边界,它有可能就是ws加b等于一个常数。那么这个常数其实在推导过程当中,你设定成一,设定成一百,其实在推导过程当中。都都是一样的。那么这里我们约定俗成,如果说这样的边界,我们把它设定成wx加b等于一和ws加b等于负一。这样的情况下,我保证不仅仅是有一条分类边界,我用的是一个线性的分类间隔所组成的一个复合的边界。线性SVM分类间隔X1X2我们希望找到一对
w,b使得分类超平面
“最保险”我们只需要关注超平面最近的点这也是SVM的一大成就“分类边界的构造其实只与少数样本有关”在这样的情况下,我们就能够找到这样的一对wb。这里使得这样分类的超平面更加的保险。怎么才能使它最保险呢?其实也非常容易理解,只要使得离这个分类边界最近的这个向量之间的距离最大,那么我们就找到了这样的一条最保险的分类边界。这也是svm分类器的第一个特点,就是它的分类边。这也是与少数的样本有关。那么这样的样本我们就把它称之为支持向量。就是说其实等于是它在支撑着这个分裂边界,最终完成了这样的一个分类的任务。那么它同时也是一个限制条件线性SVM分类间隔X1X2我们希望找到一对
w,b使得分类超平面
“最保险”“限制条件”如果说我的分裂边界最终计算出的结果是W
X加B大于1也就是这个边界的上方,或者说是W
X加B小于负一,也就是这条边界的下方,那么我就可以认为这个分类器产生了一个分裂的结果。我们用W
X加B大于一,或者说W
X加B小于负一来当作我们的分类依据,同时我们也可以得到分离仪器所对应的支持向量。线性SVM分类间隔X1X2支持向量“限制条件”那么我们有了这样的公式,我们计算出WX加B的结果,并且把它进行分类之后,我们该如何去判断这样分类数是正确的呢?,我们就使用这样的方法,我们使用它的标签与它的预测值进行相乘。什么意思呢?这个Y就是他所谓的真实值,在训练过程当中他的标签,WX加B可以理解成HX等于WX加B其实就是我们的预测值,我们使用我们的真实值和我们的预测值进行相乘的话,我们是不是就可以得到一个结果?线性SVM分类间隔X11-1X2如何判断分类正确那么这样的一个结果,我们可以用它来去判断这个分类是否正确,它所对应的情况其实是有如下的:第一种情况是真实值是一,我的预测值是大于一的,那么这样的情况两者相乘,它的结果一定是大于一的,对吧?第二种情况,它的真实值是负一,也就是我们说所谓的负类,那么我预测的结果也是小于一的。那么第二种情况是它的真实值是。一个负类,也就是我们所谓的负一。我们的预测值呢WX加B,也是在这个轴下方呢也是一个小于负一的值,那么他们两个进行相乘,最终得出来的结果也是一个大于一的值。所以我们说真实值的标签乘以WX加b所得到的预测值,如果说它是大于一的话,那么对应的就是两种预测正确的情况。那么相反预测错误的情况就是如果真实值是一,预测值是小于一的情况,或者说真实就是负一预测值是大于负一的情况,那么这两者之间的乘积肯定不是大于等于一的。所以说我们可以使用这样的方式来验证,或者说来判断最终预测的结果是否是正确的。那么同时其实这样也是一个限制,我们就认为如果说满足。做这样的一个限制条件,它的分类就是正确。不满足这样的一个限制条件,那么它最终的分类结果就是错误的。线性SVM分类间隔X11-1X2我们拥有了分类正确和分类错误的判断方法,我们该怎么去判断这个分类的角色平面是好还是坏?我们期待寻找一个最好的决策面,或者说决策的超平面。那么在这里,我们就需要找到支持向量之间最大的间隔,我们把间隔分成函数间隔和几何间隔两个类别。那么所谓的函数间隔其实就是这样的一种度量,那么其函数间隔或者说计算出来的这个数值越大,那么我们就说明这个分类置信度越高,我们就表征着这样的一个分类的边界是越好的。那么反之,如果说间隔越小。那么这个分类边界其实就是越差。线性SVM分类间隔X11-1X2函数间隔间隔越大,说明分类置信度越高们期待寻找一个最好的决策面,或者说决策的超平面。那么在这里,我们就需要找到支持向量之间最大的间隔,我们把间隔分成函数间隔和几何间隔两个类别。那么所谓的函数间隔其实就是这样的一种度量,那么其函数间隔或者说计算出来的这个数值越大,那么我们就说明这个分类置信度越高,我们就表征着这样的一个分类的边界是越好的。那么反之,如果说间隔越小。那么这个分类边界其实就是越差。同样而言,如果说我们去计计算几何间隔,也就是说支持向量到分类平面中心这条分类边界,实际的在空间当中的几何距离。那么其实非非常简单,我们可以简单的使用点到直线的距离去计算出这样的几何间隔,会得到这样的一个公式。线性SVM分类间隔X11-1X2几何间隔那么大家可能会发现一个非常有意思的地方,就是如果说当W等于一时,我们定义的W等于一是函数间隔和几何间隔是相同的,这也是为什么我们喜欢将这个地方定义为一的几个原因之一啊。线性SVM分类间隔X11-1X2||w||=1时,函数间隔和几何间隔相同那么大家可能会发现一个非常有意思的地方,就是如果说当W等于一时,我们定义的W等于一是函数间隔和几何间隔是相同的,这也是为什么我们喜欢将这个地方定义为一的几个原因之一啊。那么我们想求一个最好的分裂边界,其实我们想要优化的目标是什么?线性SVM分类间隔定义:SVM中的”间隔“两个支持向量到超平面距离之和是不是使得这个分类间隔越大?那大的同时它还能够满足我们这样的一个限制条件,我们是不是就既找到了一个最优的分类间隔,又保证这个分类间隔可以正确的处理我们所有的数据。将这样的一个几何间隔,因为它只与搭配有关,我们将它定义为二除以W的二参数,那么最终我们把它综合起来,我们就可以得到想要去记得到svm当中最优的分类平面,又要使得这个分类平面能够满足我们样本空间当中对样本的分类需求,我们其实就解决两个问题,一个是最大化分类间隔,一个是在最大化分类间隔的基础之上,我们要保证最大化分类间隔能够满足这样的一个不等式条件。那么为了我们计算的方便,我们通常将这个最大化间隔把它换算成求二分之一W,二次方的最小值。在这样一个带不等式约束条件的情况下,去求这样函数的最小值的优化过程,其实我们就可以诞生sVM理论上的最优解,最优的那条分割平面线性SVM分类间隔最优的分类超平面:同时还要保证分类正确:准确:理论上的最优解或者说S
M当中那个最优的分类超平面,这是我们在fm当中需要解决的终极问题。整个S、M,其实我们都是围绕着对这个问题的优化而展开的。那么我们在高等数学当中其实是知道的,我们面对一个带有约束条件的优化问题,或者说更进一步的,我们面对一个带有不等式约束条件的优化问题,我们该如何去解决?如果说我们先不考虑这样的不等式,不考虑这样的约束条件,那么去求一个问题的最小值,或者说去求一个问题的最迟呃在数学上的一个非常直觉的解决方法,我要对他进行求导,然后那个导数等于零,我就可以解决它的废纸,那么我们就可以解决W。然后呢我们再把W带回机器向量,我们就能够解决的。这是一个非常直觉啊、非常爽快的解决问题的方法。但是呢我们现在要面对的是一个带有不等式约束的问题,想必大家在高等数学当中其实也接触过这类的问题,我们去解决这个问题的方法就是我们以引入一个拉格朗日乘子,我们使用拉根往拉格朗日叠成,去解决这样的问题线性SVM分类间隔目标:求最大间隔的凸优化问题还是那种带不等式约束的这一小节,我们就讲到这里,大家可以登陆我们的网站,去了解跟多的内容,谢谢大家。全面推动学习者能力提升升级实践教学
激发技术创新
助力产业变革大家好,这里是,今天就让我带大家来学习,机器学习当中,最简单的一个算法,名字叫做K近邻,机器学习——支持向量机算法对偶问题与KKT条件我们在前面之前的讨论当中,其实我们没有涉及到任何的数学知识,我们只是从直觉上去讲解了一下,为什么SVM它是一个非常优秀的分类器,同时我们要求那个最优的分类平面,我们将它转化成一个怎样的问题去解决,那么我们最终得到了一个结论是,我们将它转化成为了一个带有不等式约束条件的最优化的。那么接下来的问题就十分简单了,我们只要对这个优化问题求解求出W的、求出B,我们是不是就能够去寻找到SvM那条最优的分界线?或者说SVM当中那个最优的分类超平面,对偶问题与KKT条件优化问题这是我们在svm当中需要解决的终极问题。整个SvM,其实我们都是围绕着对这个问题的优化而展开的,那么我们在高等数学当中其实是知道的,我们面对一个带有约束条件的优化问题,或者说更进一步的,我们面对一个带有不等式约束条件的优化问题,我们该如何去解决?如果说我们先不考虑这样的不等式,不考虑这样的约束条件,那么去求一个问题的最小值,或者说去求一个问题的最值在数学上的一个非常直觉的解决方法,我要对他进行求导,然后那个导数等于零,我就可以解决它的最值,那么我们就可以解决W。然后呢我们再把W代回机器向量,我们就能够解决B。这是一个非常直觉啊、非常爽快的解决问题的方法。但是呢我们现在要面对的是一个带有不等式约束的问题,想必大家在高等数学当中其实也接触过这类的问题,我们去解决这个问题的方法就是我们以引入一个拉格朗日乘子,我们使用拉格朗日乘子去解决这样的问题。对偶问题与KKT条件带有约束的优化问题有请拉格朗日那么拉格朗乘子法反而是我们说是一个经典的求解这种带有约束条件的级数的方法。我们说拉格朗日乘子法的一般形式是我们拥有一个我们要优化的目标函数啊跟我们这里是非常相似的。那么这个优化的目标呢通常要满足这样的一种形式的约束条件,我们就可以使用拉格朗日乘子法去解决这样的问题。对偶问题与KKT条件拉格朗日乘子法是一种经典的求解条件极值的解析方法,可将所有约束的优化模型问题转化为无约束极值问题的求解。拉格朗日乘子法的一般形式是那么我们可以通过将我们所面对的Svm当中的问题,转写成拉格朗日乘子法去要求的这样一种形式。那么我们在我们的求解的目标函数当中,其实它已经符合了这种形式了,但是在它的约束条件当中,我们只需要将y乘以W,X加B。它就等于一这样的条件,将不等号进行转换,然后把一这个长方向移到它不等号的左边,那我们就可以得到一个符合拉格朗日乘子法的优化的形式。那么在svm当中,我们有两个优化目标,一个w,一个是b。那么同时呢我们还有一个约束条件啊,是这样的一个不等式约束条件。那么我们使用拉格朗乘子的方法,我们将可以将它转化成带有二加一等于三个变量的无约束优化问题。对偶问题与KKT条件拉格朗日乘子法是一种经典的求解条件极值的解析方法,可将有d个变量与k个约束条件的优化问题转换为具有d+k个变量的无约束优化问题。拉格朗日乘子法的一般形式是在我们的问题中,有2个变量,1个约束那么在这里我们只需要引入一个拉格朗日乘子,然后呢将拉格朗日乘子去乘以每一个约束条件,再把这个约束条件加回到原来的优化问题当中,那么我们最终就可以得到一个关于目标函数的拉格朗日乘子法的函数啊就是这样的一个函数。我们说这里是表示拉格朗日乘子的一次,我们这里去求的目标优化函数的原函数当中,我们是有两个需要去求解参数,一个是W,一个是B。那么这里呢我们引入一个拉格朗日乘子,将这个乘子与这种不等式的约束条件进行相乘,并把它添加到整个拉格朗日方程当中,那么我们就解决掉了这个不等式的条件,但是整个的优化的问题就变成了这样的一个优化问题,这个要优化W、B和a(阿尔法)三个参数,但是好就好在我们已经解决了不等式约束条件的问题,那么我们其实就更容易求解了。我们既然没有约束条件,我们其实可以非常直接地使用我们那种熟悉的求偏导令它等于零的方式,是不是就可以解出某一个参数的参数值了对偶问题与KKT条件定义拉格朗日系数乘以约束函数并与目标函数相加得到如下的拉格朗日函数当然啦,我们说在。这样的一个拉格朗日方乘当中,其实是有非常非常多的要求的,或者说是有非常非常多的约束条件的。我们只有当满足了这些约束条件时,我们才能够对这样的拉格朗日方程进行求解。如果说我们不满足这样的约束条件,我们是无法对拉格朗日方程进行求解的。那么假设我们这里做一个非常简单的反例去证明一下这个问题,如果说我们不满足约束条件,也就是说我们随便举一个这样不满足的约束条件的情况,想这种情况,那么这个时候我只需要让a参数值取得正无穷,那么随便a(阿尔法)参数值取的正无穷,因为阿尔法参数这里大于0,那么阿尔法是符合他们条件的。如果我们不满足在这样的情况之下的约束条件,我们无法对拉格朗日方乘进行求解的,在这样的情况之下,我想去求拉格朗日函数的最小值,那就是不可能的。因为它是个正无穷的情况,所以它就变成了一个无解的问题。所以我们一定要满足原函数当中的约束条件,才能够转化成一个拉格朗日问题去进行求解。对偶问题与KKT条件因为满足约束条件的w,b会使得为零不满足约束条件时,因此
可取正无穷(让
为正无穷即可)最小化
就成了一个无解的问题最终我们的形式就是这样的一种形式,我们将原函数引入拉格朗日方程,取得拉开宝朗日方程的这样的一种形式,我们想办法看看能不能解出W、B和阿尔法。解出W和B和阿尔法,我们就等于解除了原函数的最优解。对偶问题与KKT条件所以必须满足约束条件的情况下,将目标转化为一个无约束问题(融合约束条件当然像这样的一种形式,它在进行数学求解的时候,仍然是一个并不容易解决的问题。所以说我们在数学当中想去优化它,想去解决它,我们通常不要将它转化对偶问题去解决。那么在高等数学当中,我们知道对偶是解决很多优化问题的一个非常优秀的一个武器,因为它具有一些非常非常优秀的性质,比如说对偶问题的对偶还是原来的问题。那么不管说原始的问题是否是凸的,对偶问题都是凸优化的问题。那么凸优化问题大家都知道,我们就可以通过求偏导的方式,偏导等于零的方式去找到它的全局最优解。那么这一条其实是我认为对偶当中最优秀的一个性质。那么另外呢,对偶问题可以给出原始问题的一个下界,还有当满足一定条件时,原始问题、对偶问题的解释完全相等的。那么最后一条,所谓的满足一定条件时,那么其实就是我们这个章节要去跟大家去聊这个所谓的KKT条件,对吧?对偶问题与KKT条件仍然不好求,我们转化为他的对偶问题-对偶问题的对偶是原问题-无论原始问题是否是凸的,对偶问题都是凸优化问题-对偶问题可以给出原始问题一个下界-当满足一定条件时,原始问题与对偶问题的解是完全等价的我们的原始的问题,比如说原始问题有一个最优解,我们求解优化之后得出来的是一个P。那么我们对偶问题相对于也有一个最优解,对偶问题其实就是将原始问题的min
max进行一下调换。但是我们进行了这个调换之后,我们要去了解一个问题,就是这两者的最优解是相等的吗?或者说即使在不相等的情况下,对偶问题的最优解是否比原问题的最优解更加优秀?那如果对偶问题的就误解更加优秀的话,解除了对偶问题的解,我们自然就得到了原问题的解。但是如果说这个问题解不如原问题的解优秀的话,那我们还需要去探索更多的可能。那么在对偶当中其实有两种性质,一种性质就是对于任何优化问题,你把它转化成他的对偶问题都成立了。那就是我们刚所强调了这个问题可以得到原问题的下界。那么在这样的一个情况下,我们知道原问题和对偶问题所取得的解并不是相同的。对偶问题所取得的最优的情况是原问题的一个下界,也就是说它达不到我们原问题需要去求解的那种情况。但是呢如果说它能够满足强对偶性,那么也就是我们满足KKT条件的时候,对有问题的解就等于原问题的解。那么我们就可以利用这样的一条性质去求解原问题当中不是很好解决了优化问题,我们将它转化成对偶问题当中的优化解,那么使得我们求得对偶问题的优化解,这个优化解我们就得到了原问题的优化解。对偶问题与KKT条件原问题对偶问题max和min换了一下,其最优解是相等的吗?弱对偶性:d*≤p*强对偶性:d*=p*任何优化问题成立满足KKT条件时成立那么在SvM当中呢。我们根据我们自身的约束条件和根据拉格朗日乘子的一些性质,我们可以知道它的KKT条件其实要满足一、二、三,满足这三个条件呢,我们这两者之间其实它的解或者说它的最优解是等价的。那么等价的关系当中,我们就可以通过求对偶问题的解去来得到原问题的解。那么我们先来观察一下它的KKT条件,看看这个KKT的条件在我们的拉格朗日方程当中是否符合。OK,A大于零是符合的。第二条,如果说我们想得到一个标签和预测值一样的解,一是我们的Y标签乘以WX加B大于等于一。那么前面我们探讨过这个问题,这里也是符合的。那么根据我们的拉格朗日方程,我们看到这三条KKT条件其实都是满足的,所以我们就可以将原问题与对偶问题进行一个等价的交换求解对偶问题与KKT条件对w和b偏导为0在这样的情况下,我对整个的拉格朗日函数去求偏导数,那么我对W求偏导,令它等于零,我就可以解出W的表达式。我对B求偏导,并令它等于零,我就可以解出B的表达式。那么我在右下也陈列了拉格朗日函数的这样的一个具体的表达式。那么我们分别对W和B求偏导,我们可以得到W等于ci
ge
ma
阿尔法i,Yi,Xi。那么对B偏导,得出ci
ge
ma,阿尔法,yi等于零。那么有了这两个条件,我们就可以进行我们接下来的运算啊。但其实这里我们并没有得到B的形式,我们只得了W的形式。但是呢我们可以把它通过带回支持向量的方式去解决B的形式。对偶问题与KKT条件两边求偏导(分别对w与b),并令其=0那么将这两个解除的条件其实这两个解除的条件是什么意思呢?这两个解除的条件其实我们就是想将整个拉格朗日表达式当中的W和B都使用唯一的一个参数,拉格朗日乘子阿尔法进行替换。如果说我们替换了之后可以得到一个拉格朗日表达式,其中只有一个参数需要优化,那我们的优化工作量就会大大降低。那么最终我们将这两个数字带回整个拉格朗日表达式当中,我们会发现我们得到了这样的一种形式,比如说拉格朗日W,B,阿尔法等于ci
ge
ma,阿尔法减去二分之一,ci
ge
ma,阿尔法i,阿尔法j,Yi,Yj,Xi、Xj。那么在这样的一个表达式当中,你们会发现,Xi、Xj是训练集的特征数值,Yi,Yj是训练集的标签数值。那么这整个表达式当中只有一个未知量,也就是我们的阿尔法。我们在整个的拉格朗日表达式当中,如果说我们能够解出这个阿尔法,我们就能够得到整个拉格朗日乘子表达式的一个表达。这里不要忘记了,在对它对b求偏高的时候,我们求出了这样的一个条件,那么我们就要把这样一个条件加到整个拉格朗日表达式当中。如果说我们最终得到了这样的形式,我们就只剩下了一个目标,那就是去求阿尔法。对偶问题与KKT条件用已知量x,y和拉格朗日系数阿尔法代替了w消去了b将结果带回原拉格朗日方程并对偶表达那么这里其实就是svm当中线性svm,或者说我们叫做最基本型SvM的一个最终表达就是它。那么有了它之后,我们就可以解出阿尔法。解出阿尔法,我们就可以通过这样的数字计算出W,然后我们再带回支持向量,就可以解出我们的长处或者说我们的截距B。那么到这个地方,我们说SvM的基本表达式,也就是最初阶svm,现阶SVM。对偶问题与KKT条件带回支持向量即可求b虽然表达式已经比较明确了,就是我们这里所呈现的这种形式,那么接下来我们将会去一起探索一下更加复杂的一些svm的表达形式对偶问题与KKT条件到这里,SVM的基本分类表达形式已经明确了这一小节,我们就讲到这里,大家可以登陆我们的网站,去了解跟多的内容,谢谢大家。全面推动学习者能力提升升级实践教学
激发技术创新
助力产业变革大家好,这里是,今天就让我带大家来学习,机器学习当中,最简单的一个算法,名字叫做K近邻,机器学习——支持向量机算法核函数在上一个章节当中,我们一起去讨论了一下支持向量机的基本类型,也就是线性的支持向量机。那么线性支持向量机其实它的核心思想是非常简单的,但是它的数学推导和求解是一个比较复杂的过程。那么经历了上一个章节的学习之后,可能大家会有一些问题,那也有的人很成功的理解了上一次的内容。那么恭喜你们,你们已经理解了支持向量机三分之一的内容。那么在本节当中,我们将一起去探讨一下支持向量机之所以能够解决非线性问题的根本原因,或者说他去解决非线性问题的时候,采用了一个核心的算法,叫做核函数。那我们之前谈到支持向量机在一个非常重要的特点是它极为准确的特性,因为它在数学上是一种理论上的最优解的。但是它也拥有另外的一些炫酷的特性。那么它炫酷特性之一就是它可以解决线性不可分的问题,用到的就是我们之前提到过的核函数的方法。那么首先核函数或者说核方法并不是支持向量机当中独有的一种方法,而是高等数学当中非常常用的一种方法。核函数准确:理论上的最优解炫酷:解决线性不可分那么将核函数和核方法与支持向量机结合起来,我们就可以将支持向量机带到一个解决线性不可分问题的模型当中。那么什么叫线性不可分的问题呢?非常的简单,我们在上一个章节当中已经知道了支持向量机的基本形式,我们可以将所有的参数用阿尔法这样的一个拉格朗日乘子来替换W和B。那么假设我们已经求出了支持向量机的一个具体形式,我们可以得到他的这样的一个表达。但是它只是一个线性的支持向量机面对一些非线性的问题,比如说我们这个图中所面对的问题,这是一个典型的平面直角坐标系。那么大家可能可以看到这个和这个和我们逻辑当中的叉O、R问题非常的相像。比如说我在左上的象限和右下的象限当中有绿色的类别,在左下和右上象限当中有红色的类别。如果是一个线性的分类器,它无论如何也不可能能够非常成功的将所有的样本两个类别非常准确的分开,它最高的准确率也只能达到百分之七十五。那么支持向量机本身它是一个线性分类器。我们怎么让这样的一个线性分类器能够去解决非线性的问题呢?核函数x1x2通过核方法,我们也许可以将数据本身映射到更高维度的空间当中去。那么在高纬度的空间当中,也许使用一个线性的分类平面。比如说这里,我们就可以解决这样的一个分类问题。那么假设我们这样的一个样本拥有两个特征,分别是横轴所对应的X1和纵轴所对应的X2。那么显然在一个二维的空间当中,我们是永远不可能做到把这两类进行一个非常完美的分割。但是呢如果说我把它投影到一个高维空间,我在X1和X2的基础上再为它增加第三维,第三维的数据我使用X1乘以X2,那么大家可以看到。左上上线和右下上线相乘,左下上线和右上下线相乘。那么大家可以看到,我的X1乘以X2这样的一个维度,在第三个坐标轴上就呈现了一个比较线性可分的情况。那么把它投射到这样一个三维的样本空间当中,我们就可以使用一个线性的平面或者说先进的超平面去对它进行一个分割。那么这样的思想就是svm当中去解决非线性问题的一个思想。因为Svm本身只是一个线性分类器,想要去解决非线性问题,就要将它投射到更高维度的空间当中进行解决。核函数(x1,x2)线性不可分(x1,x2
,x1*x2)线性可分我们将svm的基本表达式放在这里,那么大家都知道,在基本型的表达式里,这些都是已知量,那么b也可以使用这样的已知量进行求出。那么当然在这里,我们支持向量机所进行分类或者搜索进行判断的时候,所进行的一个依据就是使用训练好的训练样本当中的特征与测试样本当中,或者说与我们想要拿来判别它是哪一个类别的这些样本的特征进行一个空间上内积的计算。那么通过这样的结果,我们就可以去判断它到底是属于哪一个类别。那么我们姑且把训练级的这一份特征数据叫做Xtrain,把我们未知的这一部分数据叫做X
test。那么在这样一种情况下,我们如果说使用它原始的这种不进行维度投影的这种内积,我们是没有办法去把它进行分割的。但是呢如果说我们把它放到更高的维度上,我们是可以分割的,那么我们这里将它标注为huai
Xtrain,huai
X
test核函数在svm当中,我们就定义这样的一个核函数,这样的一个核函数使得sai,Xtain和saiXtest在高维空间当中的内积可以通过核函数来进行计算,我们把它称作K、Xtrain、Xtest.那么在xml当中有一个特别关键的地方,就是去求得Xtrain和Xtest在高维空间上的内积,也就是去求得我们的huaiXtrain和huaiXtest。有了它之后呢,我们就可以去计算出SvM样本最终的分类结果核函数定义核函数关键问题:求也就是求训练集点与测试点在映射之后高维度上的内积假设我要将我的样本向一个更高的空间上投影,我要将我的样本向它本身基础之上的二维空间再进行去投影的话,那么我们通过这样方式来理解。如果说这里的m是数据本身的维度啊,也就是原始特征的数量,然后呢我们想将它将原始特征当中的维度投影到更高的维度当中去,我们怎么去做呢?我们如果使用非核函数的方法,我们本身的思路是先将原始特征投影到更高的维度上去,然后再进行它们之间内积的计算。这是我们如果说使用非核方法,或者说我们使用常规的方法去进行计算的这样的一个思路。我们使用核方法去进行计算的时候,我们倾向于先计算样本本身的内积,然后再将它投入到oio空间上当中去。那么这样的说法可能从形式上来看没有什么太大的区别,但是从实际上来看,它可以减少非常多的计算量和存储空间.核函数注意其中m是数据的维度(原始特征数量)核函数蕴含了从低维到高维的映射思想,从而避免直接计算高维的内积我们带大家来看一个简单的例子,我们如何将低维空间当中的数据投影到高维空间当中。我们使用非核方法和核方法共同来看一下它的计算过程,大家就会体会到核方法它的计算量和存储空间的占用是多么的少了。那假设我的有一个样本Xtrain,它的特征有三个,分别对应的是一、二、三;Xtest,当然那也是三个特征,一、二、三,我想去将它们投影到更高的维度当中,也就是将这本身的Xtrain和Xtest等投影到在它的基础上所对应的二维空间当中,那怎么去做呢?那我们如果说采用非核方法的话,一、二、三、一、二、三,我们实际上得到的最终的结果应该有九种可能性。假设我们设定Xtrain或者说Xtest当中每一个数据代表一个维度,我们叫做X一、X二、X三。那么将它投影到本身的维度的二维空间当中,可以得到如下一些组合。X一乘以X一是原来空间的二维,对吧?X一乘以X二也是原来空间的二维,以此类推,我们一共可以得到三的平方,也就是九种将原始特征投影到高维空间之后的组
合。那随着特征数量的增多,比如说这里有五个特征随着维度的增加,比如说我们期待在原始特征的基础上将它投影到原始特征所谓的三维空间当中,我们就会出现五的三次方等于一百二十五种这样的组合。那么我们简单以三个特征和二维空间来计算一下这个组合最终所产生的内积。核函数那么非常简单啊,我们将这Xtrain和Xtest进行分别的计算。那么对于Xtrain来说,二、五、三,我们x1,x1就是2乘以2;x1,x2就是2乘以5,我们计算出Xtrain所对应的提高维度之后的特征,也就是我陈列在这里的四十、六十等等这样的一个,我们叫做huai
Xtrain。那么同样我们可以算出huai,Xtest。然后我们将这两者进行一个内积的相乘啊,其实也就是对应元素分别进行相乘,然后再进行相加,最终会得出1936这样的一个最终结果。那么这是我们使用非和方法所得出的特征内积的计算。我们先将Xtrain或者Xtest的特征本身进行维度的增加,它本来是X1、X2、X3,那么除了X1、X2、X3本身之外,我们也又给它增加到了它的二维空间,比如说X1乘以X1,或者说我们叫X1的平方。那么接下来接下来还有一些不同的组合,我们得到了九种结果。那么当然我们之前也讨论过,随着特征本身的增加,或者随着你目标维数的增加,这个特征结果所对应的数量是几何式增长的。那么我们举一个比较正常的,在我们应用当中常用到的情况,比如说我有一百个特征,我想要将它映射到本身所对应的五维的空间当中,那它所带来的结果就是一百的五次方。那么我在这里就需要计算出。一百的五次方个这样的最终结果,那么它的计算量是非常庞大的。我们如果使用非核方法,这也就是svm如果使用非核方法,是没有办法去进行高维度大样本分类的,因为这样的计算计算量实在是太大了。核函数那么接下来我们去使用一下核方法去计算它。那么核方法的计算和非核方法正好是反过来,我们先计算这两者Xtrain和Xtest它们之间的内积,然后再对这个内积进行高维空间的投影。那么我们简单计算一下它内积,也就是44。那么我们发现,我们对这个44进行平方,也就是这个内积再上高维空间投影,它得出的结果也是1936。这就和我们之前先把每一个样本的本身投影到高维空间,再进行累计的计算,所得出的结果是一样的。但是这个计算过程所占用的时间和空间,我们大家也都可以看到,这个计算是非常简单的,而这个计算是非常复杂的。那假设我们还以,那假设我们还以我们刚才举过了一百个特征五维空间的例子来进行对比的话,使用非核方法计算,我们大概需要计算一百的五次方,但是使用核方法计算我们只需要对这一百个维度先进行一次累积,然后对它求一个五次方,也就是说五次运算就可以了。那么最终我们使用核方法对运算量的降低是一个非常大的帮助。所以说这就是在SvM当中,我们可以使用非核方法进行计算,但是它的运算量太大,我们更倾向于使用核方法来进行计算。核函数那么我们就对比一下这两种方法,其实核方法的一个核心,或者说核函数方法的一个核心,就是我们不需要每次都计算出样本的原始点,映射到新维度当中的样本点,然后再进行内积。我们是反过来进行计算,我们先计算这个两者之间的内积,然后再将这个内积映射到高维空间当中去,那么就会大大降低我们的计算量,以及大大减少我们所需要的存储空间。那么这个其实就是SvM当中和方法的一个核心思路。核函数不需要每次都具体计算出原始样本映射的新的无穷维度的样本点直接使用映射后的新样本点的乘就散公式即可减少计算量减少储存空间当然我们进行和方法的映射的时候,我们会有非常多的映射方法。在整个的高等数学当中,核方法的种类其实是非常多的,可能有十几种甚至有几十种。那么在svm当中我们常用比较高效的一些核方法,大概有那么三到五种。那么这里我举了最常用的三种核方法,一种是我们最最常用没有之一的方法叫做高斯核。那么高斯核的一个特点,大家也可以从它的公式上可以看得出来,我们是将维度可以映射到任意的维度。那么这个维度的高低就取决于训练数据和测试数据之间样本差异的大小。如果说训练数据和测试数据之间样本的差异比较小的话,那么它会被映射到一个维度比较低的空间,反之呢会被映射到一个维度比较高的空间。所以我们使用高斯核的时候,它是可以映射到任意的维度的。那么这就使得SvM在处理问题的时候,我们也有可能得到一个比较清晰的分类结果。那么我们还有一个非常流行的方式,叫做多项式核,那么多样式核当中是有一些超参数需要手动指定的,比如说非常典型的就是这个维度N,我想要把它映射到多少维度,当然了,维度越高的话,那么我们有可能得到一个比较好的分类边界。那么当然也有可能因为高维度所带来的一些维度灾难,那么导致我们整个分类的结果不好。那么通常来说,我们不希望将这个超参数N设置的过高。那么最后呢我们还有一种非常经典的核,叫做线性核。那么所谓的线性核,其实如果使用线性核的话,就等于使用了线性可分的svm,那么这个是大家需要注意的几个点。总而言之,我们在整个的Svm当中呢,我们是更加倾向去使用高斯核函数的。当然了,我们还有一些其他的核函数。核函数高斯核可映射到任意维:多项式核可映射到n维:多项式核其实就是线性可分布SVM:将和函数引入之后呢,我们就可以得到SVM,它带有核函数的一个表达形式。那么这个是我们对于目标函数优化之后,将它优化到只剩下一个参数,拉格朗日乘子阿尔法需要求解的一个状态。那么我们对于核函数的使用,我们只是是要将本身这个地方的内积方式换成我们核函数的内积方式,那么我们就可以得到一个svm带有核函数的形式。那么这样的一个形式最后就是我们一个求解目标。当然我们如果说能求出阿尔法的话,那么我们也可以相应的指导对应w和对应的b,我们也可以得到带有核函数形式svm最终的表达。核函数这一小节,我们就讲到这里,大家可以登陆我们的网站,去了解跟多的内容,谢谢大家。全面推动学习者能力提升升级实践教学
激发技术创新
助力产业变革大家好,这里是,今天就让我带大家来学习,机器学习当中,最简单的一个算法,名字叫做K近邻,机器学习——支持向量机算法软间隔与正则化对于svm他们来说,我们现在已经得到了SvM的第二种表达形式,也就是说它更加进阶的一种表达形式,叫做映射到高维度之后带有核函数的SvM表达形式。那么对于svm来说,它是一个数学上的最优解。软间隔与正则化线性不可分,映射到高维度我们想要得到这样的一个最优解,就需要假设有一个分类平面能够完全的满足我们对于样本空间当中所有样本点的分类。软间隔与正则化X1X2但是当样本空间当中出现了一些错误的样本点,或者说出现了一些我们通常称之为离群点的这样的一些数据点,比如我们图示当中所出现的这样的蓝色点和绿色点。我们可以从这种情况中看出,这两个点其实它本身所处的应该是错误的。我们去处理这样的问题的时候,我们应该将这些点进行剔除,因为它会极大地影响到整个分类器所运作的情况。那么对于这样的一种情况,我们不把它叫做线性可分,我们把它叫做近似线性可分。因为只有当去掉了这样的离群点之后,或者说有意的忽略到这样的离群点之后,我们才能够进行接下来的分类。软间隔与正则化X1X2对于Svm来说,如果说我们想构造出这样的一个分类间隔,但是却受了这些离群点的影响,那么我们在svm分类的约束条件当中,我们的Y标签乘以W,X加B大于一,这样的一个事实是永远无法成立的。因为如果说我们考虑到所有的点来构造这样的我们叫做硬间隔的话,因为这两个错误的点,因为这两个离心点的存在,它的约束条件不可能成立,也就导致这样的SvM是不可能有解的,我们就无法构造出这样的一条分类平面。软间隔与正则化X2考虑所有的点构造硬间隔
无解X1那么这种情况下我们怎么办呢?我们期待的是,如果说我们能够去忽略掉这些人群点,我们无视掉它,那么我们的S、M还是可以通过满足这样的约束条件,或者说满足这样的判断条件来构造这样的一个分类间隔的。那么这样的间隔我们就不把它叫做硬间隔,我们把它叫做软间隔,因为它是忽略了样本当中的一些点。那么怎么去实现呢?我们通过加入这样的一些松弛变量来实现这样的问题。什么叫松弛变量呢?大家可以看到这个表达形式,他在后面减去了一个一减去可赛,那么这个可赛呢其实它可以起到一个压缩分类超平面的一个作用,它可以容忍某些点不满足于Y标签乘以W,X加B大于一这样的一个判别条件软间隔与正则化如果我们能忽略掉噪声点松弛变量X1X2所以说我们就可以得到这样的一种形式。对于样本空间当中的所有点1到n来说,我们不期待所有的样本点都能够满足这样的判别条件,而是对于少数的点来说,我们可以放宽这样的一个条件。通过加入可赛,我们在svm当中把它叫做松弛变量来达到这样一个目的。那么使用松弛变量之后呢,整个的svm的优化的最终的目标,或者说它的优化目标加上它的约束条件,就变成这个样子。那么上面还是不变的,因为我们要最小化这个分类间隔。但是下面呢我们将这个约束条件呢后面加上了这个可赛,所以说我们会可以得到一个含有松弛变量的svm的新的形式。软间隔与正则化X1X2对于点(i=1...n),不要求所有的点都能都满足而是对于少数的点,可以放宽条件构造软间隔在约束条件中引入松弛变量的目的是尽可能的抵消离群点带来的影响。也就是说,引入松弛变量后,分类面能够再保持一定鲁棒性的基础上,还能保持一定的分类精度。进一步来讲,svm为了解决离群点问题,用鲁棒性和分类精度做了交易:牺牲精度,增强鲁棒性。软间隔与正则化X1X2避免了分类面向个别点移动使得分类面间隔更大,或者从无解到有解丢弃了对某些点的精确分类使得分类器整体受到了损失所以说我们将这种方式称之为软间隔。那么下面就是它软间隔的一个表达形式。我们做到软间隔的时候,实际是在做一件什么事情?实际我们是在权衡利弊。权衡什么利弊呢?我们权衡的利益是我们避免了整个分裂面上某个或者说某些必须点移动进而导致无解,或者说继而导致分类超平面变得特别少。但是呢我们又丢弃了某些数据,那么使得整个的分类的精度出现了一定的影响。我们希望的是在这两者之间找到一个平衡,找到一个完美的状态,使得它既可以给我们一个比较优质的解,又不至于使这个解丢失太多的精度。那么我们怎么去。做这个事情,就是将这个优化目标当中加入了这样的一个关于松弛变量的这样的一个惩罚部分。那么通常我们对于这个惩罚部分啊,有的会用到可塞,有的会用到可塞的平方,那么这里特别像我们所讲到的这个L
V
1正则和L2正则啊,虽然它不完全一样。那么这里我们以可塞的平方这种方式来进行举例。我们加入了这样的一个惩罚项目之后,那么我们也要给这个惩罚项加上一个系数C,用它来控制这个惩罚项所在整个优化函数当中所占据的比例大小,或者说整个惩罚项对于整个函数优化所产生的影响的大小。软间隔与正则化使用软间隔:避免了分类面向个别点移动使得分类面间隔更大或者从无解到有解丢弃了对某些点的精确分类使得分类器整体受到了损失+-那么我们把这个C叫做惩罚系数。那当然了,惩罚系数本身它是一个超参数,它不是我们这个求解的目标啊,这是我们在计算当中需要预先设定的一个参数。那么如果说。你将这个惩罚系数C设定的越大的话,说明你越不愿意抛弃这些点。那么我们说有如果说有一个极端的情况的话,如果将C设成无限大,那么无论你怎么去优化这个,因为C是无限大,所以导致这个整个的惩罚项也变得无限大,那么你最小化它的目标函数就变得没有意义了,对吧?如果说C把它调到了一个无限大,那么我们就表示我们不愿意放弃任何的点。那么这此时如果说数据当中有一些影响数据的很严重的离群点,那么就会导致整个的优化过程是无解。那么当惩罚系数越小呢,我们就表示我们对于这些点的死活是毫不在意的。如果惩罚系数是零的话,那就等于我们忽略了所有的这些离心点。也就是我们原来最初的SvM那种形式。软间隔与正则化惩罚系数惩罚系数C是一个超参数,不是求解的目标惩罚系数C越大,说明我们越不愿意放弃这些点惩罚系数C小,说明我们对于这些点的死活毫不在意那么当我们将惩罚系数这个东西和松弛变量一起带入到我们的SvM的最终的形式当中,我们也将对它进行优化。那么这个时候我们参数当中或者说我们的整个目标函数当中,我们需要去优化的目标或者说需要去解决的问题,就不只是搭配合并了,那么就多了一个惩罚因子可赛。那么大家都知道,我们使用拉格朗乘子法去解决这种待遇约束条件的这个问题的时候,我们每一个需要求解的系数,我们都需要给它去加上一个拉格朗日的成绩。所以说在这里我们本来是只有一个阿尔法作为拉格朗乘子。那么在这里我们加入另外一个拉格朗日乘子B(贝塔),那么最终我们就可以得出这样的一种形式软间隔与正则化拉格朗日乘子那么在这里我们加入另外一个拉格朗日乘子B贝塔,那么最终我们就可以得出这样的一种形式。那么当我们需要去求拉格朗日乘子的时候,我们最终的优化目标也就变成了去除多个拉格朗日乘子的一个优化目标。软间隔与正则化当然经历了第一节当中,我们对于拉格朗日乘子进行简化、进行优化之后,我们会发现最终这个C因为它本身是一个预先设定的一个值,它是一个常数。那么我们会发现它的最终形式其实还是一个线性svm,因为我们没有使用核函数,我们也没有使用任何的其他技巧,而周集本身还是一个线性的svm,只不过我们加入了一个惩罚系数C和一个松弛变量可赛。所以说我们当我们得到最终的形式之后,我们会发现最终的形式和我们的线性svm当中的形式非常的像,只不过呢我们这里多了一个约束条件,那么我们对于阿尔法约束条件变成了阿尔法要大于零,但是要小于c,那么这就是带有软间隔的svm的一个基本形式。软间隔与正则化硬间隔软间隔这一小节,我们就讲到这里,大家可以登陆我们的网站,去了解跟多的内容,谢谢大家。全面推动学习者能力提升升级实践教学
激发技术创新
助力产业变革大家好,这里是,今天就让我带大家来学习,机器学习当中,最简单的一个算法,名字叫做K近邻,机器学习——支持向量机算法SMO算法在前面的几个小节当中,我们已经探讨了svm所对应的几种情况。在软间隔当中,我们将最基本的线性svm算法加上了松弛变量,加上了惩罚因子,最终我们得出了这样的一种形式。形式上并没有发生太大的改变,但是它的约束条件却加上了一条a必须要小于c,同时还要大于零。在线性不可分svm当中,我们引入了核函数的方法,我们使用核函数先计算内积,再将内积投影到高维,这样一种思路来避免了大量的计算,节省了内存和计算的开销。那么我们将这两种形式结合起来,再加上线性svm最基本的形式,我们就可以得到我们svm函数的完整,也就是说我们日常所使用的svm,那么我们最终求解的优化目标就会变成既有核函数又有惩罚因子这样的一个目标。我们将它最终的表达形式全部使用阿尔法解析出来之后,那么我们最终可以发现它是这样的一种形式,我们既要去解析出阿尔法。那么当然了,在求解过程当中,如果解除阿尔法,那么其他的几个参数我们也可以依据阿尔法非常轻松的进行求解。那么这就是一个svm函数的完整。那么接下来我们就会进入到svm当中去解决问题的一个问题叫做我们如何去求解阿尔法。我们求解出阿尔法之后,整个svm的问题就会迎刃而解。那么我们如何去求解阿尔法呢?你们可以知道,通过这样的一个拉格朗日表达式可以看出,直接去进行阿尔法的求解的话,是近乎不可能的,我们没有办法去求解出这样一个非常复杂的拉格朗日方程当中的拉格朗日乘子。SMO算法软间隔线性不可分:核函数软间隔+核函数,SVM完全体那么我们怎么样去使用某种方法去解决这样的一个拉格朗日乘子阿尔法?这就是我们这里要介绍的内容,叫做SvM算法。那么它的全称叫做secure,minimum,ofcommunication。翻译成中文应该叫做最少序列化优化方法。SMO算法如何求解αSMO算法所谓的最小序列化优化方法它包含了两个思想,所以说它是一个二次规划加算法和启发式算法的过程。那么为什么要这么做呢?因为直接去求解所有的阿尔法是一个非常复杂的工作,所以我们将这样的一个工作拆分成了一部分一部分先去做,每一次呢去求解一对阿尔法的值,那么将对阿尔法就是求解的过程当中,将任何其他的阿尔法设为固定常数,那么一对一对一对一对,最后这样逐渐的一个求解过程,我们就可以求解到所有的阿尔法。那么为什么说它是包含了一个二次规划的思想呢?这其实是两个问题,这两个问题包括我们如何去求解本轮的阿尔法,也就是这两个阿尔法比如说是阿尔法一和阿尔法二。那么还有一个问题是我们如何在所有的阿尔法当中,去决定哪两个阿尔法才是我们本轮需要求解的阿尔法呢?这就是s、m、o算法要面对的两个问题。那么当然了,它的最终的结论或者说最终我们期待的形式是我们每轮优化一对阿尔法值到结束,结束条件是什么呢?还要满足所有的阿尔法都要满足的kkt条件。SMO算法求解α的过程是一个二次规划+启发式算法的过程如何选择该轮此优化的α如何优化解本轮的α每一对α都要满足KKT条件每一轮优化一对α直到结束那么我们先从第一个问题开始探讨,假设呢我们已经选定了本轮的两个阿尔法进行求解,那么我们在这一部分里。具体参考一下我们该如何去求解这两个阿尔法。那么这里是我们svm的最终的一个表达形式,那么我也将基本型svm的配置条件和我们完全体svm的配置条件都陈列在下方了。那么这些条件就是我们去求解这个整个优化过程当中需要用到的一些条件。SMO算法基本型SVM
KKT条件完全体SVM
KKT条件如何优化解本轮的α现在假设我们已经选定了一对α其实我们去求解本轮阿尔法的时候,我们可以认为它是一个非常非常单纯的数学问题,我们如何去理解这个问题呢?我们首先将我们最终求解的这个形式来进行一个符号上的兑换啊,这样的一个符号上的规范,然后呢我们就可以将这个目标函数进行展开。那么当然展开的时候它就要分成两部分了,因为我们是将当前的这一对阿尔法和其他的所有的阿尔法分布进行解析的。那么在等式展开的左半部分呢。我给大家列出了,如果说我展开了本对阿尔法,它应该是一个怎样的形式,那么你跟上面的形式这里去进行对比的话,就会发现它的每一项在展开的时候其实都是一一对应的。那么当然了,右边呢我将剩余的阿尔法也就是如果说我们本队的阿尔法取的是阿尔法一和阿尔法二,那么我将剩余的阿尔法三、四一直到N,放在了后面的这个展台向当中。那么大家注意这个后最后的一个转向C呢我们把它记作一个常数,因为我们在进行SvM求解的时候,我们将非当前的阿尔法对,都是做一个常数。那么这个也非常好理解,因为常处在进行求导的时候,它的导数是零,对吧,所以说我们把它视作一个常数,但其实它的真实形式应该是这个样子。那么我们有了这样的展开式之后呢,我们就可以根据我们的约束条件去加阿尔法一和阿尔法二分别表示出来。那么阿尔法一和阿尔法二等于什么呢?那么在这里希望大家能够去注意一下啊,因为我查阅了很多资料,在这里他们并没有给出一个比较合适的解析。那么怎么去表达阿尔法一和阿尔法二呢?非常的简单,因为呢我们说所有的阿尔法i和y
i相乘,最终求和的结果应该是零。那么我们可以将它还是分开来看待,我们将前半部分解析为阿尔法一,Y一,阿尔法二,Y二。那么第二部分呢就是剩余的阿尔法和Y,那么这两部分的相加应该是等于零的,从我们前面就可以推导出来。所以说如果说我将这一部分也就是我们的C,这里用C来代替写到这里的话,那么我们最终的结果会是阿尔法一,Y一加上阿尔法,Y二等于C,其实也就是把这部分移到了等号的右边,那么我们可以得到这样的一个表达形式。SMO算法如何优化解本轮的α本对α(1,2)目标函数展开剩余α(3,4.....n)那么有了这样的一个表达形式之后呢,我们可以通过这样的表达形式将阿尔法一表述出来,还是其实就是将这个等号进行一个移动,然后再除去Y一。因为我们期待的是同时求解两个阿尔法,还是一个比较复杂的问题,如果我可以将其中的一个阿尔法表示成为另外一个阿尔法,比如说我将所有的阿尔法一都用一个阿尔法二的形式来表示,那么我是不是整个的求解过程当中,我只需要求解阿尔法一,然后我就可以根据阿尔法一计算出阿尔法二,那么我也就求解出当前对阿尔法。那么我们再将阿尔法一代回到原来的形式当中啊,那么我们最终就可以得到像这样的一个解析式。那么我们得到了这个表达数之后呢,我们也需要稍微注意一下我们的标签数据,不是一就是负一,对吧?所以说。不管它是一还是负一,那么它的平方那就等于一。那么我们可以根据这个将这样的一个式子向下继续解析,或者说继续化简如下一种形式。其实我们在这里也非常简单,我们只是将Y一的平方和Y二的平方都提取出来,令它等于一。然后从这个数字我们就可以发展到下面这个数字。SMO算法y=±1那么我们在得到了这样的一个表达式之后,那么你们大家会发现这个数字呢整个表达式都只包含了阿尔法二这样一个我们需要去求解的当前的拉格朗日乘子,既然我们已经有了这样的一个表达式,我想去求阿尔法二的话,我是不是只需要令这个表达式的偏导等于零,我们就可以把阿尔法二求出来,或者至少通过某种表达式能够表达出来。那么我们对阿尔法二是求偏导啊,则得出来的是这样一种形式,那么我们这偏导等于零我们去看。那阿尔法二能够以什么样的形式表达出来。那么这里的推导过程也需要大家注意,很多的书上也没有写清楚。那么这个负一到上面没有的过程,其实也非常我们因为我们前面说过了,Y不管是正还是负,它的结果的平方一定是等于一的。所以我们在这个地方呢,我们使用Y二的平方将这个一进行替换,然后我们将这个Y二提取到这里,然后将将阿尔法二提取到等式的左边,那么最终我们就可以化简成这样的一个等式。那么像这个K一、K二和二K一二都是符合函数对于每一个X一和X二的乘积,这个其实都是已知量。那么C呢我们将它视为一个常数,那么后面这部分呢就是我们将这个一等同于Y二平方,然后将它提取而来的。那么我们就得到了这样的一个表达式,那么我们对这个表达式再进行进一步的展开,就是把这一部分进行展开,这里的约束条件是C
ge
ma阿尔法i,Yi等于零。那么我们完全可以将这个阿尔法i、Yi通过分离的方式,也就是分离成阿尔法一、阿尔法二和剩余的阿尔法部分,也就是FX的部分。然后呢其实我们这个每一个地方就等同于所有的预测值减去单独的阿尔法一和阿尔法二所产生的预测值。那么我们将这个等式展开为下面的这个等
式,我们就可以得到SMO算法当中求阿尔法二的一个具体的表达形式。那么有了这个表达成功之后呢,我们就可以对阿尔法二进行一个更新的工作.SMO算法只包含,令偏导等于=0求起来吧那么前面我们都知道了,阿尔法一,Y一加上阿尔法二,Yi等于C等于我们这样的一个常数,我将以已知这一段儿,或者说我们在初始化进行第一轮更新的时候,通常我们会把这个设置为零我们叫这个我们现在把它叫做这个旧的阿尔法和阿尔法二。那么这个旧的阿尔法一和阿尔法二呢代入我们刚才的那个等式之后呢,我们就可以通过刚才的这个等式来进行进一步的化简和优化,那么最终我们就可以得出这样的一种形式。那么在这样的形式当中呢,我们将这里的fx一和fx二,与y一和y二进行一个总结。那大家可以知道fx一其实就是它的一个预测值,fx二就是关于fx二它的一个预测值。那么我们将fx一和y一进行一个组合,那么yx二和y二进行一个组合,那么我们最终就可以得出预测值和实际值在fx一和fx二上的这样的一个差值。我们把它叫做E,或者说叫做L,我们用E来表示。那么前面的呢k一、k二和二k一,二就是我们核函数锁定的每个变量之间的一个计算,那么它也是一个已知量,我们将它用miu来表示。那么最终呢我们去更新阿尔法二的时候,其实就可以通过这样的一种表达形式来进行表达了,我们E1减去E2除以miu,上面是阿尔法二旧的,然后再乘一百二。那么这样的一个表达形式就是我们如何去更新阿尔法二的一个表达形式。那么新的阿尔法二出来之后呢,我们是不是就可以根据新的阿尔法二去更新新的阿尔法一,那么我们就可以逐步、一次一次的去更新每一对儿的阿尔法。SMO算法但是实际上这个问题没有这么简单啊,它是一个更加复杂的问题,为什么呢?因为阿尔法本身我们前面知道它是有约束条件的,这阿尔法本身它大于0,但是它要小于我们的惩罚力c。所以说如果说我们将阿尔法一和阿尔法二在整个的数轴空间当中表示出来的话呢,我们会发现阿尔法一和阿尔法二都有自己相对应的空空间。那么我们分两种情况来讨论。第一种情况,当y一不等于y二啊其实也就是啊y一等于一,y二等于负一,或者是y二等于一,y一等于负一的时候,那么是一种情况。那么另一种情况呢,y一等于y二的时候呢,我们说又会取得另一种情况。那么我们设定l和h为边界的边界值,那么我们就可以将l和h用阿尔法的方式来表达出来。SMO算法设定边界L,H这两种情况分开,我们可以得到l和h不同的表达值分别对应上面这两种情况。那么这个可能是大家在大多数的教材或者资料上能看到的一种情况。那么对于我来说呢,其实我不喜欢将Y一和Y二分不同的情况来进行讨论。那么我通常喜欢这样的表达形式,我将Y一和Y二进行一个相乘,如果他们是同号的话,也就一乘以一或者说负一乘以负一,那么他们得出的结果肯定是一。那如果是异号的话,他们都说这个是负一。那么我将X表示为Y一Y二的乘积。那么最终呢L和H呢我们用一种公式进行表达,这样一种公式。那么其实L和H是什么呢?其实就是阿尔法一、阿尔法二所谓的这种约束条件,对吧?所以说我们最终更新的时候呢,我们更新出了新的阿尔法二。这里为什么加了一个星号?意思是这个阿尔法二是理论上的情况,那么我们还要将这个理论上的情况代入这个约束条件当中,去寻找到它带有约束条件最终的阿尔法二的形式。那么我们根据约束条件,最终阿尔法二的形式就应该是这样的一种形式。那么至此我们SMO算法当中,我们已经通过这样的更新的方式更新出了阿尔法二。那么在每一轮的阿尔法二被更新了之后呢,我们就可以通过计算每一轮的阿尔法一,当本轮的阿尔法一和阿尔法二更新好了之后呢,我们就可以去选择下一轮的阿尔法去进行更新了。那么以此类推,当我们将所有的阿尔法都更新完成的时候,我们是不是就能够去求得整个啊?那么将阿尔法代回到我们SMO的表达式当中,我们就可以求得W,也求得B,那么最终就可以完善整个SvM的表达形式。SMO算法那么接下来我们来探讨第二个问题,就是我们如何去寻找哪一对儿阿尔法是我们当前当务之急,需要去更新的。其实这个比前面的。如何优化求解阿尔法更加容易理解一些,因为非常简单,我们优化的目标是什么呢?我们是所有的阿尔法,每一对儿阿尔法都符合kkt条件,对吗?那么我们自然要从它的反面下手,我们要需要去找到违反kkt条件最严重的那个阿尔法,如果说我们能把最严重的这个阿尔法更新成功了之后,那么接下来我们更更新的工作量就会变小,或者说接下来我们更新就会变得更
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河南省焦作市单招职业倾向性测试题库附答案
- 2026年电工电子期末试题(突破训练)
- 2026年安顺职业技术学院单招职业技能测试模拟测试卷附答案
- 2026年泉州纺织服装职业学院单招职业倾向性测试模拟测试卷必考题
- 2025年企业品牌推广与公关实务手册
- 广东省茂名市电白区第二次赴高校公开招聘2026年度急需紧缺人才备考题库含答案详解
- 护理实践中的安全风险
- 广州华商职业学院2025-2026学年招聘70人备考题库及一套参考答案详解
- 广州市从化区中医医院2025年第二次公开招聘编外工作人员备考题库完整参考答案详解
- 广州市天河区华港幼儿园2026年1月公开招聘编外聘任制专任教师备考题库完整答案详解
- 钬激光在皮肤科手术中的临床应用
- 2024年4月自考00612日本文学选读试题
- 《海上风电场工程岩土试验规程》(NB/T 10107-2018)
- 设备安装施工方案范本
- 地产公司设计部工作总结
- 卫生院副院长先进事迹材料
- 《期权基础知识》课件
- 复发性抑郁症个案查房课件
- 人类学概论(第四版)课件 第1、2章 人类学要义第一节何为人类学、人类学的理论发展过程
- 《功能性食品学》第七章-辅助改善记忆的功能性食品
- 2023秋季学期国开思政课《思想道德与法治》在线形考(专题检测1-7)试题及答案
评论
0/150
提交评论