【machine learning】Week 7 支持向量机

Week7 支持向量机

2019101

13:04

 

摘要

svm是一个复杂的模型,文章分三个部分,首先从直观上理解svm。而且介绍了svm的发展,我认为这对理解复杂的现代svm非常关键。其次,文章介绍了线性svm和现代非线性svm。

总的来说,我觉得svm实在是太精彩了,从非常简单到最后非常复杂,从低维到高维,最神奇的是,所有理论居然能够统一。当然,本文是在不理解具体数学推导上写出来了,但我以为,建立这种思想上、形式上、应用上的深入理解之后,再去学数学推导非常重要。

一、 直观理解

支持向量机不太好理解,原因其实是经过长时间的发展,它早已经变得比最初的形态复杂很多。只看现代svm的话,你会难以想象到,究竟是怎么发明出来的。从现代svm的视角,直观的svm,其实是这样。

左侧难以分类,于是svm的思想就是,将它们维度提升,到一个高维的空间内,这是svm的基本思想。

其实这个思想相当有意思,它也不是这种单一的形式,如下。

                                     

                                  

其中包含了一种将其映射到其他维度的思想,有点像傅里叶变换,关键的问题在于,思想有了,高维空间我们怎么去handle?

其实,说到底,这是现代svm的问题,原始的svm并不复杂。

     

这是一个非常关键的图,是svm的发展过程,下面的话听不懂没关系,可以学完之后再回过头来看。

  • 第一阶段,线性分类器,svm仅仅是想让线性分类分类得更准,目的就是让分类直接的margin最大,于是使用投影的办法来将问题数学化。
  • 但其中出了一些小问题,很想逻辑分类种的异常点问题,某些异常点会严重影响决策边界的划分,所以又来又提出了soft margin的问题,并且,在这个模型下,数学公式居然也是同一的。
  • 第二阶段是非线性阶段,关键的地方是使用核函数,这是一种非常奇妙的方法,它解决了高维空间的问题,利用低维空间的运算直接统一高维空间的运算。

现代svm之所以如此强大,就是因为既利用了高维好分类,又可以直接使用低维运算统一模型。

 ps,关于支持向量机的名字来源,其实支持向量是指线性分类器中,位于边界线边上的向量,就像这些点支持了这两边界一样。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

二、线性支持向量机

间距问题

它的目标其实很好理解,就是要使得分类之后的margin尽可能大。

这是svm的直观理解,具体的数学原理我并不完全了解,只能简单的做一下分析。先看下损失函数的定义。

cost函数

可以看到,其实最下方就是线性svm最终的loss function,和逻辑回归是比较像的。cost部分,其实也叫HingeLoss,这个函数的图像类型relu,上图最上方的就是,优点无非就是优化的时候更快。

C如何使margin最大

我也觉得很巧妙,实际上C和1/λ差不多,在逻辑回归中λ我们用于调节正则化是速率,当λ很大时,为了使得后一项很小,θ必须很小,这就压制了拟合效果。而C效果差不多,但是刚好相反,当C特别大时,前一项会趋近0,而只剩下后一项,这会使得θ可取值的空间变大,使得拟合效果变好。

为什么说换成C之后就会使得margin有变大的趋势?

上上图可以看到,当C很大时,前面这一项我们要求它为0,这就要求cost中的两个向量的内积,必须大于1(以y=1为例)。而向量的内积是什么:

假设p为x到θ上的投影,则这两个向量的积就可以表示成p*||θ||,如上图,要求它们大于1。因为C很大,导致前面那一项可以简化为0,所以损失函数只剩下θ的内积。因为我们要最小化损失,所以θ会变小,这就要求投影p尽可能地长。上面图片中,左边当每个点投影在θ方向上(p为红色),比右边的情况的p要小得多。我们的目标函数使得p会尽可能长,于是svm就会选择后一种情况。

遗留问题

svm的如何train?听说梯度下降是可以做的,但是不是唯一的方法,而训练过程其实有很多优化方法。

三、非线性支持向量机

解决线性问题其实是不够的,第一部分说过,非线性问题解决的思想就是将低维空间映射到高维空间。而关键的难点就在于,核函数如何做到统一低维和高维?

但具体的数学原理我并未完全了解,所以对低维、高维这里不做细致的讨论,只从函数形式上来理解非线性的支持向量机。

核函数

从高斯核函数来理解核函数,首先它定义了很多基准点。

图中的L点,其中f极为高斯核函数,表达式看不懂,我们只需要知道,上图取某点x,如果x和l很接近,则f最终会为1,如果不接近,那么f会很容易归0,因为σ是一个很小的数。这个f,可以视为x和L之间的相似度。其实和欧几里得距离是同样性质的东西。

高斯核函数的理解简单来说,只有x和l接近的时候,核函数f才等于1。

分类原理

如何使用?首先定义了三个采样点,则现在的预测公式如上所示。这个公式和逻辑回归中θ*x+b类似,但是因为f的复杂定义,使得它可以拟合非线性曲线。具体的过程如上。图中取了两个新的点,粉色、浅蓝色,如何预测它是否为1(即是否和三个采样点同一类)?假设上图θ已经确定,-0.5,1,1,0,于是,对于粉色的点,f1=1,f2=f3=0,即它离采样点L1最近,其他两个点远,于是预测结果为粉色公式部分,为0.5,大于0,预测值为1,所以为同一类点。于此对比,浅蓝色的点,f1=f2=f3=0,则最后结果为-0.5,小于0,预测值为0.

以上即使非线性svm的分类原理。看看最终的表达式,其实也就是cost里面的表达式发生变化。

所以f称为核函数。类似线性svm中的线性核函数,这个loss function会让分类之间的距离变大,而上图这个形式,直接统一了svm的所有东西,非常奇妙。

基准点如何采样

还有一个点,如何基准点如何采样?答案是全部点作为基准点,于是每个f都会有m+1维,m为训练点的数量。(视觉中每个点都作为初试特征,两者有些类似)。

可调参数

模型很重要的一部分还是要记住可调参数。

一个是上文提到的C,另一个是高斯核函数引入的σ。

 

对于σ,如上图,σ越大,核函数越平缓,拟合性越差,这是一个结论,需要记住。

总结一下。

C是调节margin的,也就是分类效果。

C越大,则拟合越好,bias越小,variance越大。

σ是调节高斯函数的。

σ越小,高斯核函数越陡峭,拟合越好,bias越小,variance越大。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值