机器学习——支持向量机SVM

摘要:

支持向量机(SVM)是一种二类分类模型,其基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大,间隔最大使它有别于感知机,支持向量机也可通过核技巧使它成为非线性分类器。支持向量机的学习策略是间隔最大化,可将其转化为一个求解凸二次规划的问题,其学习算法就为求解凸二次规划的最优化算法序列最小最优化算法(SMO)。
  关键词:二类分类;间隔最大化;核技巧;凸二次规划;序列最小最优化算法

2 回顾感知机模型

在感知机原理小结中,讲到了感知机的分类原理,感知机模型就是尝试找到一条直线,能够把二元数据隔离开。如果提升到高维,就是找到一个超平面,把高维数据分开。对于这个分离的超平面,定义为 wTx+b=0wTx+b=0 ,如下图。在超平面 wTx+b=0wTx+b=0 上方定义为 y=1y=1,在超平面 wTx+b=0wTx+b=0 下方定义为 y=−1y=−1。可以看出满足这个条件的超平面并不止一个。

看感知机模型的损失函数优化,它的思想是让所有误分类的点(定义为 M )到超平面的距离和最小,即最小化下式:

∑xi∈M−y(i)(wTx(i)+b)||w||2∑xi∈M−y(i)(wTx(i)+b)||w||2

当 ww 和 bb 成比例的增加,比如,当分子的 ww 和 bb 扩大 NN 倍时,分母的 L2 范数也会扩大 NN 倍。也就是说,分子和分母有固定的倍数关系。那么可以固定分子或者分母为11,然后求另一个即分子或者分母的倒数的最小化作为损失函数,这样可以简化损失函数。在感知机模型中,采用保留分子,固定分母 ||w||2=1||w||2=1 ,即最终感知机模型的损失函数为:

∑xi∈M−y(i)(wTx(i)+b)∑xi∈M−y(i)(wTx(i)+b)

感知机模型可参考本博客《机器学习——感知机 》

3 SVM 的数学模型

支持向量机也叫做 max-Margin Classifer。在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量(support vector)。
  支持向量是使约束条件式等号成立的点,即:
    yi(w⋅xi+b)−1=0yi(w⋅xi+b)−1=0
  其中支持向量所在的边界称为间隔边界。由于只有支持向量能够决定分离超平面,起决定性作用,因此将这类分类模型称为支持向量机。

定义由空心圆形类的支持向量构成的一条分割线:
    wTx1+b=1wTx1+b=1
  实心圆形类构成的支持向量构成的一条分割线:
    wTx2+b=−1wTx2+b=−1
  上述两式相减:
    (wTx1+b)−(wTx2+b)=2(wTx1+b)−(wTx2+b)=2
  得:
    wT(x1−x2)=2wT(x1−x2)=2
  根据余弦定理得:
    wT(x1−x2)=∥w∥2∥x1−x2∥2cosθ=2wT(x1−x2)=‖w‖2‖x1−x2‖2cos⁡θ=2
  简化:
    ∥x1−x2∥2cosθ=2∥w∥2‖x1−x2‖2cos⁡θ=2‖w‖2
  求两个类的分割线到中心线 wTx1+b=0wTx1+b=0 的距离:
    d1=d2=∥x1−x2∥2cosθ2=2∥w∥22=1∥w∥2d1=d2=‖x1−x2‖2cos⁡θ2=2‖w‖22=1‖w‖2
  求得两类之间的距离:
    d1+d2=2∥w∥2d1+d2=2‖w‖2

故:SVM的目标就是使得 d1+d2=2∥w∥2d1+d2=2‖w‖2 之间的距离最大。

4 硬间隔最大化

给定一个特征空间上的训练数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)}T={(x1,y1),(x2,y2),⋯,(xN,yN)}。xi∈X=Rnxi∈X=Rn,yi∈Y={+1,−1}yi∈Y={+1,−1}, i=1,2,⋯,Ni=1,2,⋯,N。xixi 为第 ii 个特征向量, 也称为实例, yiyi 为 xixi 的类标记 。当 yi=+1yi=+1 时, 称 xixi 为正例;当 yi=−1yi=−1 时,称 xixi为 负例。 (xi,yi)(xi,yi) 称为样本点。再假设训练数据集是线性可分的。
  线性可分支持向量机的学习目标是找到一个分离超平面将实例分为正负两类(与感知机相同),但是当数据集线性可分时,感知机的分离超平面有无穷多个。此时,线性可分支持向量机通过间隔最大化求解一个最优分离超平面。
  在数据线性可分下,线性可分支持向量机学习到的分离超平面为
    w∗⋅x+b∗=0w∗⋅x+b∗=0
  以及相应的决策函数为
    f(x)=sign(w∗⋅x+b∗)f(x)=sign⁡(w∗⋅x+b∗)
  

4.1 函数间隔与几何间隔

在上图中,点 A 距分离超平面较远,若预测该点为正类,就比较确信预测是正确的;点 C 距分离超平面较近,若预测该点为正类就不那么确信;点 B 介于点 A 与 C 之间,预测其为正类的确信度也在 A 与 C 之间。
  一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。在超平面 w⋅x+b=0w⋅x+b=0 确定的情况下,|w⋅x+b||w⋅x+b| 能够相对地表示点 xx 距离超平面的远近。而 w⋅x+bw⋅x+b 的符号与类标记 yy 的符号是否一致能够表示分类是否正确。所以可用 y(w⋅x+b)y(w⋅x+b) 来表示分类的正确性及确信度,这就是函数间隔。
  下面给出函数间隔定义:
    γi=yi(w⋅xi+b)γi=yi(w⋅xi+b)
  因此我们可以找到函数间隔的最小值,定义为:
    ^γ=mini=1,⋯,N  γiγ=mini=1,⋯,N  γ^i
  由于选择超平面时只有函数间隔还不能够选出间隔最大超平面,因此对法向量 ww 规范化,使得 ||w||=1||w||=1,让函数间隔确定,这时确定的函数间隔就变成为几何间隔。
     

根据距离公式,可以计算出上图中A点到超平面的距离(几何间隔)为:
    γi=yi(w∥w∥⋅xi+b∥w∥)γi=yi(w‖w‖⋅xi+b‖w‖)
  下面给出几何间隔最小值定义:
    γ=mini=1,⋯,N  γiγ=mini=1,⋯,N  γi
  因此根据函数间隔和几何间隔定义,两者有以下关系:
    γi=γi∥w∥γ=γ∥w∥γi=γi‖w‖γ=γ‖w‖
  如果模长为1,那么两者相等;参数成比例改变(超平面没有改变),那么函数间隔按比例改变,而几何间隔不变,也就是几何间隔是确定的值。

4.2 间隔最大化

支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。并且对于线性可分数据集来说,几何间隔最大的分离超平面是唯一的,这个唯一的间隔最大化称为硬间隔最大化。(有很好的分类能力)

求解最大间隔分离超平面

如何求解几何间隔最大的分离超平面可以表示为下列的约束最优化问题:
    maxw,bγ s.t. yi(w∥w∥⋅xi+b∥w∥)⩾γ,i=1,2,⋯,Nmaxw,bγ s.t. yi(w‖w‖⋅xi+b‖w‖)⩾γ,i=1,2,⋯,N
  上述解释为希望最大化训练数据集的几何间隔 γγ ,约束条件表示为超平面关于样本点的几何间隔至少是 γγ 。
  又由于几何间隔与函数间隔的关系,可以得:
    maxw,b ^γ∥w∥ s.t. yi(w⋅xi+b)⩾^γ,i=1,2,⋯,Nmaxw,b γ^‖w‖ s.t. yi(w⋅xi+b)⩾γ^,i=1,2,⋯,N
  根据之前的理论,函数间隔的取值并不影响上面最优化问题的解,因此可以将函数间隔的值取为 1 并代入上面的最优化问题。于是可以得到下面新的最优化问题:
    minw,b 12∥w∥2 s.t.  yi(w⋅xi+b)−1⩾0,i=1,2,⋯,Nminw,b 12‖w‖2 s.t.  yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N
  注意, max  1||w||max  1||w|| 与 min  12||w||2min  12||w||2 是等价的,系数 1/2 和平方是为了方便后面求导和构造凸优化,不影响结果。从而将其转变为一个凸二次规划问题。

凸二次规划问题也是凸优化问题的一种形式,凸优化问题指:
    minwf(w) s.t. gi(w)⩽0,i=1,2,⋯,khi(w)=0,i=1,2,⋯,lminwf(w) s.t. gi(w)⩽0,i=1,2,⋯,khi(w)=0,i=1,2,⋯,l
  其中, 目标函数 f(w)f(w) 和约束函数 gi(w)gi(w) 都是 RnRn 上的车续可微的凸函数, 约束函数 hi(w)hi(w) 是 RnRn 上的仿射函数 。然后,当目标函数是二次函数,并且约束函数 gi(x)gi(x) 是仿射函数时(二阶导为0,其实也是凸函数,满足条件),上述凸优化问题就转变为凸二次规划问题。

最后求解出最优解 w∗,b∗w∗,b∗,就能够得到线性可分支持向量机模型。因此,它的学习算法为最大间隔法。
  由此得分离超平面:
    w∗⋅x+b∗=0w∗⋅x+b∗=0
  分类决策函数:
    f(x)=sign(w∗⋅x+b∗)f(x)=sign⁡(w∗⋅x+b∗)

例7.1: 已知一个如图 7.4 所示的训练数据集,其正例点 是 x1=(3,3)T,x2=(4,3)Tx1=(3,3)T,x2=(4,3)T,负例点是 x3=(1,1)Tx3=(1,1)T,试求最大间隔分离超平面。
  
  解:根据训练数据集构造约束最优化问题:
    minx,b12(w21+w22)minx,b12(w12+w22)
    3w1+3w2+b⩾13w1+3w2+b⩾1
    4w1+3w2+b⩾14w1+3w2+b⩾1
    −w1−w2−b⩾1−w1−w2−b⩾1
  求得此最优化问题的解 w1=w2=12,b=−2w1=w2=12,b=−2 。于是最大间隔分离超平面为
    12x(1)+12x(2)−2=012x(1)+12x(2)−2=0
  其中, x1=(3,3)Tx1=(3,3)T 与 x3=(1,1)Tx3=(1,1)T 为支持向量。

4.3 学习的对偶算法

这样做的优点,一是对偶问题往往更容易求解;二是自然引入核函数,进而推广到非线性分类问题。对上面含有不等式约束的凸二次规划问题,可以对其使用拉格朗日乘子法得到其对偶问题。
  首先对每一个不等式约束引入拉格朗日乘子 αiαi , αi≥0,i=1,2,…Nαi≥0,i=1,2,…N ,构造拉格朗日函数:
    L(w,b,α)=12∥w∥2−N∑i=1αi(yi(w⋅xi+b)−1)L(w,b,α)=12‖w‖2−∑i=1Nαi(yi(w⋅xi+b)−1)
  然后展开后可以得到原问题拉格朗日函数:
    L(w,b,α)=12∥w∥2−N∑i=1αiyi(w⋅xi+b)+N∑i=1αiL(w,b,α)=12‖w‖2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi
原始问题的阐述: ++++++++++++++++++++++++++++++++++++++++

下面展开拉格朗日对偶性的简单推导:
  首先令:
    θ(w)=maxαi≥0 L(w,b,α)θ(w)=maxαi≥0 L(w,b,α)
  当样本点不满足约束条件时,即在可行解区域外:
    yi(w⋅xi+b)<1yi(w⋅xi+b)<1
  此时,将 αiαi 设为无穷大,则 θ(w)θ(w) 也为无穷大。
  此时 θ(w)θ(w) 为原函数本身。于是,将两种情况合并起来就可以得到我们新的目标函数:
    θ(w)={12∥w∥2,x∈ 可行区域 +∞,x∈ 不可行区域 θ(w)={12‖w‖2,x∈ 可行区域 +∞,x∈ 不可行区域 
  于是原约束问题就等价于:
    minw,b θ(w)=minw,b  maxαi≥0 L(w,b,α)=p∗minw,b θ(w)=minw,b  maxαi≥0 L(w,b,α)=p∗

** 原始问题的阐述结束++++++++++++++++++++++++++++++++++++++++**

PS:对于上述公式我们原问题是求 θ(w)=maxαi≥0 L(w,b,α)θ(w)=maxαi≥0 L(w,b,α) ,但由于存在错误分类点(学习软间隔更能明白),导致不可避免的存在无穷大上界的情况,但我们需要得到的是12∥w∥212‖w‖2,所以取minmin。

** 对偶问题的阐述: ------------------------------------------------------------------------**
  看一下我们的新目标函数,先求最大值,再求最小值。这样的话,我们首先就要面对带有需要求解的参数 w、bw、b 的方程,而 αiαi 又是不等式约束,这个求解过程不好做。所以,我们需要使用拉格朗日函数对偶性(参考《机器学习——最优化问题:拉格朗日乘子法、KKT条件以及对偶问题》) ,将最小和最大的位置交换一下,这样就变成了:
    maxαi≥0 minw,b L(w,b,α)=d∗maxαi≥0 minw,b L(w,b,α)=d∗
  现在,要使得 p∗=d∗p∗=d∗ ,需要满足两个条件:(上述参考博文等式成立的要求)
  ① 优化问题是凸优化问题
  ② 满足KKT条件
  条件①因为本问题是凸优化问题可以直接满足,而要满足条件二,即要求:
    ⎧⎪⎨⎪⎩αi≥0yi(wi⋅xi+b)−1≥0αi(yi(wi⋅xi+b)−1)=0{αi≥0yi(wi⋅xi+b)−1≥0αi(yi(wi⋅xi+b)−1)=0
  Step1: 为了得到求解对偶问题的具体形式,需要求解出 w、bw、b ,令拉格朗日函数 LL 分别对 ww、bb 分别求偏导并令其为 00,从而得到极小化问题解:
    ∂L∂b=0→n∑i=1αiyi=0∂L∂w=0→w=n∑i=1αiyixi∂L∂b=0→∑i=1nαiyi=0∂L∂w=0→w=∑i=1nαiyixi
  Step2: 将以上两个等式带入拉格朗日目标函数 ,消去 ww 和 bb ,从而得到:
    minw,b L(w,b,α)=12N∑i=1N∑j=1αiαjyiyj(xi⋅xj)−N∑i=1αiyi((N∑j=1αjyjxj)⋅xi+b)+N∑i=1αi=−12N∑i=1N∑j=1αiαjyiyj(xi⋅xj)+N∑i=1αiminw,b L(w,b,α)=12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαiyi((∑j=1Nαjyjxj)⋅xi+b)+∑i=1Nαi=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
  即:
    minw,b L(w,b,α)=−12N∑i=1N∑j=1αiαjyiyj(xi⋅xj)+N∑i=1αiminw,b L(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
 Step3:然后求上式对 αα 的 max,就是我们的对偶问题,并且把目标式子加一个负号,将求解极大转换为求解极小:
    minα12N∑i=1N∑j=1αiαjyiyj(xi⋅xj)−N∑i=1αi s.t. N∑i=1αiyi=0αi⩾0,i=1,2,⋯,Nminα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi s.t. ∑i=1Nαiyi=0αi⩾0,i=1,2,⋯,N
  Step4:最后,我们就可以求得一个 α∗j>0αj∗>0 (w不能全为0)求得最优解 w∗w∗ 和 b∗b∗ :
    w∗=N∑i=1α∗iyixib∗=yj−N∑i=1α∗iyi(xi⋅xj)w∗=∑i=1Nαi∗yixib∗=yj−∑i=1Nαi∗yi(xi⋅xj)
  最后整理公式可得分离超平面:
    N∑i=1α∗iyi(x⋅xi)+b∗=0∑i=1Nαi∗yi(x⋅xi)+b∗=0
  以及决策函数:
    f(x)=sign(N∑i=1α∗iyi(x⋅xi)+b∗)f(x)=sign⁡(∑i=1Nαi∗yi(x⋅xi)+b∗)

对偶问题的阐述结束 ------------------------------------------------------------------------

例 7.2 训练数据与例 7.1 相同。如图 7.4 所示,正例点是 x1=(3,3)T,x2=(4,3)Tx1=(3,3)T,x2=(4,3)T , 负例点是 x3=(1,1)Tx3=(1,1)T , 试用对偶算法求线性可分支持向量机。 解 根据所给数据,对偶问题是
    minα12∑Ni=1∑Nj=1αiαjyiyj(xi⋅xj)−∑Ni=1αi=12(18α21+25α22+2α23+42α1α2−12α1α3−14α2α3)−α1−α2−α3 s.t. α1+α2−α3=0αi⩾0,i=1,2,3minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi=12(18α12+25α22+2α32+42α1α2−12α1α3−14α2α3)−α1−α2−α3 s.t. α1+α2−α3=0αi⩾0,i=1,2,3
  解这一最优化问题。 将 α3=α1+α2α3=α1+α2 代入目标函数并记为
    s(α1,α2)=4α21+132α22+10α1α2−2α1−2α2s(α1,α2)=4α12+132α22+10α1α2−2α1−2α2
  对 α1,α2α1,α2 求偏导数并令其为 00 , 易知 s(α1,α2)s(α1,α2) 在点 (32,−1)T(32,−1)T 取极值,但该点不满足 约束条件 α2⩾0α2⩾0 , 所以最小值应在边界上达到。
  当 α1=0α1=0 时,最小值 s(0,213)=−213s(0,213)=−213 ; 当 α2=0α2=0 时, 最小值 s(14,0)=−14s(14,0)=−14。于是 s(α1,α2)s(α1,α2) 在 α1=14,α2=0α1=14,α2=0 达到最小, 此时 α3=α1+α2=14α3=α1+α2=14。
  这样, α∗1=α∗3=14α1∗=α3∗=14 对应的实例点 x1,x3x1,x3 是支持向量。 计算得
    w∗1=w∗2=12b∗=−2w1∗=w2∗=12b∗=−2
  分离超平面为
    12x(1)+12x(2)−2=012x(1)+12x(2)−2=0
  分类决策函数为
    f(x)=sign(12x(l)+12x(2)−2)f(x)=sign⁡(12x(l)+12x(2)−2)
  对于线性可分问题,上述线性可分支持向量机的学习(硬间隔最大化)算法是 完美的。 但是, 训练数据集线性可分是理想的情形。 在现实问题中,训练数据集往往是线性不可分的, 即在样本中出现噪声或特异点。此时, 有更一般的学习算法。

5 软间隔最大化

有时候本来数据的确是可分的,也就是说可以用线性分类SVM的学习方法来求解,但是却因为混入了异常点,导致不能线性可分,比如下图1,本来数据是可以按下面的实线来做超平面分离的,可以由于一个橙色和一个蓝色的异常点导致我们没法按照上节线性支持向量机中的方法来分类。
  另外一种情况没有这么糟糕到不可分,但是会严重影响我们模型的泛化预测效果,比如下图2,本来如果我们不考虑异常点,SVM的超平面应该是下图中的红色线所示,但是由于有一个蓝色的异常点,导致我们学习到的超平面是下图中的粗虚线所示,这样会严重影响我们的分类模型预测效果。

为了解决这个问题,引入了“软间隔”的概念,相比硬间隔的苛刻条件,即允许某些点不满足约束:
    yj(w⋅xj+b)≥1yj(w⋅xj+b)≥1
  于是为解决这个问题对每个样本点引入一个松弛变量,使函数间隔加上松弛变量大于等于1,约束条件变换成如下形式:
    yi(w⋅xi+b)⩾1−ξiyi(w⋅xi+b)⩾1−ξi

然后我们采用合页损失函数(hinge loss function) ,将原优化问题改写为:

minw,b,ξ12∥w∥2+CN∑i=1ξi s.t. yi(w⋅xi+b)⩾1−ξi,i=1,2,⋯,Nξi⩾0,i=1,2,⋯,Nminw,b,ξ12‖w‖2+C∑i=1Nξi s.t. yi(w⋅xi+b)⩾1−ξi,i=1,2,⋯,Nξi⩾0,i=1,2,⋯,N

其中 C 是一个大于 0 的常数,可以理解为错误样本的惩罚程度,C越大惩罚就越大,松弛变量就小。

5.1 合页损失函数

为什么说线性支持向量机是采用的合页损失函数?
  是由于根据上述原最优化问题等价于:
    minw,bN∑i=1[1−yi(w⋅xi+b)]++λ∥w∥2minw,b∑i=1N[1−yi(w⋅xi+b)]++λ‖w‖2
  上述前一项为经验损失(合页损失函数),后一项为正则化项。
  证明:首先令
    [1−yi(w⋅xi+b)]+=ξi[1−yi(w⋅xi+b)]+=ξi
    [z]+={z,z>00,z⩽0.[z]+={z,z>00,z⩽0.
  其中,下标“+”表示函数取正值,因此松弛变量大于等于 0 。如果点被正确分类,且函数间隔大于 11,损失是 00,否则损失是 1−y(w⋅x+b)1−y(w⋅x+b)。
  当 1−yi(w⋅xi+b)>01−yi(w⋅xi+b)>0 时,有 yi(w⋅xi+b)=1−ξiyi(w⋅xi+b)=1−ξi ;当 1−yi(w⋅xi+b)⩽01−yi(w⋅xi+b)⩽0时,ξi=0ξi=0,有 yi(w⋅xi+b)⩾1−ξiyi(w⋅xi+b)⩾1−ξi 。 于是 w,b,ξiw,b,ξi 满足合页损失的约束条件。所以最优化问题可写成
    minw,bN∑i=1ξi+λ∥w∥2minw,b∑i=1Nξi+λ‖w‖2
  若取 λ=12Cλ=12C , 则
     minw,b  1C(12∥w∥2+CN∑i=1ξi)minw,b  1C(12‖w‖2+C∑i=1Nξi)

证毕。

下面为合页函数(要求函数间隔更大,更确信)与0-1函数和感知机loss的差别:

5.2 学习的对偶形式

带松他变量的优化问题:
    minw,b,ξ≥0  12w⊤w+C∑iξi s.t. yi(w⊤xi+b)≥1−ξi,i=1,…,nξi≥0minw,b,ξ≥0  12w⊤w+C∑iξi s.t. yi(w⊤xi+b)≥1−ξi,i=1,…,nξi≥0
  将原优化问题, 利用拉格朗日算子, 转换为新的优化问题:
    L(w,b,ξ,α,λ)=12w⊤w+C∑iξi+∑iαi(1−ξi−yi(w⊤xi+b))−∑iλiξiL(w,b,ξ,α,λ)=12w⊤w+C∑iξi+∑iαi(1−ξi−yi(w⊤xi+b))−∑iλiξi
    ∂L∂b=0→∑iαiyi=0∂L∂w=0→w=∑iαiyixi∂L∂ξi=0→C−αi−λi=0∂L∂b=0→∑iαiyi=0∂L∂w=0→w=∑iαiyixi∂L∂ξi=0→C−αi−λi=0
  将下式代入:
    w=∑iαiyixi∑iαiyi=0w=∑iαiyixi∑iαiyi=0
  则有:
    L(ξ,α,λ)=∑iαi−12∑i,jαiαjyiyjx⊤ixj+∑iξi(C−αi−λi)L(ξ,α,λ)=∑iαi−12∑i,jαiαjyiyjxi⊤xj+∑iξi(C−αi−λi)
  再代入:
    C−αi−λi=0C−αi−λi=0
  有:
    L(ξ,α,λ)=∑iαi−12∑i,jαiαjyiyjx⊤ixjL(ξ,α,λ)=∑iαi−12∑i,jαiαjyiyjxi⊤xj
  Dual对偶形式为:
    maxα W(α)=n∑i=1αi−12n∑i,j=1y(i)y(j)αiαj⟨x(i),x(j)⟩ s.t. 0≤αi≤C,i=1,…,nn∑i=1αiy(i)=0,maxα W(α)=∑i=1nαi−12∑i,j=1ny(i)y(j)αiαj⟨x(i),x(j)⟩ s.t. 0≤αi≤C,i=1,…,n∑i=1nαiy(i)=0,
  KKT dual-complementarity 条件
    αi=0⇒y(i)(wTx(i)+b)≥1αi=C⇒y(i)(wTx(i)+b)≤10<αi<C⇒y(i)(wTx(i)+b)=1αi=0⇒y(i)(wTx(i)+b)≥1αi=C⇒y(i)(wTx(i)+b)≤10<αi<C⇒y(i)(wTx(i)+b)=1

5.3 支持向量

在线性支持向量机中,它的支持向量有点不同,还是 α∗i>0αi∗>0 的为支持向量(软间隔的支持向量),可以在间隔边界上,也可以在边界之间,这里只需要注意约束条件便能正确判断。

6 非线性支持向量机——核技巧

对解线性分类问题,线性分类支持向量机是一种非常有效的方法。但是,有时分类问题是非线性的,这时可以使用非线性支持向量机。本节叙述非线性支持向量机,其主要特点是利用核技巧(kernel trick)。为此,先要介绍核技巧。核技巧不仅应用于支持向量机,而且应用于其他统计学习问题。

6.1 非线性分类问题

非线性分类问题是指通过利用非线性模型才能很好地进行分类的问题。比如:

能在 nn 维欧式空间中找到这样的超曲面进行正确的分类,则称为非线性可分问题。
  这种情况的解决方法就是:将二维线性不可分样本映射到高维空间中,让样本点在高维空间线性可分,比如:

6.2 核函数

定义 7.6 (核函数) 设 XX 是输入空间 (欧氏空间 RnRn 的子集或离散集合 ),又设 HH 为特征空间 (希尔伯特空间 ),如果存在一个从 XX 到 HH 的映射ϕ(x):X→Hϕ(x):X→H
  使得对所有 x,z∈Xx,z∈X , 函数 K(x,z)K(x,z) 满足条件
    K(x,z)=ϕ(x)⋅ϕ(z)K(x,z)=ϕ(x)⋅ϕ(z)
  则称 K(x,z)K(x,z) 为核函数, ϕ(x)ϕ(x) 为映射函数,式中 ϕ(x)⋅ϕ(z)ϕ(x)⋅ϕ(z) 为 ϕ(x)ϕ(x) 和 ϕ(z)ϕ(z) 的内积。
  希尔伯特空间:欧几里德空间的一个推广,其不再局限于有限维的情形,是一个完备化的内积空间。
  核技巧的思想:只定义核函数 K(x,z)K(x,z) ,而不显式定义映射函数 φφ ,因为一般直接计算核函数会比较容易。另外,同一核函数在同一特征空间的映射函数可以不同。

6.3 核技巧在支持向量机中的应用

在线性支持向量机学习的对偶问题中,用核函数替代内积,求解得到的就是非线性支持向量机,对偶形式如下
    W(α)=12N∑i=1N∑j=1αiαjyiyjK(xi,xj)−N∑i=1αiW(α)=12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαi
  其分类决策函数为:
    f(x)=sign(Ns∑i=1a∗iyiϕ(xi)⋅ϕ(x)+b∗)=sign(Ns∑i=1a∗iyiK(xi,x)+b∗)f(x)=sign⁡(∑i=1Nsai∗yiϕ(xi)⋅ϕ(x)+b∗)=sign⁡(∑i=1Nsai∗yiK(xi,x)+b∗)
  在实际应用中,核函数的选择的有效性需要通过实验验证。

6.4 核函数的作用

我们不禁有个疑问:只是做个内积运算,为什么要有核函数的呢?
  这是因为低维空间映射到高维空间后维庄可能会很大,如果将全部样本的点乘全部计算好, 这样的 计算量太大了。
  但如果我们有这样的一核函数 k(x,y)=(ϕ(x),ϕ(y)),xik(x,y)=(ϕ(x),ϕ(y)),xi 与 xjxj 在特征空间的内积等于 它们在原始样本空间中通过函数 k(x,y)k(x,y) 计算的结果,我们就不需要计算高维甚至无穷维空间的内积了。
  举个例子:假设我们有一个多项式核函数:
     k(x,y)=(x⋅y+1)2k(x,y)=(x⋅y+1)2
  带进样本点的后:
    k(x,y)=(n∑i=1(xi⋅yi)+1)2k(x,y)=(∑i=1n(xi⋅yi)+1)2
  而它的展开项是:
    n∑i=1x2iy2i+n∑i=2i−1∑j=1(√2xixj)(√2yiyj)+∑i=1n(√2xi)(√2yi)+1∑i=1nxi2yi2+∑i=2n∑j=1i−1(2xixj)(2yiyj)+∑i=1n(2xi)(2yi)+1
  如果没有核函数,我们则需要把向量映射成:
    x′=(x21,…,x2n,…√2x1,…,√2xn,1)x′=(x12,…,xn2,…2x1,…,2xn,1)
  然后在进行内积计算,才能与多项式核函数达到相同的效果。
  可见核函数的引入一方面减少了我们计算量,另一方面也减少了我们存储数据的内存使用量。

6.5 正定核

那么如何不用构造映射函数就能够判断一个函数是否是核函数呢?
  核函数需要是正定核,通常所说的核函数都是正定核。
  下面介绍正定核的充要条件:
  定理 7.57.5 (正定核的充要条件) 设 K:X×X→RK:X×X→R 是对称函数,则 K(x,z)K(x,z) 为正定核函数的充要条件是对任意 xi∈X,i=1,2,⋯,m,K(x,z)xi∈X,i=1,2,⋯,m,K(x,z) 对应的 GramGram 矩阵:
    K=[K(xi,xj)]m×mK=[K(xi,xj)]m×m
  是半正定矩阵。
  那么什么是半正定矩阵?任取一个 N 维的列向量 αα ,如果满足:
    αTKα≥0αTKα≥0
  就说明K是一个半正定矩阵。

6.6 常用的核函数

名称  表达式  参数  线性核 κ(xi,xj)=xTixj 多项式核 κ(xi,xj)=(xTixj)dd⩾1 为多项式的次数  高斯核 κ(xi,xj)=exp(−∥∥xi−xj∥∥22σ2)σ>0 为高斯核的带宽(width)  拉普拉斯核 κ(xi,xj)=exp(−∥∥xi−xj∥∥σ)σ>0 Sigmoid 核 κ(xi,xj)=tanh(βxTixj+θ)tanh 为双曲  正切函数, β>0,θ<0 名称  表达式  参数  线性核 κ(xi,xj)=xiTxj 多项式核 κ(xi,xj)=(xiTxj)dd⩾1 为多项式的次数  高斯核 κ(xi,xj)=exp⁡(−‖xi−xj‖22σ2)σ>0 为高斯核的带宽(width)  拉普拉斯核 κ(xi,xj)=exp⁡(−‖xi−xj‖σ)σ>0 Sigmoid 核 κ(xi,xj)=tanh⁡(βxiTxj+θ)tanh⁡ 为双曲  正切函数, β>0,θ<0
  如果 Feature 的数量很大,跟样本数量差不多,这时候选用 LR 或者是 Linear Kernel 的 SVM
  如果 Feature 的数量比较小,样本数量一般, 不算大也不算小,选用 SVM+Gaussian Kernel
  如果 Feature 的数量比较小,而样本数量很多,需要手工添加一些 feature 变成第一种情况

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/326039.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

防火墙部署安全区域

目录 为什么需要安全区域在防火墙上如何来区分不同的网络将接口划分到安全区域安全区域、受信任程度与安全级别安全域间、安全策略与报文流动的方向 安全区域配置案例 为什么需要安全区域 防火墙主要部署在网络边界起到隔离的作用 在防火墙上如何来区分不同的网络 防火墙通过安…

MobaXterm无法上传文件处理

ssh能成功通过mobaxterm连接虚拟机但sftp上传失败的解决办法 1、出现问题时&#xff0c;/etc/ssh/sshd_config的配置文件关于sftp的这行下图所示的情况 2、更改配置文件/etc/ssh/sshd_config的配置文件关于sftp为“internal-sftp”。 3、执行命令systemctl restart sshd&…

leetcode82. 删除排序链表中的重复元素 II

文章目录 题目思路1复杂度Code2 思路2复杂度2Code2 题目 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,3,4,4,5] 输出&#xff1a;…

10.云原生之在线开发调试

云原生专栏大纲 文章目录 vscode-server介绍VSCode Server 和云开发结合vscode-server安装code-server安装插件在线安装插件离线安装插件安装中文插件 配置开发环境在容器中安装开放环境Dockerfile制作镜像 git拉取项目 vscode-server介绍 VSCode Server&#xff08;Visual S…

C++ 编程需要什么样的开发环境?

C 编程需要什么样的开发环境&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#…

k8s之pod基础(下)

k8s之pod基础&#xff08;下&#xff09; 存活探针和就绪探针&#xff0c;会伴随整个pod的生命周期 就绪探针的特点&#xff1a;pod的状态是running&#xff0c;ready状态是notready&#xff0c;容器不可以提供正常的业务访问&#xff0c;就绪探针不会重启容器 就绪探针exec的…

闲鱼宝库亮相!闲鱼商品详情关键词搜索电商API接口助你畅享无尽好货!

随着互联网的快速发展&#xff0c;电商平台的崛起已经改变了人们的购物习惯。而在众多电商平台中&#xff0c;闲鱼作为一款社区二手交易平台&#xff0c;一直备受用户喜爱。如今&#xff0c;闲鱼宝库正式亮相&#xff0c;为用户带来了更加全面、详细的商品详情关键词搜索电商AP…

IP地址冲突警告!你的网络正在受到威胁

IP地址冲突是网络安全中的一个严重问题&#xff0c;可能导致网络不稳定、数据泄漏等严重后果。本文将深入探讨IP地址冲突的原因、影响以及如何应对&#xff0c;以提醒用户关注网络安全问题。 1. IP地址冲突的原因&#xff1a; 动态分配问题&#xff1a;在使用动态IP地址分配的…

开发需求总结9-el-tree获取选中节点,节点全选时返回被全选子级的父节点,未全选则返回被选中的节点

目录 需求描述 代码实现&#xff1a; 需求描述 需要获取树组件选中的节点&#xff0c;假如父节点被选中&#xff08;该节点全选&#xff09;&#xff0c;即只返回父节点的数据&#xff0c;如父节点未被全选&#xff0c;则正常返回被选中节点的数据。 示例一&#xff1a; 如上图…

大众点评评论采集软件使用教程

导出字段&#xff1a; 店铺ID 评论ID 发布时间 人均消费 评分 详情链接 点赞数 浏览数 评论数 最后更新时间 发布平台 推荐 评论详情 原始评论 图片数 图片链接 用户等级 用户名称 用户头像 VIP 私

农业无人机行业分析:单年内作业量突破13亿亩次

面对我国18亿亩的耕地植保市场需求&#xff0c;未来我国植保无人机将依然保持快速发展态势&#xff0c;预计2022年我国植保无人机销量将增长至8万架。 植保无人机市场呈现爆发式增长&#xff0c;同时也吸引了不少企业进入&#xff0c;我们从2022年植保无人机企业网络热度榜中可…

Linux学习记录——사십일 高级IO(2)--- Select型服务器

文章目录 1、思路2、select接口3、实现1、准备工作2、实现等待多个fd3、辨别连接和简单处理读事件4、简单处理写、读事件 4、特点 1、思路 select就是多路转接IO。select能以某种形式&#xff0c;等待多个文件描述符&#xff0c;只要有哪个fd有数据就可以读取并全部返回。就绪…

服务异步通讯——springcloud

服务异步通讯——springcloud 文章目录 服务异步通讯——springcloud初始MQRabbitMQ快速入门单机部署1.1.下载镜像安装MQ SpringAMQPwork Queue 工作队列Fanout Exchange广播模式DirectExchange路由模式TopicExchange话题模式 消息转换器 初始MQ RabbitMQ快速入门 官网https:/…

手把手教你SWOT分析!建议收藏

最近&#xff0c;我一直为一件事情感到困扰。那家位于市中心的西点店生意越来越好&#xff0c;甚至已经开了两家分店&#xff0c;但是挣来的钱还不足够买房子。于是最近&#xff0c;我被这如火如荼的奶茶市场所吸引&#xff0c;想要利用已有的资源开一家奶茶店。但是我不确定这…

计算机视觉开发工程师怎么考?报考难度大吗?证书含金量高吗?

为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国务院印发《关于“十四五”数字经济发展规划》等有关工作的部署要求&#xff0c;深入实施人才强国战略和创新驱动发展战略&#xff0c;加强全国数字化人才队伍建设&#xff0c;持续推进人工智能专业人员…

JNPF低代码引擎到底是什么?

最近听说一款可以免费部署本地进行试用的低代码引擎&#xff0c;源码上支持100%源码&#xff0c;提供的功能和技术支持比较完善。借助这篇篇幅我们了解下JNPF到底是什么&#xff1f; JNPF开发平台是一款PaaS服务为核心的零代码开发平台&#xff0c;平台提供了多租户账号管理、主…

《TrollStore巨魔商店》TrollStore2安装使用教程支持IOS14.0-16.6.1

TrollStore(巨魔商店) 简单的说就相当于一个永久的免费证书&#xff0c;它可以给你的iPhone和iPad安装任何你想要安装的App软件&#xff0c;而且不需要越狱,不用担心证书签名过期的问题&#xff0c;不需要个人签名和企业签名。 支持的版本&#xff1a; TrollStore安装和使用教…

MIT 6s081 lab1:Xv6 and Unix utilities

Lab1: Xv6 and Unix utilities 作业网址&#xff1a;https://pdos.csail.mit.edu/6.828/2020/labs/util.html Boot xv6(easy) 下载&#xff0c;启动xv6系统 $ git clone git://g.csail.mit.edu/xv6-labs-2020 Cloning into xv6-labs-2020... ... $ cd xv6-labs-2020 $ git …

【dc-dc】世微AP5127平均电流型LED降压恒流驱动器 双色切换的LED灯驱动方案

这是一款双色切换的LED灯方案&#xff0c;12-50V 降压恒流,输出&#xff1a;6V 2.5A ​ 这是一款PWM工作模式 , 高效率、 外围简单、内置功率管&#xff0c;适用于 输入的 高 精度降压 LED 恒流驱动芯片。输出大功率可 达 25W&#xff0c;电流 2.5A。 可实现全亮/半亮功能切换…

Linux 设备树详解

1、概述 设备树&#xff08; Device Tree&#xff09;是一种描述硬件的数据结构&#xff0c;在操作系统&#xff08; OS&#xff09;引导 阶段进行设备初始化的时候&#xff0c;数据结构中的硬件信息被检测并传递给操作系统 最早诞生于 Open Firmware&#xff0c; Flattened De…