通俗易懂SVM原理介绍,适合小白食用

目录

1、SVM概念描述

2、SVM数学表达及相关计算

3、SVM优化问题定义

附:证明区

【证明1】

【计算1】


1、SVM概念描述

如图一所示,存在两个数据集,我们希望通过一个超平面将两个数据集分割开,并且我们希望这个超平面离两个数据集越远越好,某种意义上,这代表两个数据集分的更开。即图中的margin可以越大越好。

 

因为margin越大,对于新的数据点,错误分类的可能就越小。

如图二所示。可以看到,图中有两个可以选择的hyperplane,其中绿色的hyperplane的margin比较小,而黄色的比较大。对于一个新的点,图中用紫色圆形块标注,如果使用绿色的hyperplane将会把这个点归到第二个数据集中,而使用黄色的hyperplane则会归到第一个数据集,显然,如果去掉这两个hyperplane,单纯靠人为判断,我们也会将新的点归到第一个数据集,也就是说,此时margin比较小的绿色hyperplane对新的点的归类是错误的。这也就是我们说的,margin越大错误分类可能性越小。

2、SVM数学表达及相关计算

目标:找到一个超平面l(x) = w^{T}x+b 来区分两个数据集,且超平面距离两个数据集的距离要最大。

y_{i}=\left\{\begin{matrix}+1\, \,\, \, \, \, \, \, if \, \, l(x_{i})>0 \\-1\, \,\, \, \, \, \, \, if \, \, l(x_{i})\leq 0 \end{matrix}\right.

其中yi是第i个点的标签,+1表示属于第一个数据集,-1表示属于第二个数据集。

这样对于新的点x,我们就可以通过l(x)的值判断x属于哪个数据集。

但是还需要注意到,l(x)中有两个未知变量,分别是w,b,这两个未知量需要通过原先有的带标签数据集来决定。

为了严格起见以及方便运算(更好确定margin大小),我们做一点小小的调整。

通过选取新的w,b,更新y的定义如下:

y_{i}=\left\{\begin{matrix}+1\, \,\, \, \, \, \, \, if \, \, l(x_{i})\geq +1 \\-1\, \,\, \, \, \, \, \, if \, \, l(x_{i})\leq -1 \end{matrix}\right.

改变前后示意图如图三所示。

但要注意的是,这是等价的转换,因为图三左边的l(x)和右边的l(x)并不是一样的。相反这是通过更新w,b,生成新的l(x)。也就是说,如果第一张图中没有一个点既不满足l(x)> 0,也不满足l(x)\leq 0的话(既不在黄色区域也不在蓝色区域),在第二张图中,也不会有点的l(x)在[-1,+1]区间(既不在黄色区域也不在蓝色区域)。

具体证明过程写在文末证明区【证明1】,自行食用~

通过改变定义,我们可以得到margin的距离,从图三的右图也可以发现,这个距离就是l(x)=+1l(x)=-1之间的距离。

这个距离通过计算可以知道是2/||\omega ||

计算过程同样写在文末证明区【计算1】,感兴趣的自行查看~

3、SVM优化问题定义

通过以上对目标的阐述以及相关计算,我们可以对SVM问题进行定义:

min_{\omega ,b}f_{svm}(\omega ,b) = \frac{\lambda }{2}\left \| \omega \right \|^{2}+\sum_{i=1}^{m}max\left \{ 0,1-y_{i}(x_{i}^{T}\omega +b) \right \}

其中第一项中\frac{\left \| \omega \right \|^{2}}{2}用来衡量距离大小,\sum_{i=1}^{m}max\left \{ 0,1-y_{i}(x_{i}^{T}\omega +b) \right \}用来衡量错误分类情况,其中(x_{i}^{T}\omega +b)为预测的标签,y_{i}是真实标签。

\lambda则是用来确定这两项的比重,\lambda越大,追求更大的margin就成了主要目标,否则,追求更小的错误分类成为主要目标。

然而这还是基础版本的SVM,因为这个函数第二项是不平滑项,而优化问题中不平滑项通常需要转换成平滑项,可以通过使用Huber函数将后一项平滑化。也有其他处理方式,这里不过多介绍。

 

 

附:证明区

【证明1】

【计算1】

 

 

 

 

  • 16
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,常用于分类和回归问题。其原理相对来说较为复杂,但可以通过以下通俗易懂的方式进行解释: SVM的基本思想是找到一个最佳的超平面将不同类别的数据完全分开。换句话说,我们要找到一个决策边界,使得属于某一类的样本点都在一个侧面,而属于另一类的样本点则在另一侧面。 为了找到这个最佳的超平面,SVM引入了支持向量的概念。支持向量是离决策边界最近的那些样本点,它们对于决策边界的确定起到关键作用。这些支持向量点到决策边界的距离被称为间隔,我们的目标是找到最大化间隔的决策边界。 但是,在实际问题中,数据往往无法完全线性分开。为解决这个问题,SVM引入了核函数的概念。核函数将数据从原始空间映射到更高维的特征空间,在特征空间中,原本线性不可分的问题可能变得线性可分。 基于核函数的SVM即通过在特征空间中寻找最佳的超平面来解决非线性问题。通过设置不同的核函数,我们可以将数据映射到不同的特征空间,并得到不同的决策边界。 SVM的训练过程可以通过求解一个凸优化问题来实现。优化问题的目标是最大化间隔,同时要求决策边界的分类结果尽量准确。通过使用相关的数学方法,可以求解出最优的超平面以及对应的支持向量。 总之,SVM是一种通过找到最佳的超平面来实现分类的机器学习算法。它的原理简单概括为找到一条决策边界,使得离这条边界最近的样本点都被正确分类,并且间隔最大化。通过引入核函数,SVM也可以解决非线性分类问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值