支持向量机SVM是一种二分类模型。
支持向量机的学习策略就是间隔最大化,可形式化为求解一个凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。
函数间隔与几何间隔
一个点距离分离超平面
w
∗
x
+
b
=
0
w*x+b=0
w∗x+b=0的远近|wx+b|可以表示分类预测{+1,-1}的确信程度。而wx+b的符号与类别标记y的符号是否一致能够表示分类是否正确。所以可用量y(w*x+b)来表示分类的正确性即确信度,这就是函数间隔。
定义:对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的函数间隔为
γ
^
i
=
y
i
(
w
∗
x
i
+
b
)
\hat \gamma_i=y_i(w*x_i+b)
γ^i=yi(w∗xi+b)
定于超平面关于训练数据集的函数间隔为超平面关于T中所有样本点的函数间隔的最小值,即
γ
^
=
m
i
n
i
=
1
,
…
,
N
γ
^
i
\hat \gamma = min_{i=1,\dots,N}\hat \gamma_i
γ^=mini=1,…,Nγ^i
函数间隔可以表示分类预测的正确性及确信度。但是成比例的改变w和b,超平面不变,但是函数间隔却会成比例的改变。所以要对超平面的法向量加以约束,如规范化,||w||=1,使得间隔是确定的。这时函数间隔成为几何间隔。
定义:
γ
^
i
=
y
i
(
w
∣
∣
w
∣
∣
∗
x
i
+
b
∣
∣
w
∣
∣
)
\hat \gamma_i=y_i(\frac{w}{||w||}*x_i+\frac{b}{||w||})
γ^i=yi(∣∣w∣∣w∗xi+∣∣w∣∣b),其中||w||为w的
L
2
L_2
L2范数。
γ
=
m
i
n
i
=
1
,
…
,
N
γ
i
\gamma = min_{i=1,\dots,N}\gamma_i
γ=mini=1,…,Nγi
如果||w||=1,这函数间隔和几何间隔相等。如果超平面参数w和b成比例的改变(超平面没有改变),函数间隔也按此比例改变,而几何间隔不变。几何间隔最大的分离超平面是惟一的。(不同于感知机,线性可分离的超平面,有多个解)
间隔最大化
算法:线性可分支持向量机学习算法——最大间隔法
输入:线性可分训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
N
,
y
N
)
}
,
其
中
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
{
−
1
,
+
1
}
,
i
=
1
,
2
,
…
,
N
T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\},其中x_i\in X=R^n,y_i\in Y=\{-1,+1\},i=1,2,\dots,N
T={(x1,y1),(x2,y2),…,(xN,yN)},其中xi∈X=Rn,yi∈Y={−1,+1},i=1,2,…,N
输出:最大间隔分离超平面和分类决策函数
(1)构造并求解约束最优化问题:
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
min_{w,b}\quad\frac{1}{2}||w||^2
minw,b21∣∣w∣∣2
s
.
t
.
y
i
(
w
∗
x
i
+
b
)
−
1
≥
0
,
i
=
1
,
2
,
…
,
N
s.t.\quad y_i(w*x_i+b)-1\geq0,i=1,2,\dots,N
s.t.yi(w∗xi+b)−1≥0,i=1,2,…,N
求解得最优解
w
∗
,
b
∗
w^*,b^*
w∗,b∗
(2)由此得分离超平面:
w
∗
∗
x
+
b
∗
=
0
w^**x+b^*=0
w∗∗x+b∗=0
分类决策函数
f
(
x
)
=
s
i
g
n
(
w
∗
∗
x
+
b
)
f(x)=sign(w^**x+b)
f(x)=sign(w∗∗x+b)
对偶问题
首先构造拉格朗日函数,引进拉格朗日乘子
α
i
≥
0
,
i
=
1
,
2
,
…
,
N
\alpha_i\geq0,i=1,2,\dots,N
αi≥0,i=1,2,…,N,定义拉格朗日函数
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
N
α
i
y
i
(
w
∗
x
i
+
b
)
+
∑
i
=
1
N
α
i
L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^N\alpha_iy_i(w*x_i+b)+\sum_{i=1}^N\alpha_i
L(w,b,α)=21∣∣w∣∣2−∑i=1Nαiyi(w∗xi+b)+∑i=1Nαi
其中
α
=
(
α
1
,
α
2
,
…
,
α
N
)
T
\alpha=(\alpha_1,\alpha_2,\dots,\alpha_N)^T
α=(α1,α2,…,αN)T为拉格朗日乘子向量。
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题
m
a
x
α
m
i
n
w
,
b
L
(
w
,
b
,
α
)
max_\alpha min_{w,b}L(w,b,\alpha)
maxαminw,bL(w,b,α)
算法:线性可分支持向量机学习算法
输入:线性可分训练集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
N
,
y
N
)
}
,
其
中
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
{
−
1
,
+
1
}
,
i
=
1
,
2
,
…
,
N
T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\},其中x_i\in X=R^n,y_i\in Y=\{-1,+1\},i=1,2,\dots,N
T={(x1,y1),(x2,y2),…,(xN,yN)},其中xi∈X=Rn,yi∈Y={−1,+1},i=1,2,…,N
输出:分离超平面和分类决策函数
(1)构造并求解约束最优化问题
m
i
n
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
∗
x
j
)
−
∑
i
=
1
N
α
i
min_\alpha\quad\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i*x_j)-\sum_{i=1}^N\alpha_i
minα21∑i=1N∑j=1Nαiαjyiyj(xi∗xj)−∑i=1Nαi
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
s.t.\quad\sum_{i=1}^N\alpha_iy_i=0
s.t.∑i=1Nαiyi=0
α
i
≥
0
,
i
=
1
,
2
,
…
,
N
\alpha_i\geq0,i=1,2,\dots,N
αi≥0,i=1,2,…,N
求得最优解
α
∗
=
(
α
1
∗
,
α
2
∗
,
…
,
α
N
∗
)
T
\alpha^*=(\alpha_1^*,\alpha_2^*,\dots,\alpha_N^*)^T
α∗=(α1∗,α2∗,…,αN∗)T
(2)计算
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^*=\sum_{i=1}^N\alpha_i^*y_ix_i
w∗=∑i=1Nαi∗yixi
并选择
α
∗
\alpha^*
α∗的一个正分量
α
j
∗
>
0
\alpha_j^*>0
αj∗>0,计算
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
x
i
∗
x
j
)
b^*=y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i*x_j)
b∗=yj−∑i=1Nαi∗yi(xi∗xj)
(3)求得分离超平面
w
∗
∗
x
+
b
∗
=
0
w^**x+b^*=0
w∗∗x+b∗=0
分类决策函数:
f
(
x
)
=
s
i
g
n
(
w
∗
∗
x
+
b
∗
)
f(x)=sign(w^**x+b^*)
f(x)=sign(w∗∗x+b∗)
w
∗
,
b
∗
w^*,b^*
w∗,b∗只以来与训练数据中对应于
α
i
∗
>
0
\alpha_i^*>0
αi∗>0的样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),而其他样本点对
w
∗
,
b
∗
w^*,b^*
w∗,b∗没有影响。训练数据中对应于
α
i
∗
>
0
\alpha_i^*>0
αi∗>0的实例点
x
i
∈
R
n
x_i\in R^n
xi∈Rn称为支持向量。支持向量一定在间隔边界上。
线性支持向量机与软间隔最大化
对于线性不可分的数据,引入一个松弛变量,凸二次规划问题(原始问题)。
m
i
n
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
min_{w,b,\xi}\quad\frac{1}{2}||w||^2 + C\sum_{i=1}^N\xi_i
minw,b,ξ21∣∣w∣∣2+C∑i=1Nξi
s
.
t
.
y
i
(
w
∗
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
…
,
N
s.t. \quad y_i(w*x_i+b)\geq1-\xi_i,i=1,2,\dots,N
s.t.yi(w∗xi+b)≥1−ξi,i=1,2,…,N
ξ
i
≥
0
,
i
=
,
2
,
…
,
N
\quad\quad\xi_i\geq0,i=,2,\dots,N
ξi≥0,i=,2,…,N
w的解释唯一的,但是b的解不是唯一的,而是存在一个区间。
解为
w
∗
,
b
∗
w*,b^*
w∗,b∗,分离超平面为
w
∗
∗
x
+
b
∗
=
0
w^**x+b^*=0
w∗∗x+b∗=0,分类决策函数
f
(
x
)
=
s
i
g
n
(
w
∗
∗
x
+
b
∗
)
f(x)=sign(w^**x+b^*)
f(x)=sign(w∗∗x+b∗)
对偶问题
m
i
n
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
∗
x
j
)
−
∑
i
=
1
N
α
i
min_\alpha\quad\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i*x_j)-\sum_{i=1}^N\alpha_i
minα21∑i=1N∑j=1Nαiαjyiyj(xi∗xj)−∑i=1Nαi
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
s.t.\quad\sum_{i=1}^N\alpha_iy_i=0
s.t.∑i=1Nαiyi=0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
…
,
N
0\leq\alpha_i\leq C,i=1,2,\dots,N
0≤αi≤C,i=1,2,…,N
构造拉格朗日函数求解(极大极小问题)
算法:线性支持向量机学习算法
输入:训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
N
,
y
N
)
}
,
其
中
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
{
−
1
,
+
1
}
,
i
=
1
,
2
,
…
,
N
T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\},其中x_i\in X=R^n,y_i\in Y=\{-1,+1\},i=1,2,\dots,N
T={(x1,y1),(x2,y2),…,(xN,yN)},其中xi∈X=Rn,yi∈Y={−1,+1},i=1,2,…,N
输出:分离超平面和分类决策函数
(1)选择乘法参数
C
>
0
C>0
C>0,构造并求解凸二次规划问题。
m
i
n
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
∗
x
j
)
−
∑
i
=
1
N
α
i
min_\alpha\quad\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i*x_j)-\sum_{i=1}^N\alpha_i
minα21∑i=1N∑j=1Nαiαjyiyj(xi∗xj)−∑i=1Nαi
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
s.t.\quad\sum_{i=1}^N\alpha_iy_i=0
s.t.∑i=1Nαiyi=0
0
≤
α
i
≤
0
,
i
=
1
,
2
,
…
,
N
\quad\quad0\leq\alpha_i\leq0,i=1,2,\dots,N
0≤αi≤0,i=1,2,…,N
求得最优解
α
∗
=
(
α
1
∗
,
α
2
∗
,
…
,
α
N
∗
)
T
\alpha^*=(\alpha_1^*,\alpha_2^*,\dots,\alpha_N^*)^T
α∗=(α1∗,α2∗,…,αN∗)T
(2)计算
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^*=\sum_{i=1}^N\alpha_i^*y_ix_i
w∗=∑i=1Nαi∗yixi
选择
α
∗
\alpha^*
α∗的一个分量
α
j
∗
\alpha_j^*
αj∗适合条件
0
<
α
j
∗
<
C
0<\alpha_j^*<C
0<αj∗<C,计算
b
∗
=
y
j
−
∑
i
=
1
N
y
i
α
i
∗
(
x
i
∗
x
j
)
b^*=y_j-\sum_{i=1}^Ny_i\alpha_i^*(x_i*x_j)
b∗=yj−∑i=1Nyiαi∗(xi∗xj)
(3)求得分离超平面
w
∗
∗
x
+
b
∗
=
0
w^**x+b^*=0
w∗∗x+b∗=0
分类决策函数
f
(
x
)
=
s
i
g
n
(
w
∗
∗
x
+
b
∗
)
f(x)=sign(w^**x+b^*)
f(x)=sign(w∗∗x+b∗)
支持向量
软间隔的支持向量 x i x_i xi或者在间隔边界上,或者在间隔辩解与分离超平面之间,或者在分离超平面误分一侧。
合页损失函数
最小化以下目标函数
∑
i
=
1
N
[
1
−
y
i
(
w
∗
x
i
+
b
]
+
+
λ
∣
∣
w
∣
∣
2
\sum_{i=1}^N[1-y_i(w*x_i+b]_++\lambda||w||^2
∑i=1N[1−yi(w∗xi+b]++λ∣∣w∣∣2
目标函数的第一项是经验风险或者经验损失。
L
(
y
(
w
∗
x
+
b
)
)
=
[
1
−
y
(
w
∗
x
+
b
)
]
+
L(y(w*x+b))=[1-y(w*x+b)]_+
L(y(w∗x+b))=[1−y(w∗x+b)]+称为合页损失函数。下标‘+’表示以下取正值的函数
[
z
]
+
=
{
z
,
z
>
0
0
,
z
≤
0
[z]_+=\left\{ \begin{aligned} z,\quad z>0 \\ 0,\quad z\leq0 \end{aligned} \right.
[z]+={z,z>00,z≤0
也就是说,当样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)被正确分类且函数间隔(确信度)
y
i
(
w
∗
x
i
+
b
)
y_i(w*x_i+b)
yi(w∗xi+b)大于1时,损失是0.否则损失是
1
−
y
i
(
w
∗
x
i
+
b
)
1-y_i(w*x_i+b)
1−yi(w∗xi+b)
则线性支持向量机原始最优化问题等价于最优化问题
m
i
n
w
,
b
∑
i
=
1
N
[
1
−
y
i
(
w
∗
x
i
+
b
)
]
+
+
λ
∣
∣
w
∣
∣
2
min_{w,b}\quad \sum_{i=1}^N[1-y_i(w*x_i+b)]_++\lambda||w||^2
minw,bi=1∑N[1−yi(w∗xi+b)]++λ∣∣w∣∣2