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

news2024/12/23 12:51:05

摘要:

支持向量机(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.coloradmin.cn/o/1389210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

presto 支持regexp_count

一、背景 1、查询regexp_count 函数提示未注册 用户想正则查询特定字符出现次数 function regexp_count not registered 二、调研 1、官网地址&#xff1a; Presto Documentation — Presto 0.284 Documentation 2、regexp_extract_all Regular Expression Functions —…

c++时间复杂度详解

1.基本概念 在计算机科学中&#xff0c;时间复杂性&#xff0c;又称时间复杂度&#xff0c;算法的时间复杂度是一个函数&#xff0c;它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述&#xff0c;不包括这个函数的低阶项和…

【Mybatis系列】Mybatis空值关联

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

PDF.js实现按需分片加载pdf文件

pdf.js实现按需、分片加载pdf文件 1.服务端配置 分片加载的实现是基于 HTTP-RANGE&#xff0c;即服务端的文件接口必须实现了HTTP-RANGE。 服务端文件接口实现HTTP-RANGE&#xff0c;需要服务端添加如下响应头 [{key: "Accept-Ranges",value: "bytes"}…

用Growly Draw for Mac,释放您的创意绘画天赋!

在数字化时代&#xff0c;绘画已经不再局限于传统的纸笔之中。如今&#xff0c;我们可以借助强大的绘画应用软件&#xff0c;将创意化为独特的艺术作品。而Growly Draw for Mac就是一款让您能够快速释放创意、创作精美绘画作品的应用软件。 Growly Draw for Mac是一款专为Mac用…

Ezsql

靶场说明 靶机地址解释&#xff1a; 第一行&#xff1a;目标机器 WEB 服务地址 第二行&#xff1a;目标机器 SSH 地址以及端口 第三行&#xff1a;Check 服务访问地址。 http://99bdd2da-7d5e-4b5c-a7ee-79713b8ecabc.node5.buuoj.cn:8199bdd2da-7d5e-4b5c-a7ee-79713b8ecabc…

十、Three场景实现多个物体的合并

Three场景实现多个物体的合并 目的 产品需求是让物体的光柱墙包含一个多边形的区域,二而我的多边形只能使用原型,方向,多边形。那么再研究的时候就需要将这些多边形合并成为一个形状,那么就行实现了。 原先的图形 如上图,是两个mesh组成的。首先寻找mesh合并的方法。 第…

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

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

Ubantu 安装vscode配置c/c++环境

文章目录 安装VSCode注意 snap包冲突 安装C/C编译环境注意 进程锁占用 配置C开发环境安装插件配置tasks.json配置c_cpp_properties.json 配置调试环境配置 launch.json 安装VSCode 方式一&#xff1a;ubantu 软件里面直接安装 方式二&#xff1a;官网下载deb安装包https://cod…

面试Java岗老喜欢盯着JVM问,有那么多项目要调优吗?

面试Java岗老喜欢盯着JVM问&#xff0c;有那么多项目要调优吗&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给…

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

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

资本主义的市场竞争?IBM总监Jerry Chow 谈量子计算的未来

​ 人物介绍&#xff1a;Jerry M.Chow博士在耶鲁大学取得物理博士学位。担任IBM量子系统总监&#xff0c;其研究重点是面向容错量子计算的多量子比特系统。他主要为IBM的量子系统路线图制定战略&#xff0c;与硬件团队领导者一起设定目标研究领域&#xff0c;同时也确保最佳的客…

llvm pass

pass们组合在一起&#xff0c;处理IR 而最后的目标代码生成阶段&#xff0c;会生成另一种MIR&#xff08;Machine IR&#xff09; PassManager管理这些pass pass处理IR之后会改变分析的情况&#xff0c;这些关于IR的信息由 AnalysisManager处理 1、pass &#xff08;1&…

重磅!30余所985高校全面取消博士统考!

2024年博士招生&#xff0c;又有“双一流”高校取消统考。 近日&#xff0c;各大高校正在陆续发布《2024年博士研究生招生简章》&#xff0c;其中南昌大学的博士招生方式引起了广泛关注。据悉&#xff0c;南昌大学将全面实行“申请—考核”制选拔方式&#xff0c;适用于直接攻…

中级职称原来有这么多用处!

中级工程师职称是工程技术人员职称中的一个级别&#xff0c;其作用可能因行业、地区和具体情况而异。一般来说&#xff0c;中级工程师职称具有以下作用&#xff1a; 1. 职业发展&#xff1a;中级工程师职称是工程技术人员职业发展中的一个重要里程碑&#xff0c;它可以证明持证…

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

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

“核弹级“攻击队视角下的监管痛点解决方案

痛点分析及解决方案 一、辖区企业资产分散且不透明 - 传统的监管体系中&#xff0c;政府监管单位往往面临着辖区企业资产分散且不透明的问题。 - 企业无法梳理自身资产&#xff0c;上报的资产台账无法涵盖全部自身资产 - 监管单位精力有限&#xff0c;无法保证辖区企业资产台账…

Three.js 镜面反射Reflector 为MeshStandardMaterial增加Reflector能力

效果效果官方案例 区别&#xff1a;官方的案例更像一个镜子 没有纹理等属性 也没有透明度修改 根据源码进行修改为 MeshStandardMaterial实现反射 使用案例 createReflector() {const plane this.helper.create.plane(2, 2);this.helper.add(plane.mesh);plane.mesh.rotat…

QT DAY6作业

1.学生管理系统&#xff0c;基于QT的数据库中数据表的增删改查 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QSqlDatabase> //数据库管理类 #include <QSqlQuery> //执行sql语句类 #include <QSqlRecord> //数据库记…

强化学习(二)多臂老虎机 “Multi-armed Bandits”——2

1、增量算法估计动作价值 由之前的内容可知&#xff0c;某一个动作被选择 n − 1 n-1 n−1 次后&#xff0c;该动作的价值估计值为 Q n ≐ R 1 R 2 ⋯ R n − 1 n − 1 Q_n\doteq\dfrac{R_1R_2\cdotsR_{n-1}}{n-1} Qn​≐n−1R1​R2​⋯Rn−1​​ 很明显&#xff0c;随着…