SVM学习笔记

SVM学习笔记

我理解的SVM

SVM即支持向量机,一般的SVM是一种二分类分类器,就是只对两种类型的数据进行分类;它是一种有监督的学习算法,即所使用的数据必须进行人工标注。

SVM分类原理

如图1所示,圆形的点代表一个数据类型、“x”型的点代表一个数据类型,共两种数据类型。假设输入空间是二维的,在图中我们看到是一个x轴一个y轴,SVM的目标就是学习到一条可以将这两类数据尽可能分开的“分类直线”,(如图中的那条直线所示),我们看到这条“直线”将图中两类数据很好地分开了。那么,用已经标注好的数据通过SVM学习算法学习到这条分类直线后,就可以利用这条直线对别的数据进行分类了。(新的数据代入直线参数,只要判断最后的值是大于零还是小于零,大于零在直线的右侧,小于零在直线的左侧)。这就是我理解的SVM分类原理。
图1
当然,我刚才介绍的这些只是SVM里面一个很特殊的例子。因为我举得例子设定数据输入空间是二维的,在现实的例子中,很多问题的输入空间肯定不只是二维的,还有高维的。那么,在高维输入空间的情况下,学习到的那条分类直线就有一个专有的名词,叫做“分类超平面”,这个分类超平面因为是高维的,一般画不出来图像,我们也不能形象地看到它,所以叫“超”平面。

其次,上面那个例子之所以特殊,还有一个原因就是我例子里面的数据是线性可分的,就是说可以用一条“直线”将这两类数据很好地分开。而对于下图这种情况
这里写图片描述
你会发现,直线是分不开的,而用椭圆曲线就可以很好地分开。对于这种输入数据分布非线性的情况我们就只能使用非线性支持向量机进行分类了。

非线性支持向量机

线性支持向量机的求解其实到最后就是一个解凸优化问题。线性支持向量机的求解方法对于非线性问题来说是不适用的。而求解非线性问题,有一个方法,就是使用核函数。

核函数

说到非线性支持向量机就必然离不开核函数,也称核技巧。我感觉之所以叫做核技巧就是因为它走了一个捷径。
首先我们进行空间转换,就是将低维输入空间映射到高维输入空间。比如在二维空间,椭圆的曲线表达式为
这里写图片描述,那么将x空间映射到z空间,就变成
这里写图片描述
可以看到,在x空间是非线性的,在z空间就变成线性的了。

也就是说,通过这个一个映射函数这里写图片描述就进行非线性到线性的转换了。但是你要想显式地去找到这个映射函数是很难的。

在非线性支持向量机中,是用核函数去完成非线性输入空间到线性输入空间这个转换的。核函数的形式为
这里写图片描述
我们可以看到,核函数是两个变量的映射的内积。那么肯定要问了,核函数里有这个从低维映射到高维的映射函数,没有这个映射函数,你又是怎么得到核函数的呢?我刚开始也奇怪,后来才发现,原来常用的核函数就那几个,不是一般人能搞出来的,都是牛x的人搞出来给我们用的,我们用的时候只需要调调参数就可以了。

说到这里,我还没有说为什么可以用这个形式的核函数,就是两个变量的映射的内积。其实原因就在于线性支持向量机的求解公式里。因为线性支持向量机最终的求解公式里面,包含了这么一个式子: xixj ,其中 xi xj 都是输入变量。假如我们用核函数 K(xi,xj)=Φ(xi)Φ(xj) 去替换 xixj 这个式子,又因为 Φ(x) 是低维到高维的映射,所以用核函数替换后,就相当于把非线性问题求解转换为了线性问题求解。这样,就把求解非线性支持向量的问题转换为了求解线性支持向量机的问题。很厉害的技巧啊。
(实际应用中,非线性支持向量机核函数的选择,及参数的选择好像都是要慢慢试出来的,哪个好用哪个)

关于支持向量机的详细介绍暂时还没写出来,这篇笔记写了我对它的直观理解。详细介绍起来公式一大堆,写出来要花费好长好长的时间啊。之前写了一半,实在写不下去了,就先搁那了…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值