svm 支持向量机 回归 预测_支持向量机SVM(一)

来源:http://www.cnblogs.com/jerrylead
1 简介

支持向量机基本上是最好的有监督学习算法了。最开始接触SVM是去年暑假的时候,老师要求交《统计学习理论》的报告,那时去网上下了一份入门教程,里面讲的很通俗,当时只是大致了解了一些相关概念。这次斯坦福提供的学习材料,让我重新学习了一些SVM知识。我看很多正统的讲法都是从VC 维理论和结构风险最小原理出发,然后引出SVM什么的,还有些资料上来就讲分类超平面什么的。这份材料从前几节讲的logistic回归出发,引出了SVM,既揭示了模型间的联系,也让人觉得过渡更自然。

2 重新审视logistic回归

Logistic回归目的是从特征学习出一个0/1分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷。因此,使用logistic函数(或称作sigmoid函数)将自变量映射到(0,1)上,映射后的值被认为是属于y=1的概率。

形式化表示就是

假设函数

184381129c0581dc8050dcf22e2360fd.png

其中x是n维特征向量,函数g就是logistic函数。

144669d748f54b97ae42dd8000c638a3.png的图像是

6b02d28ca911110c10b39c7d542e67ff.png

可以看到,将无穷映射到了(0,1)。

而假设函数就是特征属于y=1的概率。

b79e0aaf0d1fc0d8b616b865abd9356c.png

当我们要判别一个新来的特征属于哪个类时,只需求1de15268a99ebd845903caace8b8ab97.png,若大于0.5就是y=1的类,反之属于y=0类。

再审视一下1de15268a99ebd845903caace8b8ab97.png,发现1de15268a99ebd845903caace8b8ab97.png只和9b4f9a03b97aa5f9fd704fa1af5845aa.png有关,9b4f9a03b97aa5f9fd704fa1af5845aa.png>0,那么59f72a76b0abfee7d3b9e47dc87d6284.png,g(z)只不过是用来映射,真实的类别决定权还在9b4f9a03b97aa5f9fd704fa1af5845aa.png。还有当873349c8a9a86fa6fbd91e465f5fdcf7.png时,1de15268a99ebd845903caace8b8ab97.png=1,反之1de15268a99ebd845903caace8b8ab97.png=0。如果我们只从9b4f9a03b97aa5f9fd704fa1af5845aa.png出发,希望模型达到的目标无非就是让训练数据中y=1的特征873349c8a9a86fa6fbd91e465f5fdcf7.png,而是y=0的特征6fd40caca1703826b3a3e8009b541766.png。Logistic回归就是要学习得到9fab932804d9a2bce85e9a9ef49a6c99.png,使得正例的特征远大于0,负例的特征远小于0,强调在全部训练实例上达到这个目标。

图形化表示如下:

6b6064288df5becac71b615e8e580cc3.png

中间那条线是8e017ebb39ddaa9b2ec77f0564be7f80.png,logistic回顾强调所有点尽可能地远离中间那条线。学习出的结果也就中间那条线。考虑上面3个点A、B和C。从图中我们可以确定A是×类别的,然而C我们是不太确定的,B还算能够确定。这样我们可以得出结论,我们更应该关心靠近中间分割线的点,让他们尽可能地远离中间线,而不是在所有点上达到最优。因为那样的话,要使得一部分点靠近中间线来换取另外一部分点更加远离中间线。我想这就是支持向量机的思路和logistic回归的不同点,一个考虑局部(不关心已经确定远离的点),一个考虑全局(已经远离的点可能通过调整中间线使其能够更加远离)。这是我的个人直观理解。

3 形式化表示

我们这次使用的结果标签是y=-1,y=1,替换在logistic回归中使用的y=0和y=1。同时将9fab932804d9a2bce85e9a9ef49a6c99.png替换成w和b。以前的a0c7f834bcf0c0e71538ba45b5b23495.png,其中认为8238ad51928667a6f6d5bca531536ac0.png。现在我们替换f1f3129b0da7a17cbea3caa191b6240e.png为b,后面替换f38339650be613ac6d9bea649ffe66d7.png66b419e9812b6fd6f02aa5110c00a351.png(即5df837571a0b4c309d5d83f427eceb73.png)。这样,我们让7349216182a6fcb917e082e3c9429853.png,进一步005b1a1eeffb0abcc92f4dbc8cc44e63.png。也就是说除了y由y=0变为y=-1,只是标记不同外,与logistic回归的形式化表示没区别。再明确下假设函数

65832f411f0555474c454bc436a9842d.png

上一节提到过我们只需考虑9b4f9a03b97aa5f9fd704fa1af5845aa.png的正负问题,而不用关心g(z),因此我们这里将g(z)做一个简化,将其简单映射到y=-1和y=1上。映射关系如下:

9c0e28351f8c9dd3c1a3b1674cd2ab5c.png

4 函数间隔(functional margin)和几何间隔(geometric margin)

给定一个训练样本9962150c17928078c9af63cfa92d431c.png,x是特征,y是结果标签。i表示第i个样本。我们定义函数间隔如下:

74ec2bf3ad7aefdf67aa93b9ab88b28a.png

可想而知,当d27ed195aff01c2308d6cc68cb83bda4.png时,在我们的g(z)定义中,808f1f33b2410b536cc94d7c91b868f1.png8a2e6efde16066ec8fb570668cc1336b.png的值实际上就是172965f516f7605522f71e5ce9206b72.png。反之亦然。为了使函数间隔最大(更大的信心确定该例是正例还是反例),当d27ed195aff01c2308d6cc68cb83bda4.png时,0e0a7b11f0523197b7bccf75bd25fdeb.png应该是个大正数,反之是个大负数。因此函数间隔代表了我们认为特征是正例还是反例的确信度。

继续考虑w和b,如果同时加大w和b,比如在6e637bac0e8f722a785fb58e1045d04f.png前面乘个系数比如2,那么所有点的函数间隔都会增大二倍,这个对求解问题来说不应该有影响,因为我们要求解的是21b3e8f5608ebaf2f79af09b2162155a.png,同时扩大w和b对结果是无影响的。这样,我们为了限制w和b,可能需要加入归一化条件,毕竟求解的目标是确定唯一一个w和b,而不是多组线性相关的向量。这个归一化一会再考虑。

刚刚我们定义的函数间隔是针对某一个样本的,现在我们定义全局样本上的函数间隔

2d2e6e7a3807925a4766c03633631806.png

说白了就是在训练样本上分类正例和负例确信度最小那个函数间隔。

接下来定义几何间隔,先看图

498e29c03ecf99dd98b5d463d189066e.png

假设我们有了B点所在的21b3e8f5608ebaf2f79af09b2162155a.png分割面。任何其他一点,比如A到该面的距离以0141821464aacf33af2a850671cd7473.png表示,假设B就是A在分割面上的投影。我们知道向量BA的方向是0efb4799dbae3a74e3970c040ec0b64b.png(分割面的梯度),单位向量是8a418b349b54edecfab1c2b1db28fbc1.png。A点是9962150c17928078c9af63cfa92d431c.png,所以B点是x=c8b2fd04de4867e51db6a90914bd3fe5.png(利用初中的几何知识),带入21b3e8f5608ebaf2f79af09b2162155a.png得,

032ed07b28e20238c65cf6159f9b0fd2.png

进一步得到

9ae9936d9a9207704660c7e28c1387ac.png

0141821464aacf33af2a850671cd7473.png实际上就是点到平面距离。

再换种更加优雅的写法:

ec389f296fac347a7cc187dbf76181cd.png

8cd403e58be72ac4ab84bdebd50ab187.png时,不就是函数间隔吗?是的,前面提到的函数间隔归一化结果就是几何间隔。他们为什么会一样呢?因为函数间隔是我们定义的,在定义的时候就有几何间隔的色彩。同样,同时扩大w和b,w扩大几倍,6f50d2d7bb340e0a97141a2dcb560348.png就扩大几倍,结果无影响。同样定义全局的几何间隔f361dbe55430f6ed11d09ab62f54c3a5.png

5 最优间隔分类器(optimal margin classifier)

回想前面我们提到我们的目标是寻找一个超平面,使得离超平面比较近的点能有更大的间距。也就是我们不考虑所有的点都必须远离超平面,我们关心求得的超平面能够让所有点中离它最近的点具有最大间距。形象的说,我们将上面的图看作是一张纸,我们要找一条折线,按照这条折线折叠后,离折线最近的点的间距比其他折线都要大。形式化表示为:

245821a7222f2e5429c66e8bc113ff94.png

这里用6f50d2d7bb340e0a97141a2dcb560348.png=1规约w,使得08f5132a5fbdf2ca07b7b074efcb3a5f.png是几何间隔。

到此,我们已经将模型定义出来了。如果求得了w和b,那么来一个特征x,我们就能够分类了,称为最优间隔分类器。接下的问题就是如何求解w和b的问题了。

由于03faf434e03d9c0fa0c3a0c732ff68c4.png不是凸函数,我们想先处理转化一下,考虑几何间隔和函数间隔的关系,67071352a700d4709c96e2c276c108a4.png,我们改写一下上面的式子:

aaf050614ae381ccfcf6a0c4909d4bf9.png

这时候其实我们求的最大值仍然是几何间隔,只不过此时的w不受03faf434e03d9c0fa0c3a0c732ff68c4.png的约束了。然而这个时候目标函数仍然不是凸函数,没法直接代入优化软件里计算。我们还要改写。前面说到同时扩大w和b对结果没有影响,但我们最后要求的仍然是w和b的确定值,不是他们的一组倍数值,因此,我们需要对786caa7eddfa1a31064ecdfa0c30e8eb.png做一些限制,以保证我们解是唯一的。这里为了简便我们取7df6a39fd5155e04dbcd79479900d779.png。这样的意义是将全局的函数间隔定义为1,也即是将离超平面最近的点的距离定义为879f6553a79a6ec11bd6d3d9163fa8e9.png。由于求879f6553a79a6ec11bd6d3d9163fa8e9.png的最大值相当于求c3af69fb8f08d9fcdd6b5196ecf02fe2.png的最小值,因此改写后结果为:

20e29f9fd2cd8a4901a41e5526e681dd.png

这下好了,只有线性约束了,而且是个典型的二次规划问题(目标函数是自变量的二次函数)。代入优化软件可解。

可以发现,这个讲义虽然没有像其他讲义一样先画好图,画好分类超平面,在图上标示出间隔那么直观,但每一步推导有理有据,依靠思路的流畅性来推导出目标函数和约束。

今天就介绍到这里,后续我们会推出手工求解的方法,一种更优的求解方法。

264a3124729672c3e149c6251e79b512.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值