解密SVM系列(二):SVM的理论基础

上节我们探讨了关于拉格朗日乘子和KKT条件。这为后面SVM求解奠定基础,本节希望通俗的细说一下原理部分。

一个简单的二分类问题例如以下图:

我们希望找到一个决策面使得两类分开。这个决策面一般表示就是WTX+b=0,如今的问题是找到相应的W和b使得切割最好。知道logistic分类 机器学习之logistic回归与分类的可能知道,这里的问题和那里的一样。也是找权值。在那里,我们是依据每个样本的输出值与目标值得误差不断的调整权值W和b来求得终于的解的。当然这样的求解最优的方式仅仅是当中的一种方式。那么SVM的求优方式是如何的呢?

这里我们把问题反过来看,如果我们知道了结果。就是上面这样的分类线相应的权值W和b。

那么我们会看到,在这两个类里面,是不是总能找到离这个线近期的点。向以下这样:

然后定义一下离这个线近期的点到这个分界面(线)的距离分别为d1,d2。

那么SVM找最优权值的策略就是,先找到最边上的点。再找到这两个距离之和D,然后求解D的最大值。想想如果依照这个策略是不是能够实现最优分类,是的。好了还是如果找到了这样一个分界面WTX+b=0,那么做离它近期的两类点且平行于分类面,如上面的虚线所看到的。

好了再如果我们有这两个虚线。那么真实的分界面我们觉得正好是这两个分界面的中间线,这样d1就等于d2了。由于真实的分界面为WTX+b=0,那么就把两个虚线分别设置为WTX+b=1和WTX+b=?1能够看到虚线相对于真实面仅仅是上下移动了1个单位距离。可能会说你怎么知道正好是一个距离?确实不知道,就如果上下是k个距离吧,那么如果上虚线如今为WTX+b=k。两边同一时候除k能够吧,这样上虚线还是能够变成WT1X+b1=1,同理下虚线也能够这样。然后他们的中线就是WT1X+b1=0吧。能够看到从k到1。权值无非从w变化到w1,b变到b1,我在让w=w1,b=b1,不是又回到了起点吗。也就是说,这个中间无非是一个倍数关系。所以我们仅仅须要先确定使得上下等于1的距离,再去找这一组权值。这一组权值会自己主动变化到一定倍数使得距离为1的。

好了再看看D=d1+d2怎么求吧,如果分界面WTX+b=0。再如果X是两维的。那么分界面再细写出来就是:w1x1+w2x2+b=0。上分界线:w1x1+w2x2+b=1,这是什么。两条一次函数(y=kx+b)的曲线是不是,那么初中就学过两直线的距离吧,d=|c2?c1|w21+w22???????√=1||W||

这里W=(w1,w2),是个向量,||W||为向量的距离。那么||W||2=WTW。下界面同理。

这样D=d1+d2=2||W||=2WTW?????√等效2WTW,要使D最大。就要使分母最小。这样优化问题就变为min(12WTW),乘一个系数0.5没影响,可是在后面却实用。

我们知道。如果一个一次函数分界面为WTX+b=0,那么线上方的x能够使得WTX+b>0,下方的x能够使得WTX+b<0吧。那么对于上界面以上的点就有WTX+b>1,下界面以下的点就有WTX+b<?1。我们如今再如果上界面以上的点的分类标签为1,下界面以下的点的分类标签为-1。

那么这两个不等式再分别乘以他们的标签会怎么样?是不是能够统一为yi(WTxi+b)≥1了(这也是为什么SVM在使用之前为什么要把两类标签设置为+1。-1,而不是0,1等等之类的了)。好了如果分界面一旦确定,是不是全部点都得满足这个关系。那么终于的带约束的优化问题转化为:

min12WTWs.t.yi(Wxi+b)≥1

把约束条件换成小于号的形式:

s.t.1?yi(Wxi+b)≤0

注意的是这可不是一个约束条件。而是对全部的每个样本xi都有一个这样的约束条件。

转换到这样的形式以后是不是非常像上节说到的KKT条件下的优化问题了。就是这个。

可是有一个问题。我们说上节的KKT是在凸函数下使用的,那么这里的目标函数是不是呢?答案是的。想想WT?W,函数乘出来应该非常单一,不能有非常多极点,当然也也能够数学证明是的。

好了那样的话就能够引入拉格朗日乘子法了,优化的目标变为:

L(w,b,α)=12wTw+α1h1(x)+...+αnhn(x)=12wTw?α1[y1(wx1+b)?1]?...?αn[yn(wxn+b)?1]=12wTw?∑i=1Nαiyi(wxi+b)+∑i=1Nαi

然后要求这个目标函数最优解,求导吧,

?L?w=w?∑i=1Nαiyixi=0?w=∑i=1Nαiyixi?L?b=?∑i=1Nαiyi=0?∑i=1Nαiyi=0

这两个公式非常重要。简直是核心公式。

求导得到这个应该非常easy吧,那我问你为什么WTW对w求导是w呢?如果你知道,那么你非常厉害了,反正開始我是一直没转过来。

事实上说起来也非常easy。如果光去看看为什么求导以后,转置就没了。不太好想明确,设想一下如果如今是二维样本点。也就是终于的W=(w1,w2)。那么WTW=w1?w1+w2?w2那么对w1求导就是2w1,对w2就是2w2,这样写在一起就是对w求导得到(2w1,2w2)=2w了。然后乘前面一个1/2(这也就是为什么要加一个1/2),就变成w了。

好了得到上面的两个公式,再带回L中把去w和b消掉,你又可能发现,w确实能够消,由于有等式关系,那b怎么办?上述对b求导的结果居然不含有b,上天在开玩笑吗?事实上没有,尽管没有b,可是有那个求和为0呀,带进去你会惊人的发现。b还真的能够消掉,就是由于了那个等式。

简单带下:

W(α)=L(w,b,α)=12(∑i=1Nαiyixi)T(∑j=1Nαjyjxj)?∑i=1Nαiyi((∑i=1Nαiyixi)xi+b)+∑i=1Nαi=12(∑i,j=1Nαiyiαjyjxi?xj)?∑i,j=1Nαiyiαjyjxi?xj+b∑i=1Nαiyi+∑i=1Nαi=?12(∑i,j=1Nαiyiαjyjxi?xj)+∑i=1Nαi

那么求解最最開始的函数的最小值等价到这一步以后就是求解W的最大值了,由于使用了拉格朗日乘子法后,原问题就变为其对偶问题了,最小变成了最大,至于为什么,等到具体研究过对偶问题再来解释吧。不了解的。仅仅须要知道求W的极值就可以。

整理一下。经过这么一圈的转化。终于的问题为:

maxW(α)=?12(∑i,j=1Nαiyiαjyjxi?xj)+∑i=1Nαis.t.αi≥0∑i=1Nαiyi=0

为什么有αi≥0,这是上节说到的KKT条件的必须。至此问题来源部分到这。

细心的你肯可能会发现。上述全部的构造等等都是在数据全然线性可分,且分界面全然将两类分开。那么如果出现了以下这样的情况:

正负两类的最远点没有明显的分解面,搞不好正类的最远点反而会跑到负类里面去了,负类最远点跑到正类里面去了,要是这样的话,你的分界面都找不到。由于你不可能找到将它们全然分开的分界面,那么这些点在实际情况是有的。就是一些离群点或者噪声点,由于这一些点导致整个系统用不了。当然如果不做不论什么处理确实用不了。可是我们处理一下就能够用了。SVM考虑到这样的情况,所以在上下分界面上增加松弛变量?i,觉得如果正类中有点到上界面的距离小于?i,那么觉得他是正常的点。哪怕它在上界面略微偏下一点的位置,同理下界面。还是以上面的情况,我们目測下的是理想的分解面应该是以下这样的情况:

如果依照这样的分会发现4个离群点。他们到自己相应分界面的距离表示如上,理论上讲,我们给每个点都给一个自己的松弛变量?i,如果一个分界面求出来了,那么比較这个点到自己相应的界面(上、下界面)的距离是不是小于这个值,要是小于这个值。就觉得这个界面分的能够,比方上面的?3这个点。尽管看到明显偏离了正轨,可是计算发现它的距离d小于等于我们给的?3,那么我们说这个分界面能够接受。你可能会说那像上面的?10,距离那么远了,他肯定是大于预设给这个点的?i了对吧,确实是这样的,可是我们还发现什么?这个点是分对了的点呀。所以你管他大不大于预设值,反正不用调整分界面。

须要调整分界面的情况是仅仅有当相似?3这样的点的距离大于了?3的时候。

好了那么由于松弛变量的增加。导致每个点的约束条件就变化了点,像上界面以上的点,它满足的条件可能就是:WTxi+b≥1??i,yi=1

而下界面可能就是:WTxi+b≤?1+?i,yi=?1

而且?i≥0。

统一在一起,整个问题就变成:

min12WTW+C∑i=1N?is.t.1+?i?yi(Wxi+b)≤0?i≥0

你发现目标函数里面多了一点东西。而加上这个是合理的,我们在优化的同一时候。也使得总的松弛变量之和最小。常数C决定了松弛变量之和的影响程度。如果越大,影响越严重。那么在优化的时候会很多其它的注重全部点到分界面的距离,优先保证这个和小。

好了将问题写在一起吧:

L(x,α,β)=12WTW?∑i=1Nαi(yi(Wxi+b)+?i?1)+C∑i=1N?i?∑i=1Nri?i

然后对w,b,?分别求导数:

?L?w=w?∑i=1Nαiyixi=0?w=∑i=1Nαiyixi?L?b=?∑i=1Nαiyi=0?∑i=1Nαiyi=0?L??i=0?C?αi?ri=0

观察第三个式子,由于ri≥0,所以c?αi≥0?αi≤C,结合αi≥0那么0≤αi≤C,把这三个导数结果带到目标函数中去消掉相应的w,b以及ri,你会惊人的发现。连?i也消掉了。而且目标函数和没有加松弛变量的一模一样:

W(α)=?12(∑i,j=1Nαiyiαjyjxi?xj)+∑i=1Nαi

这么说。溜了一圈下来。无非多了个αi≤C,其它的什么也没有变,真好。那么统一一下。更一般的带松弛变量的优化函数以及约束条件就变为:

W(α)=?12(∑i,j=1Nαiyiαjyjxi?xj)+∑i=1Nαis.t.0≤αi≤C∑i=1Nαiyi=0

剩下的问题是怎么去找这样一组最优解αi了。

看过上节的可能会知道。在上节的最后那个实例中也是寻找αi。只是那里仅仅有两个αi。而αi要么等于0。要么大于0。而αi大于0的时候,相应的另外一个因子就等于0。

然后讨论这四种情况找到满足解。

可是我们这里的αi可不止2个,想挨着讨论是不行的,且这里的KKT条件和上节的那个还不太一样。那么这里的KKT条件是什么呢?具体又要怎么解这样一堆αi的问题呢?请看下节的SMO算法求解SVM问题。

时间: 2024-10-03 06:09:07

解密SVM系列(二):SVM的理论基础的相关文章

解密SVM系列(五):matlab下libsvm的简单使用

本节简单介绍一下libsvm的使用方法.关于libsvm似乎曾经使用过,那个时候主要用libsvm进行简单的人脸识别实验.当时还翻译过关于libsvm里面的matlab英文文档 那么现在最新版本的libsvm为3.2.0,下载地址如下: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 下载下来的libsvm其实包含好多个平台的工具箱软件,c++,matlab,java,python都有.他们的函数使用方法是一样的. 那么在下载完以后,点击里面的matlab下平

解密SVM系列(五):matlab下libsvm的简单使用:分类与回归

本节简介一下libsvm的用法. 关于libsvm似乎以前使用过.那个时候主要用libsvm进行简单的人脸识别实验.当时还翻译过关于libsvm里面的matlab英文文档 介绍与分类实验 那么如今最新版本号的libsvm为3.2.0,下载地址例如以下: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 下载下来的libsvm事实上包括好多个平台的工具箱软件,c++.matlab,java,python都有. 他们的函数用法是一样的. 那么在下载完以后,点击里面的

支持向量机(SVM)(二)-- 拉格朗日对偶(Lagrange duality)

简介: 1.在之前我们把要寻找最优的分割超平面的问题转化为带有一系列不等式约束的优化问题.这个最优化问题被称作原问题.我们不会直接解它,而是把它转化为对偶问题进行解决. 2.为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点.即拉格朗日函数,再通过这个函数来寻找最优点. 3.约束条件可以分成不等式约束条件和等式约束条件,只有等式约束条件的问题我们在高等数学课

pluskid&#39;SVM系列笔记(可当做目录对照看)

0.训练数据对分类器性能的影响 原文链接:http://blog.pluskid.org/?p=223 1.训练数据的不平衡性对分类器性能的影响(precision .accuracy.error rate 等) 2.SVM(support vector machine)通过hyperplane切分数据,so we can have lots of reasonable hyperplane. 对于需要复杂曲线才能切分的边界:将数据映射到高维空间,这样通常都能转化成可用线性边界切分的情况, us

【转载】支持向量机SVM(二)

支持向量机SVM(二) [转载请注明出处]http://www.cnblogs.com/jerrylead 6 拉格朗日对偶(Lagrange duality) 先抛开上面的二次规划问题,先来看看存在等式约束的极值问题求法,比如下面的最优化问题: 目标函数是f(w),下面是等式约束.通常解法是引入拉格朗日算子,这里使用来表示算子,得到拉格朗日公式为 L是等式约束的个数. 然后分别对w和求偏导,使得偏导数等于0,然后解出w和.至于为什么引入拉格朗日算子可以求出极值,原因是f(w)的dw变化方向受其

【机器学习具体解释】SVM解二分类,多分类,及后验概率输出

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51073885 CSDN?勿在浮沙筑高台 支持向量机(Support Vector Machine)以前在分类.回归问题中非常流行.支持向量机也称为最大间隔分类器,通过分离超平面把原始样本集划分成两部分. 首先考虑最简单的情况:线性可分支持向量机.即存在一个超平面能够把训练样本分开. 1.线性可分支持向量机 1.考虑一个线性二分类的问题:例如以下左图,在二维平面上有两种样本点x

【机器学习详解】SVM解二分类,多分类,及后验概率输出

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51073885 CSDN?勿在浮沙筑高台 支持向量机(Support Vector Machine)曾经在分类.回归问题中非常流行.支持向量机也称为最大间隔分类器,通过分离超平面把原始样本集划分成两部分. 首先考虑最简单的情况:线性可分支持向量机,即存在一个超平面可以把训练样本分开. 1.线性可分支持向量机 1.考虑一个线性二分类的问题:如下左图,在二维平面上有二种样本点x,目

4.Java 加解密技术系列之 HMAC

Java 加解密技术系列之 HMAC 序 背景 正文 代码 结束语 序 上一篇文章中简单的介绍了第二种单向加密算法 — —SHA,同时也给出了 SHA-1 的 Java 代码.有这方面需求的童鞋可以去参考一下.今天这篇文章将要介绍第三种单向加密算法 — — HMAC,其实,这种加密算法并不是那么常用,最起码,在我写系列博客之前,我是没有听说过它的.当然,这并不是说 HMAC 不出名,肯定是我孤落寡闻了. 背景 之所以在单向加密算法中介绍 HMAC 这种“不常见的”算法,一是因为“没见过”,二是因

Java 加解密技术系列之 MD5

序 上一篇文章中,介绍了最基础的编码方式 - - BASE64,也简单的提了一下编码的原理.这篇文章继续加解密的系列,当然也是介绍比较基础的加密方式 - - MD5,MD5 属于单向加密算法,是不可逆的加密方式,也就是说,采用了 MD5 加密方式加密之后,就不能对加密的结果进行解密,得到原有的字符串,这是不可以的. 背景 相信在我们的生活中,MD5 用到的还是很广泛的.在说 MD5 之前,首先来了解一下单向加密算法都有哪些.当然,MD5 是其中之一,除此之外还有,SHA,HMAC 等这几种算法.

ASP.NET MVC学习系列(二)-WebAPI请求

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU