【SVM】推算公式的由来

news/2024/7/4 9:21:32

主要说明SVM是干什么用的,怎么来的,如何推导公式。
(其中有些公式没有严格打出来,比如矩阵W的转置,大家意会即可)。


一、SVM怎么来的

1、介绍PLA

PLA是perceptron learning algorithm,主要处理线性可分的数据。

比如二分类,pla做的就是找到空间中的一条线或超平面,能够将所有点正确分类。用权重w表示这个线或超平面。

即sign(wx)=y

过程是:

  • 首先给出初始化权重。
  • 对于Wt,找到其分类的一个错误点(x,y),sign(wx)不等于yn
  • 进行错误修正,W(t+1)=Wt+ynx
  • 迭代,直到找到权重W分类没有错误为止。

这样,PLA就找到了那条线性可分的线或超平面。

这里写图片描述

2、SVM

上面说PLA找到了线性可分的线或超平面,但是,这种线或超平面可能存在多条,但哪条最好呢?

这里写图片描述

上图中我们直观感受觉得第三条线最好。这是因为这条线看起来分割的更为均匀,当线稍微倾斜时,也能做到线性可分,但第1、2条看起来就没那么容易了,稍微一倾斜,就不再是线性可分线。

我们测试时拿到的数据经常是有噪音(如测量误差)的,经常会发生“倾斜”这种情况。SVM所做的就是找到一条最优的线性可分的线或超平面,使得其能够最大程度的避免因测量误差所造成的分类错误。

二、如何选最优线或超片面

1、直观上

直观上我们来看,就是找到一条最肥的线,而且这条线还能保证分类正确,即y(wx+b)>0.

我们用margin来表示线的肥瘦程度,margin定义为空间中的点到线的最小距离。目标就是找到一个最大的margin。如图:

这里写图片描述

2、距离

现在我们有了目标了,即得到一个最优的margin。但是条件中的距离如何表示呢?

我们已知要找的那个超平面符合wx+b=0,则我们可以找到这个超平面的的两个点,x’,x”,则有

wx’+b=0,
wx”+b=0

则w(x’-x”)=0,可以知道w就是这个超平面的法向量。

则空间内一点x,与x’连接,构成向量x-x’,这个向量在法向量w上的投影就是点x到平面的距离(做内积后要除以w的模,保证求到的是距离)。即w(x-x’)/||w||,如图所示:

这里写图片描述

但是,上图中,距离公式有|wx+b|,带有绝对值,我们不希望在求解时带有绝对值,于是想到,这个平面对每个点都是线性可分的,其y(wx+b)必然要大于0,所以,我们可以用y(wx+b)来代替|wx+b|,经过这一番,

于是,我们的目标现在变成如下图所示:

这里写图片描述

3、简化

其实空间中没有那么多的线和超平面,很多线和平面都是平行的,wx+b=0与3wx+3b=0其实是一条线或平面,所以,我们可以对上图中的距离公式进行缩放。

缩放为

这里写图片描述

当然,有了这个条件后,我们的条件y(wx+b)>0也可以去掉了,于是,现在目标变为下图:

这里写图片描述

好,现在我们已经得到一个比较明确的优化目标了,但是,我们需要求max,还需要求min,这太麻烦了,我们希望把这个min去掉,

所以,只需改成

这里写图片描述

当然,我们把条件范围扩大,会不会每个值都大于1,不存在等于1的情况,还能得到想要的最优解吗?这里我们反证一下。

如何我们得到一个解(b,w),其y(wx+b)>1.2(即min不等于1),此时,我们可以得到另外一组(b/1.2,w/1.2),w与b变得更小了,于是得到另外的margin=1/||w||更大,发现了一个更优解,这与之前解矛盾。所以我们可知扩大条件范围仍然能得到最优解。

于是,现在优化目标变为:

这里写图片描述

当然,我们还要对这个公式进行优化,

我们不喜欢进行max,希望改成min,所以可以改为min||w||,

我们也不喜欢求绝对值,将||w||改为w.w,为了以后计算方便,我们加系数1/2,则为min 1/2(w.w)

于是,最后目标变为:

这里写图片描述

好,以上就介绍完了SVM推导是如何来的。

三、求解SVM

这个可以直接用二次规划来做,很多现成的软件可以直接拿来用。具体数学怎么推导计算的,还没有仔细看。



http://www.niftyadmin.cn/n/1693257.html

相关文章

Input系统之键值映射

一. 概述 android系统的输入事件来源在linux内核提供的/dev/input的设备节点下, 当该设备下及诶点有数据刻度时,将数据独处并进行一系列的翻译和加工,然后在所有的窗口中寻找合适的接受者,并派发给它; 输入系统总体流程如下(引之深入理解android卷3 ): 1.1 开发环境 系统: ubu…

【CNN】经典模型总结及Resnet理解

之前一直都是看,没有自己完整总结一遍,现在做一个简单的总结。 并主要针对Resnet做一个介绍。 主要参考于: http://blog.csdn.net/app_12062011/article/details/62886113 https://www.zhihu.com/question/38499534 一、Lenet 第一个CNN…

【MLDL】logistics regression理解

以前有学过linear classification、linear regression和logistics regression,这次做一下总结,并主要推导一下交叉熵损失函数的由来和梯度下降法。 一、概述 开头先祭出林轩田老师讲义中的一张图 PLA、Linear Regression到logistics regression的区别。…

sql 中常见的控制流语句

控制流语句:1 begin .....end 2 if ...else 例如:if exists (select * from 表名称 ) begin selct * from 表名称 end 3 while break countinue while语句用于设置重复执行的sql语句或者语句块continue语句可以让语句跳过contunue 语句之后的语句回到…

【CACHE disabled】win7开机提示缓存状态为disabled

前景:某天早上我照常开机,开始一天的学习,结果以往20秒的开机时间变成了一分多钟,我感觉到很诡异,于是我就点了360修复(哎,不该点的)。 后来我就发现,电脑也变得超级卡&…

RHCE学习笔记3

单元6 管理物理存储 IRedHat 6分区后必须重启。 分区,一般只能(最多)4个主分区,sda5是扩展分区,扩展分区不能直接使用,需要创建逻辑分区。/dev/sda表示第一块硬盘,/dev/sdb表示第二块硬盘&#…

开了500多家店,茵曼还是不懂新零售?

电商红利正盛之时,涌现了很多淘宝明星,茵曼便是其中一个。与茵曼同时期的淘品牌还有韩都衣舍、裂帛等等。曾几何时,淘品牌炙手可热。茵曼、韩都衣舍、裂帛都曾分别向见证会递交招股书,意图争夺“淘品牌第一股”。 如今&#xff0c…

【算法】求最大公共子序列、求最大递增子序列

题目是看到有人给出阿里的一道编程题,自己就试了试。 题目链接:https://blog.csdn.net/spicyfish/article/details/76017423 参考链接:http://qiemengdao.iteye.com/blog/1660229 1、最大公共子序列 给定两个数列a,b&#xff0…