第十三章 支持向量机

本文详细介绍了支持向量机(SVM),从优化目标出发,探讨了大间距分类器的概念,深入讲解了SVM的数学原理、核函数的选择及其作用。此外,还对比了SVM与逻辑回归、神经网络的差异,并提供了SVM在多分类问题中的应用及参数选择策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1 优化目标

2 大间距分类器

3 支持向量机的数学原理

4 核函数

5 选取标记点

6 使用SVM

1 多分类问题

2 逻辑回归,神经网络与svm比较


1 优化目标

下面我们将介绍一种相较于神经网络,逻辑回归在学习复杂的非线性方程时更加清晰强大的算法,它被称之为支持向量机(Support Vector Machine)。

下面将从逻辑回归开始演示支持向量机的推导过程:

上图是Logistic回归的代价函数,观察函数我们会发现,每增加一个样本,代价函数都会增加

当y=1时,如上图左图所示的增量,图中紫色部分是我们添加的一条类似于Logistic回归的直线,之所以这样做,是为了保证当z>1时预测精度足够高;当y=0时,如上图所示的增量,其它与左侧的不同只是为了保证z<-1时的预测精度足够高。有了函数图像后,我们就有了新的支持向量机的代价函数:

支持向量机的代价函数的参数与先前的Logistic回归有些不同,首先去除了1/m的常数项,这对最小化问题并无影响;另外在Logistic回归中,代价函数是代价函数值加上正则化项,正则化项是正则化系数与参数平方和之积,但在支持向量机中,我们把参数加到了代价函数上,可以这样说,参数C取代了\lambda 的角色。

另外有一点需要注意,区别于Logistic回归输出的是概率值,支持向量机会直接输出y的取值。

2 大间距分类器

在获得代价函数之后我们就有了明确的方向:如何使代价函数更小?

正向类y=1,此时若令代价函数为零,要使z>1;负向类y=-1,此时需要让z<-1才能令代价函数值为零。

上图所展示的数据集是一个线性可分的数据集,但我们的决策边界会是中间两条彩色的线那样,看起来并不是一种很好的选择。而支持向量机不同,它会选择斜着的那条决策边界,这条边界相比于之前的决策边界与正负样本之间有更大的距离,这个距离被称之为间距,具体而言,支持向量机的做法是努力将正样本和负样本用最大的间距分开,我们的目的就是要让边界线离他最近样本点的距离,也就是支持向量机的间距尽可能的大。

现在我们在一个极端情况下考虑最小化函数问题,具体来说我们会将C置为一个非常大的值,这样做的后果是在最小化时,我们必须令让第一项为零,所以我们要优化的函数变成了

下面我们来讨论支持向量机中的参数C

参数C可以理解为支持向量机受异常点的影响程度,C越大受到的影响越大,反之越小。,而为正则化参数,增加受到异常数据影响较小,反之较大。

3 支持向量机的数学原理

上图是两个二维向量,把向量v投影至向量u上,投影长度为p,\left | \left | u \right | \right |是向量u的模,向量内积就是p*\left | \left | u \right | \right |,从代数的角度可表示为u_{1}v_{1}+u_{2}v_{2} ,根据此定义可得u^{T}v=u_{1}v_{1}+u_{2}v_{2}。从上一节我们了解到,我们要最小化的函数为

这里我们以偏置项为零,存在两个特征为例,研究这个函数最小化问题:

从上式不难看出,只要\theta 取到最小,最小化函数就能取得最小值。

首先要说明的一点是,决策边界与\theta 这两条线应当垂直,因为决策边界两侧分别是正向类和负向类,因此在边界上的样本点与\theta 之积应当为零,即正交。

在上图中,x投影到参数向量\theta 被设为p,p\left \| \theta \right \| 等价于z,因此现在的问题转化成了尽量大的增加p的取值。左下角的决策边界很明显不是一个合理的选择,因为可以很明显的看出,两边样本点投影到\theta 的距离,也就是p的模长很小,这会导致\theta 的值增加,相反的右边的决策边界,已经确保了样本点到参数向量\theta 投影模长最长,此时\theta 的取值就可以变小了。

总结来说就是我们希望支持向量机最终取得一个很小的\theta 范数,为了做到这一点需要让样本投影的距离足够大,也就需要选择一个合适的决策边界。

需要补充说的的是,上面的推导是在\theta _{0} 为零的条件下进行的,但是不为零的情况同样适用。

4 核函数

对于无法用直线分隔的分类问题,我们通常用高阶多项式来模拟,比如上图,我们用一系列新的特征变量来代替高阶项,比如

然而除了使用高阶多项式外还有没有更好的处理方法?下面我们来构建新的特征。

给定一个训练样例,为了简单描述,我们选取三个特征向量,再在坐标系中选取三个不同的点l^{1}l^{2}l^{3},然后利用各个特征与这三个点的近似程度来选取新的特征f_{1}f_{2}f_{3},比如

其余两个特征求法类似,实际上相似度函数就是核函数,上面的是高斯核函数,我们对核函数有一种特定的表达:k(x,l^{(i)})

在了解了相似度函数后,我们需要了解公式背后的意义,从第一个标记看起:

假设x于其中一个标记非常靠近,那么两者之间的欧氏距离会趋于0,f_{1} 值为1,如果距离非常远则为零,用图像理解如下所示:

从图中可以看出x与f_{1}  的关系,并且随着σ的增大,下降速率明显减小。

5 选取标记点

在核函数的学习中,我们提到了标记点这一概念,该如何选取标记点?从上面的学习我们得到了启示,那就是根据训练集的数量选择标记点的数量,并且两者之间一一对应,这样做可以保证我们获得的新特征所描述的是每个样本距离其他样本的距离。

在引入核函数后,该如何使用支持向量机?

给定x,计算新特征f;当\theta ^{T}f>=0 时,输出1,否则反之。

参数向量是m+1维向量,m是标记点个数;在确定条件后,要做的就是最小化\theta 

在公式左边我们用新特征 f 代替了x

正则化项被更新为如上所示,但是在具体实施过程中我们会用M(一个根据核函数确定的矩阵)乘上右边的值以简化运算。

下面介绍高斯核函数中参数的影响

6 使用SVM

虽然对SVM的使用已经有较成熟的库,但是我们同样要做出一些选择,比如参数的选择,这里在前面已经有提到,此外我们还要选择核函数。当我们使用高斯核函数时,还要注意特征归一化问题。

1 多分类问题

我们可以使用之前介绍的一对多方法解决多分类问题。

2 逻辑回归,神经网络与svm比较

规定n为特征数,m为样本数

1 如果相较于m而言,n要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我

们选用逻辑回归模型或者不带核函数的支持向量机。

2 如果n较小,而且m大小中等,例如n在 1-1000 之间,而m在10-10000之间,使用高斯核函数的

支持向量机。

3 如果n较小,而m较大,例如n在1-1000之间,而m大于50000,则使用支持向量机会非常慢,解

决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。

神经网络与SVM相比,选择SVM的原因主要在于它的代价函数是凸函数,不存在局部最小值,而神经网络会出现局部最优问题,同时在那个时候GPU速度较慢,因此神经网络并不流行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值