本章内容是结合了西瓜书和Datawhale的讲解视频两者的内容,再按自己的思路做的笔记
1、先导知识
1.1 超平面
超平面的知识在上一章神经网络中有介绍过,这里再简单的重复一下。
对于
n
n
n维空间的超平面
(
w
T
x
+
b
=
0
,
其中
w
,
x
∈
R
n
)
({\bf w^Tx}+b=0,其中{\bf w,x \in\mathbb R^n})
(wTx+b=0,其中w,x∈Rn):
- 超平面方程不唯一:如方程左右同时乘以一个不为零的常数
- 法向量 w w w垂直于超平面
- 法向量 w w w和位移项 b b b确定唯一一个超平面
- 法向量 w w w指向的那一半空间为正空间,另一半为负空间
- 任意点 x \bf x x到超平面的距离公式为: r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|{\bf w^Tx}+b|}{||\bf w||} r=∣∣w∣∣∣wTx+b∣
1.2 几何间隔
对于给定的数据集
X
X
X和超平面
w
T
x
+
b
=
0
{\bf w^Tx}+b=0
wTx+b=0,定义数据集
X
X
X中的任意一个样本点
(
x
i
,
y
i
)
,
y
i
∈
−
1
,
+
1
,
i
=
1
,
2
,
.
.
.
,
m
({\bf x_i},y_i),y_i\in{-1,+1},i=1,2,...,m
(xi,yi),yi∈−1,+1,i=1,2,...,m关于超平面的几何间隔为
γ
i
=
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
\gamma _i=\frac{y_i({\bf w^Tx_i}+b)}{||{\bf w}||}
γi=∣∣w∣∣yi(wTxi+b)
正确分类时,
y
i
(
w
T
x
i
+
b
)
=
∣
w
T
x
i
+
b
∣
>
0
y_i({\bf w^Tx_i}+b)=|{\bf w^Tx_i}+b|>0
yi(wTxi+b)=∣wTxi+b∣>0,即此时
γ
i
>
0
\gamma_i>0
γi>0且等价于点到超平面的距离;
错误分类时,
y
i
(
w
T
x
i
+
b
)
=
∣
w
T
x
i
+
b
∣
<
0
y_i({\bf w^Tx_i}+b)=|{\bf w^Tx_i}+b|<0
yi(wTxi+b)=∣wTxi+b∣<0,即
γ
i
<
0
\gamma_i<0
γi<0。
对于给定的数据集
X
X
X和超平面
w
T
x
+
b
=
0
{\bf w^Tx}+b=0
wTx+b=0,定义数据集
X
X
X关于超平面的几何间隔为:数据集
X
X
X中所有样本点的几何间隔最小值
γ
=
m
i
n
i
=
1
,
2
,
.
.
.
,
m
γ
i
\gamma=\mathop{min}\limits_{i=1,2,...,m}\gamma_i
γ=i=1,2,...,mminγi
1.3 拉格朗日对偶
对于一般的约束优化问题:$
m
i
n
f
(
x
)
s
.
t
.
g
i
(
x
)
≤
0
,
i
=
1
,
2
,
.
.
.
,
m
h
j
(
x
)
=
0
,
j
=
1
,
2
,
.
.
.
,
m
\begin{aligned}min\quad &f(x)\\s.t.\quad &g_i(x)\le 0,\quad i=1,2,...,m\\ &h_j(x)=0,\quad j=1,2,...,m\end{aligned}
mins.t.f(x)gi(x)≤0,i=1,2,...,mhj(x)=0,j=1,2,...,m
当
g
i
(
x
)
g_i(x)
gi(x)是凸函数,
h
j
(
x
)
h_j(x)
hj(x)是线性函数时,约束集合就是凸集。而若目标函数
f
(
x
)
f(x)
f(x)是凸函数且约束集合是凸集时,则上述优化问题为凸优化问题。而支持向量机的引出的优化问题 满足凸优化问题的条件。
对于一般的约束优化问题(不一定是凸优化问题):$
m
i
n
f
(
x
)
s
.
t
.
g
i
(
x
)
≤
0
,
i
=
1
,
2
,
.
.
.
,
m
h
j
(
x
)
=
0
,
j
=
1
,
2
,
.
.
.
,
m
\begin{aligned}min\quad &f(x)\\s.t.\quad &g_i(x)\le 0,\quad i=1,2,...,m\\ &h_j(x)=0,\quad j=1,2,...,m\end{aligned}
mins.t.f(x)gi(x)≤0,i=1,2,...,mhj(x)=0,j=1,2,...,m
设上述问题的定义域为
D
=
d
o
m
f
∩
∩
i
=
1
m
d
o
m
g
i
∩
∩
j
=
1
n
d
o
m
h
j
D={\bf dom} f\cap{\mathop{\cap}\limits_{i=1}^{m}}{\bf dom}g_i\cap{\mathop{\cap}\limits_{j=1}^{n}}{\bf dom}h_j
D=domf∩i=1∩mdomgi∩j=1∩ndomhj,可行集为
D
~
=
{
x
∣
x
∈
D
,
g
i
(
x
)
≤
0
,
h
j
x
=
0
}
{\tilde D}=\{{\bf x|x} \in D,g_i({\bf x})\le0,h_j{\bf x}=0\}
D~={x∣x∈D,gi(x)≤0,hjx=0}。易知
D
~
为
D
{\tilde D}为D
D~为D的子集,最优值
p
∗
=
m
i
n
{
f
(
x
~
)
}
p^*=min\{f({\tilde x})\}
p∗=min{f(x~)}。有拉格朗日函数定义可得上述优化问题的拉格朗日函数为
L
(
x
,
μ
,
λ
)
=
f
(
x
)
+
∑
i
=
m
μ
i
g
i
(
x
)
+
∑
j
=
n
λ
j
h
j
(
x
)
L({\bf x,\mu,\lambda})=f({\bf x})+\sum\limits_{i=}^{m}\mu_ig_i({\bf x})+\sum\limits_{j=}^{n}\lambda_jh_j(x)
L(x,μ,λ)=f(x)+i=∑mμigi(x)+j=∑nλjhj(x)
其中
μ
=
(
μ
1
,
μ
2
,
.
.
.
,
μ
m
)
T
,
λ
=
(
λ
1
,
λ
2
,
.
.
.
λ
n
)
T
\mu=(\mu_1,\mu_2,...,\mu_m)^T,\lambda=(\lambda_1,\lambda_2,...\lambda_n)^T
μ=(μ1,μ2,...,μm)T,λ=(λ1,λ2,...λn)T是拉格朗日乘子向量。
接下来,定义上述优化问题的拉格朗日对偶函数
Γ
(
μ
,
λ
)
\varGamma(\mu,\lambda)
Γ(μ,λ)(其自变量不含
x
{\bf x}
x)为
L
(
x
,
μ
,
λ
)
L(\bf x,\mu,\lambda)
L(x,μ,λ)关于
x
{\bf x}
x的下确界,即:
Γ
(
μ
,
λ
)
=
inf
x
∈
D
L
(
x
,
μ
,
λ
)
=
inf
x
∈
D
(
f
(
x
)
+
∑
i
=
1
m
μ
i
g
i
(
x
)
+
∑
j
=
1
n
λ
j
h
j
(
x
)
)
\varGamma(\mu,\lambda)=\inf\limits_{{\bf x }\in D}L(\bf x,\mu,\lambda)=\inf\limits_{{\bf x }\in D}\left(f({\bf x})+\sum\limits_{i=1}^{m}\mu_ig_i({\bf x})+\sum\limits_{j=1}^{n}\lambda_jh_j(x)\right)
Γ(μ,λ)=x∈DinfL(x,μ,λ)=x∈Dinf⎝
⎛f(x)+i=1∑mμigi(x)+j=1∑nλjhj(x)⎠
⎞
对偶函数
Γ
(
μ
,
λ
)
\varGamma(\mu,\lambda)
Γ(μ,λ)有以下重要性质:
- 无论上述优化问题是否为凸优化问题,其对偶函数 Γ ( μ , λ ) \varGamma(\mu,\lambda) Γ(μ,λ)恒为凹函数。(意味着取反后即为凸函数,有较好的数学性质)
- 当
μ
≥
0
\mu\ge0
μ≥0时,
Γ
(
μ
,
λ
)
\varGamma(\mu,\lambda)
Γ(μ,λ)构成上述优化问题最优解
p
∗
p^*
p∗的下界,即
Γ
(
μ
,
λ
)
≤
p
∗
\varGamma(\mu,\lambda)\le p^*
Γ(μ,λ)≤p∗。
继而,定义满足 μ ≥ 0 \mu\ge0 μ≥0这个约束条件下求对偶函数最大值的优化问题为拉格朗日对偶问题(原问题称为主问题): m a x Γ ( μ , λ ) s . t . μ ≥ 0 \begin{aligned}max \quad &\varGamma(\mu,\lambda) \\ s.t. \quad &\mu\ge0\end{aligned} maxs.t.Γ(μ,λ)μ≥0
该优化问题最优值为 d ∗ d^* d∗,显然 d ∗ ≤ p ∗ d^*\le p^* d∗≤p∗,此时称为“弱对偶性”成立;若 d ∗ = p ∗ d^*=p^* d∗=p∗,则称为“强对偶性”成立。所以为了求解 p ∗ p^* p∗,,通过求其对偶问题的 d ∗ d^* d∗来曲线救国。
最后,设 f ( x ) , g i ( x ) , h j ( x ) f({\bf x}),g_i({\bf x}),h_j({\bf x}) f(x),gi(x),hj(x)一阶偏导连续, x ∗ , ( μ ∗ , λ ∗ ) \bf x^*,(\mu^*,\lambda^*) x∗,(μ∗,λ∗)分别为主问题和对偶问题的最优解,若强对偶性成立,则 x ∗ , μ ∗ , λ ∗ \bf x^*,\mu^*,\lambda^* x∗,μ∗,λ∗一定满足下列5个条件,也称KKT条件: { ▽ x L ( x ∗ , μ ∗ , λ ∗ ) = ▽ f ( x ∗ ) + ∑ i = 1 m μ i ∗ ▽ g i ( x ∗ ) + ∑ j = 1 n λ j ∗ ▽ h j ( x ∗ ) = 0 h j ( x ∗ ) = 0 g i ( x ∗ ) ≤ 0 μ i ∗ ≥ 0 μ i ∗ g i ( x ∗ ) = 0 \begin{equation}\begin{cases} \bigtriangledown_xL(\bf x^*,\mu^*,\lambda^*)=\bigtriangledown f({\bf x^*})+\sum\limits_{i=1}^{m}\mu_i^*\bigtriangledown g_i({\bf x}^*)+\sum\limits_{j=1}^{n}\lambda_j^*\bigtriangledown h_j({\bf x^*})=0 \\ h_j({\bf x^*})=0 \\ g_i({\bf x^*})\le0 \\ \mu_i^*\ge0 \\ \mu_i^*g_i({\bf x^*})=0 \end{cases}\nonumber\end{equation} ⎩ ⎨ ⎧▽xL(x∗,μ∗,λ∗)=▽f(x∗)+i=1∑mμi∗▽gi(x∗)+j=1∑nλj∗▽hj(x∗)=0hj(x∗)=0gi(x∗)≤0μi∗≥0μi∗gi(x∗)=0
2、支持向量机
2.1 模型
给定线性可分数据集
X
X
X,支持向量机模型希望求得数据集
X
X
X关于超平面的几何间隔
γ
\gamma
γ达到最大的那个超平面,然后接上一个sign函数实现分类功能
y
=
s
i
g
n
(
w
T
x
+
b
)
=
{
1
w
T
x
+
b
>
0
−
1
w
T
x
+
b
>
0
\begin{equation}y=sign({\bf w^Tx}+b)=\begin{cases}1\quad &{\bf w^Tx}+b>0\\-1 \quad &{\bf w^Tx}+b>0\end{cases}\nonumber\end{equation}
y=sign(wTx+b)={1−1wTx+b>0wTx+b>0
因此支持向量机的本质和感知机一样,仍然是在求一个超平面。那么几何间隔最大的超平面一定是我们想找到的那个“距离正负样本都最远的超平面”吗?是的,原因如下:
- 当超平面错误划分样本时,几何间隔最小的为误分类点, γ < 0 \gamma<0 γ<0。
- 当超平面正确划分样本时, γ ≥ 0 \gamma\ge0 γ≥0,且该超平面越靠近正负样本中央 γ \gamma γ越大。
2.2 策略
给定线性可分数据集
X
X
X,设
X
X
X中几何间隔最小的样本为
(
x
m
i
n
,
y
m
i
n
)
({\bf x}_{min},y_{min})
(xmin,ymin),则支持向量机寻找超平面的过程可转化为以下带约束条件的优化问题:
m
a
x
γ
s
.
t
.
γ
i
≥
γ
,
i
=
1
,
2
,
.
.
.
,
m
\begin{aligned}&max\quad\gamma\\&s.t.\quad \gamma_i\ge\gamma,\quad i=1,2,...,m\end{aligned}
maxγs.t.γi≥γ,i=1,2,...,m
即:
m
a
x
y
m
i
n
(
w
T
x
m
i
n
+
b
)
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
y
m
i
n
(
w
T
x
m
i
n
+
b
)
,
i
=
1
,
2
,
.
.
.
,
m
\begin{aligned}&max\quad\frac{y_{min}({\bf w^Tx_{min}}+b)}{||{\bf w}||}\\&s.t.\quad{y_i({\bf w^Tx_i}+b)}\ge{y_{min}({\bf w^Tx_{min}}+b)},\quad i=1,2,...,m\end{aligned}
max∣∣w∣∣ymin(wTxmin+b)s.t.yi(wTxi+b)≥ymin(wTxmin+b),i=1,2,...,m
设该问题最优解为
(
w
∗
,
b
∗
)
({\bf w^*},b^*)
(w∗,b∗),则
(
α
w
∗
,
α
b
∗
)
,
α
∈
R
+
(\alpha{\bf w^*},\alpha b^*),\alpha\in\mathbb R^+
(αw∗,αb∗),α∈R+也是最优解而超平面保持不变。所以需要对
w
,
b
{\bf w},b
w,b做一定限制才能使得上述优化问题有可解的唯一解。而这里不妨令
y
m
i
n
(
w
T
x
m
i
n
+
b
)
=
1
{y_{min}({\bf w^Tx_{min}}+b)}=1
ymin(wTxmin+b)=1,因为对于特定的
(
x
m
i
n
,
y
m
i
n
)
({\bf x}_{min},y_{min})
(xmin,ymin)来说,能使得
y
m
i
n
(
w
T
x
m
i
n
+
b
)
=
1
{y_{min}({\bf w^Tx_{min}}+b)}=1
ymin(wTxmin+b)=1的
α
\alpha
α有且仅有一个,所以上述优化问题进一步转化为:
m
a
x
1
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
\begin{aligned}&max\quad\frac{1}{||{\bf w}||}\\&s.t.\quad {y_i({\bf w^Tx_i}+b)}\ge1,\quad i=1,2,...,m\end{aligned}
max∣∣w∣∣1s.t.yi(wTxi+b)≥1,i=1,2,...,m
根据解一般优化问题的习惯,方便讨论与计算,将上面的式子进一步转化:
m
i
n
1
2
∣
∣
w
∣
∣
2
s
.
t
.
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
.
.
.
,
m
\begin{aligned}&min\quad\frac{1}{2}{||{\bf w}||}^2\\&s.t.\quad 1-{y_i({\bf w^Tx_i}+b)}\le0,\quad i=1,2,...,m\end{aligned}
min21∣∣w∣∣2s.t.1−yi(wTxi+b)≤0,i=1,2,...,m
如此,此优化问题是含不等式约束的优化问题,且可证明是凸优化问题。
2.3 求解算法
这里采用拉格朗日对偶来求解支持向量机问题。主问题:
m
i
n
1
2
∣
∣
w
∣
∣
2
s
.
t
.
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
.
.
.
,
m
\begin{aligned}&min\quad\frac{1}{2}{||{\bf w}||}^2\\&s.t.\quad 1-{y_i({\bf w^Tx_i}+b)}\le0,\quad i=1,2,...,m\end{aligned}
min21∣∣w∣∣2s.t.1−yi(wTxi+b)≤0,i=1,2,...,m
其拉格朗日对偶函数:
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
−
∑
i
=
1
m
α
i
y
i
w
T
x
i
−
b
∑
i
=
1
m
α
i
y
i
\begin{aligned}L(w,b,\alpha)&=\frac{1}{2}{||{\bf w}||}^2+\sum\limits_{i=1}^{m}\alpha_i(1-{y_i({\bf w^Tx_i}+b)})\\ &=\frac{1}{2}{||{\bf w}||}^2+\sum\limits_{i=1}^{m}\alpha_i-\sum\limits_{i=1}^{m}\alpha_iy_i{\bf w^Tx_i}-b\sum\limits_{i=1}^{m}\alpha_iy_i\end{aligned}
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))=21∣∣w∣∣2+i=1∑mαi−i=1∑mαiyiwTxi−bi=1∑mαiyi
若将
w
,
b
w,b
w,b合并为
w
^
=
(
w
;
b
)
{\hat w}=(w;b)
w^=(w;b),显然上式时关于
w
^
{\hat w}
w^的凸函数,求其一阶导令其等于0然后待会即可得到最小值,也即拉格朗日对偶函数。
再根据强对偶性成立推的最优解必须满足如下KKT条件:
α
i
≥
0
y
i
f
(
x
i
)
−
1
≥
0
α
i
(
y
i
f
(
x
i
)
−
1
)
=
0
\begin{aligned} \alpha_i\ge0 \\ y_if({\bf x_i})-1\ge0 \\ \alpha_i(y_if({\bf x_i})-1)=0 \end{aligned}
αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0
碎念几句:为何支持向量机通常采用拉格朗日对偶求解?
- 无论主问题是何种优化问题,对偶问题恒为凸优化问题,因此更容易求解。
- 支持向量机的优化问题的原始问题的时间复杂度和特征维数呈正比(因为未知量 w w w的大小与特征维数相同),而对偶问题是与数据量成正比(因为未知量是 α \alpha α)。所以,当特征维数远高于数据量的时候,拉格朗日对偶更高效。
- 对偶问题能很自然地引入核函数,进而推广到非线性分类问题。(主要原因)
3、软间隔与硬间隔
在实际的任务中,线性不可分的情形才是最常见的,因此可以考虑允许支持向量机犯错。从数学角度看,软间隔就是允许部分样本(但尽可能少)不满足优化问题式子中的约束条件
y
i
(
w
T
x
i
+
b
)
≥
1
{y_i({\bf w^Tx_i}+b)}\ge1
yi(wTxi+b)≥1。因此,可以将必须严格执行的约束条件转化为具有一定灵活性的“损失”——当满足约束条件时,损失为0;当不满足约束条件时,给予一定损失。
因此,上面推导的优化式子可改写为以下:
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ℓ
0
/
1
(
y
i
(
w
T
x
i
+
b
)
−
1
)
\mathop{min}\limits_{{\bf w},b}\quad\frac{1}{2}{||{\bf w}||}^2+C\sum\limits_{i=1}^{m}\ell_{0/1}(y_i({\bf w^Tx_i}+b)-1)
w,bmin21∣∣w∣∣2+Ci=1∑mℓ0/1(yi(wTxi+b)−1)
其中
ℓ
0
/
1
\ell_{0/1}
ℓ0/1是 “0/1损失函数” :
ℓ
0
/
1
=
{
1
,
i
f
z
<
0
0
,
i
f
z
≥
0
\begin{aligned}\ell_{0/1}=\begin{cases}1,\quad if \quad z<0 \\ 0, \quad if\quad z\ge0\end{cases}\end{aligned}
ℓ0/1={1,ifz<00,ifz≥0
C
C
C是一个大于0的常数,用来调节损失的权重。当
C
⟶
+
∞
C\longrightarrow +\infty
C⟶+∞时,会迫使所有样本的损失为0,进而退化为严格执行的约束条件,即退化为硬间隔。所以,上式也可以视为支持向量机的一般形式。