SVM Kernel学习笔记

SVM中的核函数是使其能处理非线性分类的关键,通过将数据从低维映射到高维以实现线性可分。虽然简单的理解是通过映射解决线性不可分问题,但更准确的描述是核函数以较低计算复杂度实现向量内积。常见的核函数包括多项式核和高斯核(RBF)。选择合适的核函数通常需要实验对比。
摘要由CSDN通过智能技术生成

SVM是机器学习里应用最广泛的模型之一,而说起SVM大家一般都会提kernel,有叫kernel function也有叫kernel trick的。这是因为实际的应用中,没有kernel的SVM也就是一个线性分类器,与LR(logistic regression)没有本质的差别,就连目标函数都很相似。

线性分类器是指它的decision boundary是线性的,但训练数据并不一定能被线性区分开(linearly speratable),这种情况经常被描述为“线性模型的表达或拟合能力不够”。

注意:这里的线性是相对于特征空间本身的维度而言,比如2维空间对应1维直线,3维空间对应2维平面,n维对应(n-1)维的超平面。人的直观理解一般无法超过3维,所以一般的文章教材都用2维空间来讨论问题。

比如左下图的2维空间,两类数据点无法被线性(2维下就是直线)区分,这时候就需要kernel来救场了。kernel所带的解药是什么?最naive的理解是,把数据点从2维空间映射到3维或更高维的空间,这样就能线性区分开了,就如右下图所展示的。

这里写图片描述

顺便提一下:LR也有类似的trick,使得自身的线性模型能拟合非线性关系,那就是特征组合。因此,实际应用中,LR的特征维度会非常大,BAT这种级别的互联网公司,维度动不动搞到十亿甚至百亿维度,各种特征组合占到了主要部分。另外,其实kernel并不是SVM的专属,其也可以应用到LR上面的,这里就不作讨论了。

前文中提到kernel最naive理解是把特征空间从低维映射到高维从而线性可分。之所以说naive,是因为这种描述并不太全面,知乎上有很多大牛反驳了这样的说法。但是,作为初学者,我个人感觉这样的intuition最容易被人记住,抛开复杂的数学推导,用一句话来解释SVM kernel,从传播的角度看没毛病。

那么,为啥大牛们认为“低维到高维论”不全面呢,究竟怎么理解kernel?说实话,完整的数学推导现在我也没太搞明白,这里只是根据从其他大神那里吸收的一些皮毛简单解释下,也不一定对:

先给一个更可能被大牛们接受的SVM kernel描述:一种隐含特征空间映射、以更低计算复杂度实现向量内积运算的特殊函数。有点抽象对不对,隐含怎么理解,更低计算复杂度内积运算怎么理解?下面通过例子来解释:

考虑上文提到的2维空间图,要把每个数据点映射到3维空间,才有可能线性可分。而映射到了3维空间后,计算寻找最优SVM decision boundary的过程里需要计算任意两个向量的内积(注:为什么需要求向量内积属于SVM数学推导过程,这里省略)。

对于一个2维空间数据点v = (x, y),要把它映射到3维空间,其中一种映射关系是: p(x,y)=(x2,2xy,y2) p ( x , y ) = ( x 2 , 2 x y , y 2 ) 。假如有任意两个数据点: v1=(x1,y1),v2=(x2,y2) v 1 = ( x 1 , y 1 ) , v 2 = ( x 2 , y 2 ) ,我们可以直接计算它们对应向量的内积为:


<p(v1),p(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值