注:本文通过问题与回答(Q&A)为线索来梳理SVM相关内容
看到SVM(Support Vector Machines)这个单词,就会产生几个问题:
Q1:什么是支持向量(support vector)?
A1:
如图所示:支持向量就是两个虚线上的点。(点就是向量)
从图中还可以看出,SVM是用来解决线性可分的二分类问题。其中,虚线上的点距离直线(n维中的超平面)的距离叫margin。
Q1.1:什么是线性可分?
A1.1:线性可分:
直观上看,二维空间中两类点被一条直线分开。
N维中,就是一个超平面。
数学定义:
D
0
\it{D}_0
D0 和
D
1
\it{D}_1
D1 是 n 维欧氏空间中的两个点集。如果存在 n 维向量 w 和实数 b,使得所有属于
D
0
\it{D}_0
D0 的点
x
i
x_i
xi 都有
w
T
x
+
b
>
0
w^Tx+b>0
wTx+b>0 ,而对于所有属于
D
1
\it{D}_1
D1 的点
x
i
x_i
xi 则有
w
T
x
+
b
<
0
w^Tx+b<0
wTx+b<0 ,则我们称
D
0
\it{D}_0
D0 和
D
1
\it{D}_1
D1 线性可分。
Q2:支持向量有什么用?
A2:还得从感知机(perceptron)说起
感知机也是一种二分类线性分类器。
假设输入空间为 χ ⊆ R n \chi \subseteq R^n χ⊆Rn ,输出空间为 y = { + 1 , − 1 } y=\{+1, -1\} y={+1,−1},m个样本点 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , x ⊆ χ \it{D}=\{(x_1, y_1),(x_2,y_2),...,(x_m, y_m)\}, x\subseteq\chi D={(x1,y1),(x2,y2),...,(xm,ym)},x⊆χ , 即 x i = ( x i 1 , x i 2 , . . . x i n ) x_i=(x_i^1,x_i^2,...x_i^n) xi=(xi1,xi2,...xin)
一个二维空间的例子:
我们的目标就是找到一个直线(超平面)分开这两类点。
二维中,直线方程为
A
x
+
B
y
+
C
=
0
Ax+By+C=0
Ax+By+C=0
三维中,平面方程为
A
x
+
B
y
+
C
z
+
D
=
0
Ax+By+Cz+D=0
Ax+By+Cz+D=0
N维中,超平面方程为
w
1
x
1
+
w
2
x
2
+
.
.
.
+
w
n
x
n
+
b
=
0
w_1x_1+w_2x_2 +...+w_nx_n+b=0
w1x1+w2x2+...+wnxn+b=0 ,把
w
i
w_i
wi和
x
i
x_i
xi写成向量的形式后为
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0(默认向量为列向量,行向量为
列
向
量
T
列向量^T
列向量T)
因此我们的优化参数就是
w
w
w和
b
b
b。我们的约束条件为:对
∀
(
x
i
,
y
i
)
∈
D
{\forall (x_i, y_i)\in D}
∀(xi,yi)∈D,
{
w
T
x
i
+
b
>
0
,
y=+1
w
T
x
i
+
b
<
0
,
y= –1
\begin{cases} w^Tx_i+b>0,& \text{y=+1}\\w^Tx_i+b<0,& \text{y= --1} \end{cases}
{wTxi+b>0,wTxi+b<0,y=+1y= –1将两种情况合并后得
y
i
(
w
T
x
i
+
b
)
>
0
y_i(w^Tx_i+b)\gt 0
yi(wTxi+b)>0我们的损失函数就是让误分类点个数最少,但是因为误分类点个数函数不可导,所以采用所有误分类点的距离和最小,即当
−
y
i
(
w
T
x
i
+
b
)
>
0
-y_i(w^Tx_i+b)>0
−yi(wTxi+b)>0 时的所有点
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi),计算
x
i
x_i
xi到超平面
w
T
x
i
+
b
=
0
w^Tx_i+b=0
wTxi+b=0的距离和。
由
x
i
x_i
xi到
w
T
x
i
+
b
=
0
w^Tx_i+b=0
wTxi+b=0的距离为
r
=
∣
w
T
x
i
+
b
∣
∣
∣
w
∣
∣
r=\frac {\vert w^Tx_i+b \vert} {\vert\vert w \vert\vert}
r=∣∣w∣∣∣wTxi+b∣我们把绝对值去掉后可得误分类点与超平面的距离:
r
=
−
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
r=\frac {-y_i (w^Tx_i+b )} {\vert\vert w \vert\vert}
r=∣∣w∣∣−yi(wTxi+b)对所有误分类点求和后,可得出目标优化函数:
arg
min
w
,
b
1
∣
∣
w
∣
∣
∑
x
i
∈
M
−
y
i
(
w
T
x
i
+
b
)
\mathop{\arg\min}\limits_{w,b}\frac 1{\vert\vert w||} \sum_{x_i\in M} -y_i(w^Tx_i+b)
w,bargmin∣∣w∣∣1xi∈M∑−yi(wTxi+b)其中,
M
M
M为误分类点集合。
这样,我们再利用随机梯度下降就可以求得
w
,
b
w,b
w,b了,我们设定一组初值
w
0
,
b
0
w_0,b_0
w0,b0,就可以得到一组解
w
,
b
w,b
w,b。但是,如果我们指定的初值不同,那么可能解也不同,甚至相同的初值,每次运行得出的解也是不同的!
那么我们如何在这些解中选择呢?
Q3:如何选择解 w , b w,b w,b使泛化误差最小?
A3:
泛化能力就是学得的模型对未知数据的预测能力,泛化能力却强,泛化误差越小。
注:对线性可分二分类问题来说,学得的模型就是一个超平面(w和b参数已知),我们用这个超平面对未知数据分类。
直观上,可以看到中间加粗的线距离两个点集的距离都比较大,所以认为这样的超平面的泛化误差最小,鲁棒性最强。所以,我们任务变成了找具有最大margin的参数
w
,
b
w,b
w,b
margin如下图所示:
Q4:margin如何量化?
A4:
由以上的分析知,如果线性可分,则
∀
(
x
i
,
y
i
)
∈
D
\forall(x_i,y_i)\in D
∀(xi,yi)∈D , 满足
{
w
T
x
i
+
b
>
0
,
y=+1
w
T
x
i
+
b
<
0
,
y= –1
\begin{cases} w^Tx_i+b>0,& \text{y=+1}\\w^Tx_i+b<0,& \text{y= --1} \end{cases}
{wTxi+b>0,wTxi+b<0,y=+1y= –1则在正类中,设
a
=
m
i
n
(
w
T
x
i
+
b
)
a=min(w^Tx_i+b)
a=min(wTxi+b) ,有
w
T
a
x
i
+
b
a
=
1
\frac {w^T}ax_i+\frac ba=1
awTxi+ab=1 ,重新设
w
,
b
w,b
w,b 使
w
T
x
i
+
b
=
1
w^Tx_i+b=1
wTxi+b=1 (这里相当于我们对w和b进行缩放)。同理,负类一样处理后可得
{
w
T
x
i
+
b
≥
1
,
y=+1
w
T
x
i
+
b
≤
1
,
y= –1
\begin{cases} w^Tx_i+b\geq1,& \text{y=+1}\\w^Tx_i+b\leq1,& \text{y= --1} \end{cases}
{wTxi+b≥1,wTxi+b≤1,y=+1y= –1由此,我们可以得出
r
=
2
∣
∣
w
∣
∣
r=\frac{2}{\vert\vert w \vert\vert}
r=∣∣w∣∣2如果所示:
Q5:如何计算最大margin下的 w , b w,b w,b?
A5:
我们现在的情况是,先要保证所有数据点分类正确,然后再在所有解
w
,
b
w,b
w,b中求得使margin最大的解。(在约束下的最优解问题)
当前情况的目标优化函数:
{
arg
max
w
,
b
2
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
i
=
1
,
2
,
.
.
.
,
m
\begin{cases}\mathop{\arg\max}\limits_{w,b}\frac 2{\vert\vert w||}\\s.t.y_i(w^Tx_i+b) \geq 1 & i=1,2,...,m \end{cases}
⎩⎨⎧w,bargmax∣∣w∣∣2s.t.yi(wTxi+b)≥1i=1,2,...,m
这里书上说等价可以写成
{
arg
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
i
=
1
,
2
,
.
.
.
,
m
(1)
\begin{cases}\mathop{\arg\min}\limits_{w,b}\frac 12{\vert\vert w||}^2 \\s.t.y_i(w^Tx_i+b) \geq 1 & i=1,2,...,m \end{cases}\tag1
⎩⎨⎧w,bargmin21∣∣w∣∣2s.t.yi(wTxi+b)≥1i=1,2,...,m(1) 是因为后面用Lagrange multipliers对参数求导时,求导出来的形式不至于那么丑陋。
接下来,就是求解这个凸二次规划(convex quadratic programming)问题了。
Q5.1:什么是拉格朗日乘数法(Lagrange multipliers)?
A5.1:
温馨提示:这个知识出现在高数中多元函数的微分一章。在这一章中,我们学习的主要内容有:方向导数,偏导数,微分,梯度,Jacobina矩阵,hessian矩阵等。
我们先来研究多元函数无条件极值的解法:
函数
f
f
f在
x
0
x_0
x0处取得极值的条件为:1、
x
0
x_0
x0为驻点。2、
f
f
f具有二阶连续偏导数的前提下,
f
f
f在
x
0
x_0
x0处的hessian矩阵为半正(负)定矩阵。(利用多元函数的Taylor展开可证)
如果存在等值约束,如下:
{
m
a
x
f
(
x
1
,
x
2
,
.
.
.
,
x
n
)
s
.
t
.
Φ
k
(
x
1
,
x
2
,
.
.
.
,
x
n
)
=
0
,
k
=
1
,
2
,
.
.
.
,
m
\begin{cases}maxf(x_1, x_2, ...,x_n) \\ s.t.\quad \Phi_k(x_1,x_2,...,x_n)=0,k=1,2,...,m\end{cases}
{maxf(x1,x2,...,xn)s.t.Φk(x1,x2,...,xn)=0,k=1,2,...,m可以利用拉格朗日乘子法,转换成
L
(
x
,
λ
)
=
f
(
x
)
−
∑
k
=
1
m
λ
k
Φ
k
(
x
)
L(x,\lambda)=f(x)-\sum_{k=1}^m\lambda_k\Phi_k(x)
L(x,λ)=f(x)−k=1∑mλkΦk(x)其中,
λ
\lambda
λ就叫Lagrange multipliers,对
λ
\lambda
λ没有约束条件。
为什么可以这么转换?看这里
接下来只需要对
x
,
λ
x,\lambda
x,λ求偏导就好了
{
∂
L
∂
x
=
0
∂
L
∂
λ
=
0
\begin{cases} \frac {\partial L}{\partial x} = 0\\ \frac {\partial L}{\partial \lambda } =0\end{cases}
{∂x∂L=0∂λ∂L=0
如果存在不等值约束
Φ
(
x
)
≥
0
\Phi(x)\geq0
Φ(x)≥0 呢?
可以分为两种情况:
- 目标函数的最值点在不等式约束的可行域外,此时极值点在约束曲面的边界上,这种情况归结于 Φ ( x ) = 0 \Phi(x)=0 Φ(x)=0,此时 λ > 0 \lambda\gt0 λ>0 (相切时, ∇ f = − ∑ k = 1 m λ k ∇ Φ k \nabla f=-\sum_{k=1}^m \lambda_k \nabla \Phi_k ∇f=−∑k=1mλk∇Φk)
- 目标函数的最值点在不等式的可行域内,此时不等式曲面约束不起作用(inactive),转化为只有 f ( x ) = 0 f(x)=0 f(x)=0 的情况,此时 λ = 0 \lambda=0 λ=0。
综上,可以得知
{
∇
f
(
x
)
+
λ
∇
Φ
(
x
)
=
0
λ
≥
0
λ
Φ
(
x
)
=
0
Φ
(
x
)
≥
0
\begin{cases} \nabla f(x)+\lambda\nabla\Phi(x)=0 \\ \lambda \geq 0 \\ \lambda \Phi(x)=0 \\ \Phi(x)\geq 0 \end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧∇f(x)+λ∇Φ(x)=0λ≥0λΦ(x)=0Φ(x)≥0这就是KKT条件。直观理解KKT条件可以看这里
Q5.2:我们的问题如何用拉格朗日乘子法求解呢?
A5.2:利用对偶问题(dual problem)
把式(1)引入拉格朗日乘子,且使其满足KKT条件后 { L ( w , b , λ ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 m λ i ( y i ( w T x i + b ) − 1 ) y i ( w T x i + b ) − 1 ≥ 0 λ i ≥ 0 λ i ( y i ( w T x i + b ) − 1 ) = 0 \begin{cases} L( w,b,\mathbf \lambda)=\frac 12\vert\vert w||^2-\sum_{i=1}^{m}\lambda_i(y_i(w^Tx_i+b)-1) \\y_i(w^Tx_i+b)-1\geq0 \\ \lambda_i \geq 0 \\ \lambda_i(y_i(w^Tx_i+b)-1)=0 \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧L(w,b,λ)=21∣∣w∣∣2−∑i=1mλi(yi(wTxi+b)−1)yi(wTxi+b)−1≥0λi≥0λi(yi(wTxi+b)−1)=0观察第四行可以发现,当 λ i ≠ 0 \lambda_i\neq0 λi=0时, y i ( w T x i + b ) = 1 y_i(w^Tx_i+b)=1 yi(wTxi+b)=1 ,即 ( x i , y i ) (x_i,y_i) (xi,yi)为支持向量。
正常的解法是:分别对
w
,
b
,
λ
w,b,\lambda
w,b,λ求偏导,并其导函数等于0后,求出极值点,然后求这个点的hessian矩阵,判断是否负定矩阵,就可以判断是否是极小值点。
但是这里我们通过求其对偶问题,可以得到原始问题的解,然后用SMO高效算法求解。
对于对偶问题:
max
λ
inf
w
,
b
L
(
w
,
b
,
λ
)
\mathop{\max}\limits_\lambda\mathop{\inf}\limits_{w,b}\mathcal{L}(w,b,\lambda)
λmaxw,binfL(w,b,λ)
先把
λ
\lambda
λ 当做常数,求下确界函数的极小值。分别对
L
L
L求
w
,
b
w,b
w,b的偏导数,并使其等于0后,可得
w
=
∑
i
=
1
m
λ
i
y
i
x
i
0
=
∑
i
=
1
m
λ
i
y
i
\bm{w}=\sum_{i=1}^{m}\lambda_iy_i\bm{x_i} \\0=\sum_{i=1}^m\lambda_iyi
w=i=1∑mλiyixi0=i=1∑mλiyi将其带入原始问题(primal problem)中。
然后,求最大的
λ
\lambda
λ 就得到了对偶问题
max
λ
∑
i
=
1
m
λ
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
λ
i
λ
j
y
i
y
j
x
i
T
x
j
(5.2.1)
\mathop{\max}\limits_{\lambda}\sum_{i=1}^m\lambda_i-\frac12 \sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy_iy_j\bm{x_i}^T\bm{x_j}\tag{5.2.1}
λmaxi=1∑mλi−21i=1∑mj=1∑mλiλjyiyjxiTxj(5.2.1)
s
.
t
.
∑
i
=
1
m
λ
i
y
i
=
0
λ
≥
0
s.t.\quad\sum_{i=1}^m\lambda_iy_i=0\\\lambda\geq0
s.t.i=1∑mλiyi=0λ≥0解出
λ
\lambda
λ后,就可以求出
w
,
b
w,b
w,b了。因此我们的超平面为
w
T
x
+
b
=
∑
i
=
1
m
λ
i
y
i
x
i
T
x
+
b
w^Tx+b=\sum_{i=1}^m\lambda_iy_i\bm{x_i}^T\bm{x}+b
wTx+b=i=1∑mλiyixiTx+b
为什么对偶问题的解与原问题的解等价呢?
为什么对偶问题的形式是这样的呢?
原问题是convex+满足KKT条件,因此是强对偶,所以
d
∗
=
p
∗
d^*=p^*
d∗=p∗。具体关于对偶问题的知识,非常推荐这篇博文,这是我看到的最保姆级的对偶问题的教学。
Q6:如何从式 ( 5.2.1 ) (5.2.1) (5.2.1) 中解出 λ \lambda λ 呢?
A6:使用SMO算法
如果在某个
λ
\bm{\lambda}
λ 下,所有样本都满足KKT条件,则
λ
\bm{\lambda}
λ 就是我们的最优解。
SMO的基本思想时,先选取两个变量
λ
i
\lambda_i
λi和
λ
j
\lambda_j
λj(使其中一个变量不满足KKT条件),固定其他的
λ
\lambda
λ。这时更新两个变量,使其满足约束条件后,这是一个单变量的二次规划问题,非常容易求解。然后迭代,直到满足停机条件。
具体推导过程
Q7:如果是线性不可分呢?
A7:核函数或者soft margin
Q7.1:核函数?
A7.1:
对于线性不可分的问题,我们可以把特征空间映射到高维空间,使其线性可分。如图所示:
于是,我们需要将
x
i
x_i
xi映射到高维,映射函数为
ψ
(
x
)
\psi(x)
ψ(x),于是我们只需要将目标函数中的
x
i
x_i
xi替换成
ψ
(
x
)
\psi(x)
ψ(x)即可。
由对偶问题的式(5.2.1)中,可得
max
λ
∑
i
=
1
m
λ
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
λ
i
λ
j
y
i
y
j
ψ
(
x
i
)
T
ψ
(
x
j
)
\mathop{\max}\limits_{\lambda}\sum_{i=1}^m\lambda_i-\frac12 \sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy_iy_j\bm{\psi(x_i)}^T\bm{\psi(x_j)}
λmaxi=1∑mλi−21i=1∑mj=1∑mλiλjyiyjψ(xi)Tψ(xj)
但是,我们如何确定要增加的维数和具体的值呢?枚举的话,需要非常高的计算量。所以,kernel function:
κ
(
x
i
,
x
j
)
\kappa(x_i,x_j)
κ(xi,xj) 出现了,就是为了避免直接计算
ψ
(
x
i
)
T
ψ
(
x
j
)
\bm{\psi(x_i)}^T\bm{\psi(x_j)}
ψ(xi)Tψ(xj)。
如何寻找合适的
κ
(
⋅
,
⋅
)
\kappa(·,·)
κ(⋅,⋅) 呢?
几种常用的核函数:线性核、高斯核(RBF)等等。只需要核矩阵半正定即可。
Q7.2:软间隔(soft margin)?
A7.2:
如果我们的数据中有异常点的时候,如果我们仍采用硬间隔+核函数的方法,费劲千辛万苦,终于拿到了超平面,而测试的时候,就会发现非常离谱的。因为必然发生了过拟合。因此,我们要引入罚函数,引入松弛变量(slack variable)
ξ
i
\xi_i
ξi。
首先,松弛化约束
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
ξ
i
≥
0
y_i(w^Tx_i+b)\geq1-\xi_i \\ \xi_i \geq 0
yi(wTxi+b)≥1−ξiξi≥0主观上如下图所示:
但是,还要在目标优化函数中加入一个惩罚函数。我们引入一个正则化常数
C
≥
0
C\geq0
C≥0
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
l
0
/
1
(
y
i
(
w
T
x
i
+
b
)
−
1
)
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
ξ
i
≥
0
\mathop{min}\limits_{w,b}\frac12||w||^2+C\sum_{i=1}^ml_{0/1}(y_i(w^Tx_i+b)-1)\\s.t.\quad y_i(w^Tx_i+b)\geq1-\xi_i\\\xi_i\geq0
w,bmin21∣∣w∣∣2+Ci=1∑ml0/1(yi(wTxi+b)−1)s.t.yi(wTxi+b)≥1−ξiξi≥0其中,
l
0
/
1
(
x
)
=
{
1
,
i
f
x
<
0
0
,
e
l
s
e
l_{0/1}(x)=\begin{cases}1, &if \quad x <0 \\ 0, & else \end{cases}
l0/1(x)={1,0,ifx<0else
当C为无穷大时,最小化函数要求
l
0
/
1
(
x
)
=
0
l_{0/1}(x)=0
l0/1(x)=0,转变成硬间隔。当然,
l
0
/
1
(
x
)
l_{0/1}(x)
l0/1(x)不是凸函数也不可导,所以产生了替代函数:
- hinge损失函数: l h i n g e ( x ) = m a x ( 0 , 1 − x ) ; l_{hinge}(x)=max(0,1-x); lhinge(x)=max(0,1−x);
- exponential loss函数: l e x p ( x ) = e x p ( − x ) ; l_{exp}(x)=exp(-x); lexp(x)=exp(−x);
- logistic loss函数:
l
l
o
g
(
z
)
=
l
o
g
(
1
+
e
x
p
(
−
x
)
)
;
l_{log(z)}=log(1+exp(-x));
llog(z)=log(1+exp(−x));
当采用hinge损失函数时,引入松弛变量后的模型为:
m
i
n
w
,
b
,
ξ
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
ξ
i
≥
0
\mathop{min}\limits_{w,b,\xi_i}\frac12||w||^2+C\sum_{i=1}^m\xi_i\\s.t.\quad y_i(w^Tx_i+b)\geq1-\xi_i\\\xi_i\geq0
w,b,ξimin21∣∣w∣∣2+Ci=1∑mξis.t.yi(wTxi+b)≥1−ξiξi≥0
与硬间隔相似,我们对这个凸二次规划问题利用拉格朗日乘子法及对偶问题求解:
m
a
x
λ
∑
i
=
1
m
λ
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
λ
i
λ
j
y
i
y
j
x
i
T
x
j
s
.
t
.
∑
i
=
1
m
λ
i
y
i
,
0
≤
λ
i
≤
C
,
i
=
1
,
2
,
.
.
.
,
m
.
\mathop{max}\limits_{\bm{\lambda}}\sum_{i=1}^m\lambda_i-\frac12\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy_iy_j\bm{x_i^Tx_j}\\ s.t. \quad \sum_{i=1}^m\lambda_iy_i,\\0\leq\lambda_i\leq C, \quad i=1,2,...,m.
λmaxi=1∑mλi−21i=1∑mj=1∑mλiλjyiyjxiTxjs.t.i=1∑mλiyi,0≤λi≤C,i=1,2,...,m.类似的,因为原问题Convex,所以KKT条件为强对偶的充要条件。此时KKT条件为
{
λ
i
≥
0
,
μ
i
≥
0
ξ
i
≥
0
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
≥
0
λ
i
(
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
)
=
0
μ
i
ξ
i
=
0
\begin{cases} \lambda_i\geq0,\mu_i\geq0\\ \xi_i\geq0\\ y_i(w^Tx_i+b)-1+\xi_i\geq0\\ \lambda_i(y_i(w^Tx_i+b)-1+\xi_i)=0\\ \mu_i\xi_i=0 \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧λi≥0,μi≥0ξi≥0yi(wTxi+b)−1+ξi≥0λi(yi(wTxi+b)−1+ξi)=0μiξi=0由此,可以看出软间隔中,支持向量为所以在margin边界内的向量,即,使
ξ
i
≥
0
\xi_i\geq0
ξi≥0 的所有向量。其中
ξ
i
>
1
\xi_i>1
ξi>1为误分类点。
其他向量为当
λ
i
=
0
\lambda_i=0
λi=0时,样本对模型没有影响。由此可见,这保持了稀疏性(sparse)。
参考:
- 《机器学习》 周志华
- 【机器学习】支持向量机 SVM(非常详细)
- 统计学习方法(第2版) by 李航
- Pattern Recognition And Machine Learning
- 【数学】拉格朗日对偶,从0到完全理解
- 【凸优化笔记6】-拉格朗日对偶(Lagrange duality)、KKT条件
- 非线性优化中的 KKT 条件该如何理解?
- 拉格朗日乘子法
- 优化-拉格朗日乘子法