学习笔记Task3-SVM

本文介绍了支持向量机(SVM)的基本思想,包括寻找最大间隔超平面,对偶问题,SMO算法以及核函数的作用。SVM通过最大化间隔以提高模型的泛化能力,而在面对线性不可分数据时,通过核技巧将数据映射到高维空间使其线性可分。此外,文章还提到了软间隔和正则化的概念,以适应实际中的非完美分类情况。
摘要由CSDN通过智能技术生成

https://www.tinymind.cn/articles/655

https://www.tinymind.cn/articles/3915

https://www.cnblogs.com/zhizhan/p/4430253.html


支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类(binary classification)的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。

思考

如果是一个下图所示的二维坐标系,我们可以轻松的看出两类数据之间的差别。当有新的数据进来时,我们也可以基于其所处的位置,轻松地将新的数据分为某一类。
在这里插入图片描述
当新的数据处于两类数据之间的空白区,我们无法准确地判断它属于哪一类,那么我们可以用一条直线给两类样本划分出一个合适界限,根据新的数据在分界线的哪一侧来判断它的类别。
在这里插入图片描述
分界线的划分依据是尽可能地同时远离两个类,因为能够将两类数据正确分类的直线有无数条。保持在两个类的正中间,让分解线的“风险”更小,为每个分类的数据分布留出了一些摇动的空间,因而能在测试数据上取得更好的概括性。

当然,我们通过可视化的方法,很容易就能判断出来一个简单的分类器。但是机器不行,如果能让机器具有这样的分辨能力,那么通常情况下,机器比人类判断的会更加准确和精细。所以怎么样才能让机器学得如图上那样的一条“分界线”呢?
思路如下:上面说过,能够将数据正确分类的直线有无数条,我们在找到的所有直线中,选择那条离最接近的数据点距离最远的直线即可。直观地表示出来就是两类数据之间的间隔足够大,能够充分证明分类的正确性,并且为每个新分类的数据留出了一些摇动的空间,而我们这样选择能够让摇动的空间最大化。
在这里插入图片描述

如果数据是三维的呢?显然,一条直线是无法将三维的数据区分开,就像一跟细长的针插进了一堆沙子,我们只有用一块平面,才能将这堆沙子隔开。同理,我们用同样的思路,只不过把选择那条离最接近的数据点距离最远的直线,换成选择那个离最接近的数据点距离最远的平面。
以此类推,如果数据是四维的,或者维度更高呢?基于同样的思路,我们训练的目的是得到一个能够将不同样本数据分开的超平面

支持向量机

给定一个样本数据 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } D=\{(x_1, y_1),(x_2, y_2),...,(x_m, y_m)\} D={(x1,y1),(x2,y2),...,(xm,ym)} y i ∈ { − 1 , + 1 } y_i\in\{-1, +1\} yi{1,+1},包含两类样本。
目标是找到一个超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0,将 D D D中的两类样本分开,其中 w w w为法向量,决定超平面的方向; b b b为位移项,决定超平面距原点的距离。
样本空间 D D D中的任一点 x x x,到超平面 ( w , b ) (w,b) (w,b)的距离可写为: r = ∣ w T + b ∣ ∣ ∣ w ∣ ∣ r=\frac{\left|w^T+b\right|}{\left|\left|w\right|\right|} r=wwT+b
若超平面能将训练样本正确分类,即对于 D D D中任意点 { x i , y i } \{x_i, y_i\} {xi,yi}

  • 若目标值 y i = + 1 y_i=+1 yi=+1,则必有 w T + b > 0 w^T+b>0 wT+b>0;对应于样本数据位于超平面上方
  • 若目标值 y i = − 1 y_i=-1 yi=1,则必有 w T + b &lt; 0 w^T+b&lt;0 wT+b<0。对应于样本数据位于超平面下方

我们令 w T + b w^T+b wT+b分别等于 ± 1 ±1 ±1,此举直观上相当于将原本没有厚度的超平面,纵向扩展为了一个厚度为2的"体",划分超平面有了上下边界。我们称距超平面上下边界最近的样本点为支持向量,两个异类支持向量到超平面的距离之和为:
γ = 2 ∣ ∣ w ∣ ∣ \gamma=\frac{2}{\left|\left|w\right|\right|} γ=w2
称为间隔
按我们最初的思考,到了这一步的目标就是最大化这个间隔。
由间隔的表达形式可见,最大化间隔,仅需最大化 ∣ ∣ w ∣ ∣ − 1 {\left|\left|w\right|\right|}^{-1} w1,等价于最小化 ∣ ∣ w ∣ ∣ 2 {\left|\left|w\right|\right|}^{2} w2。即:
min ⁡ m b 1 2 ∣ ∣ w ∣ ∣ 2 \min_{m b}\frac{1}{2}\left|\left|w\right|\right|^2 mbmin21w2
s . t . y i ( w T + b ) ≥ 1 , i = 1 , 2 , . . . , m . s.t.y_i(w^T+b)≥1,i=1,2,...,m. s.t.yi(wT+b)1,i=1,2,...,m.
这就是支持向量机的基本型。

对偶问题

支持向量机的基本型本身是一个凸二次规划问题,可用现成的优化计算包进行求解,但是我们可以有更高效的办法。
对支持向量机的基本型使用拉格朗日乘子法,给每条约束添加拉格朗日乘子 α i ≥ 0 \alpha_i\ge0 αi0,则该问题的拉格朗日函数为:
L ( ω , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( ω T x i + b ) ) L(\omega,b,\alpha)=\frac12\left|\left|w\right|\right|^2+\sum_{i=1}^{m}\alpha_i(1-y_i(\omega^Tx_i+b)) L(ω,b,α)=21w2+i=1mαi(1yi(ωTxi+b))
L ( ω , b , α ) L(\omega,b,\alpha) L(ω,b,α) ω \omega ω b b b的偏导为0可得:
ω = ∑ i = 1 m α i y i x i \omega=\sum_{i=1}m\alpha_iy_ix_i ω=i=1mαiyixi
0 = ∑ i = 1 m α i y i 0=\sum_{i=1}m\alpha_iy_i 0=i=1mαiyi
代入拉格朗日函数可得到其对偶问题
max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \max_\alpha\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jx^T_ix_j αmaxi=1mαi21i=1mj=1mαiαjyiyjxiTxj
s . t . ∑ i = 1 m α i y i = 0 , s.t.\sum_{i=1}^m\alpha_iy_i=0, s.t.i=1mαiyi=0,
α ≥ 0 , i = 1 , 2 , . . . , m \alpha\ge0,i=1,2,...,m α0,i=1,2,...,m
利用SMO算法解出 α \alpha α后可求出 ω \omega ω b b b即可得到模型:
f ( x ) = ω T x + b = ∑ i = 1 m α i y i x i T x + b f(x)=\omega^Tx+b=\sum_{i=1}m\alpha_iy_ix_i^Tx+b f(x)=ωTx+b=i=1mαiyixiTx+b
且过程中需满足KKT条件
{ α i ≥ 0 ; y i f ( x i ) − 1 ≥ 0 ; α i ( y i f ( x i ) − 1 ) = 0 \begin{cases} \alpha_i\ge0; \\ y_if(x_i)-1\ge0; \\ \alpha_i(y_if(x_i)-1)=0 \end{cases} αi0;yif(xi)10;αi(yif(xi)1)=0
于是,对于任意训练样本,总有 α i = 0 \alpha_i=0 αi=0或者 y i f ( x i ) = 1 y_if(x_i)=1 yif(xi)=1
α i = 0 \alpha_i=0 αi=0,则该样本 x i , y i x_i,y_i xi,yi不会在模型的求和中出现;若 y i f ( x i ) = 1 y_if(x_i)=1 yif(xi)=1,即所有的样本点都位于最大间隔边界上,即全都是支持向量。这是SVM的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终的模型仅与支持向量有关。

SMO算法

SMO算法的基本思路是:先固定 α i \alpha_i αi之外的所有参数,然后求 α i \alpha_i αi上的极值。由于存在约束条件 ∑ i = 1 m α i y i = 0 \sum_{i=1}^m\alpha_iy_i=0 i=1mαiyi=0,若固定 α i \alpha_i αi之外的其他变量, α i \alpha_i αi就可以由其他变量导出。于是,SMO算法每次选择两个变量 α i \alpha_i αi α j \alpha_j αj,固定其他参数,这样在参数初始化后,SMO不断执行如下步骤直至收敛:

  • 选取一对需要更新的变量 α i \alpha_i αi α j \alpha_j αj
  • 固定 α i \alpha_i αi α j \alpha_j αj以外的参数,求解对偶问题获得更新后的 α i \alpha_i αi α j \alpha_j αj

核函数-核技巧

在上面的讨论中,我们都假定训练样本 D D D在它所组成的样本空间内,存在一个划分超平面能将样本正确分类,也成为线性可分。然而现实任务中,原始的样本空间也许不存在这样的超平面,即样本线性不可分。
对于这样的问题,我们的解决办法是:将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
可以知道的是:如果原始空间的维度是有限的,即属性数量是有限的,那么一定存在一个高维的特征空间使样本线性可分。

软间隔与正则化

支持向量回归

核方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值