间隔与支持向量
在感知机中,对于线性可分的问题,得到的超平面是不唯一的,因此支持向量机的目标是找到一个距离正负样本都最远的超平面,解是唯一的,泛化性能最好。
-
超平面
在样本空间中,超平面可通过下面的线性方程描述:
w T x + b = 0 w^Tx+b=0 wTx+b=0
超平面的特点:- 超平面方程不唯一
- 法向量和位移项 确定一个唯一超平面
- 法向量垂直于超平面(缩放时,若缩放倍数为负数会改变法向量方向)
- 法向量指向的那一半空间为正空间,另一半为负空间
- 任意点到超平面的距离公式为:
∣ w T x + b ∣ ∣ ∣ w ∣ ∣ \frac{|w^Tx+b|}{||w||} ∣∣w∣∣∣wTx+b∣
-
几何间隔
对于给定的数据集和超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0,定义在数据集中的任意一个样本点 ( x i , y i ) (x_i,y_i) (xi,yi), y i y_i yi是-1或1,关于超平面的间隔为:
γ i = y i ( w T x i + b ) ∣ ∣ w ∣ ∣ \gamma_i=\frac{y_i (w^Tx_i+b)}{||w||} γi=∣∣w∣∣yi(wTxi+b)
正确分类时 γ i > 0 \gamma_i>0 γi>0,未正确分类时 γ i < 0 \gamma_i<0 γi<0
定义数据集的间隔为: m i n γ i min\gamma_i minγi
在西瓜书中间隔为: γ = 2 ∣ ∣ w ∣ ∣ \gamma=\frac{2}{||w||} γ=∣∣w∣∣2
支持向量机
模型:给定线性可分数据集,支持向量机模型希望求得数据集关于超平面的几何间隔达到最大的那个超平面,然后套上一个sign函数实现分类功能:
策略:给定线性可分数据集,设其中几何间隔最小的样本为
(
x
m
i
n
,
y
m
i
n
)
(x_{min},y_{min})
(xmin,ymin),那么支持向量机找超平面的过程可以转化为以下带约束条件的优化问题:找到满足约束的参数w和b使得
γ
\gamma
γ最大。
令
y
m
i
n
(
w
T
x
m
i
n
+
b
)
=
1
y_{min}(w^Tx_{min} + b) = 1
ymin(wTxmin+b)=1,则只有唯一的解,转化为:
进一步变换有:
此为含不等式约束的优化问题,且为凸优化问题,可以采用拉格朗日对偶来求解。
对偶问题
对于一般的约束问题:
若目标函数
f
(
x
)
f(x)
f(x)是凸函数,约束集合是凸集,则称上述优化问题为凸优化问题,特别地,
g
i
(
x
)
g_i(x)
gi(x)是凸函数,
h
j
(
x
)
h_j(x)
hj(x)是线性函数时约束集合为凸集,该问题为凸优化问题。
如果不是凸优化问题时:
定义上述优化问题的拉格朗日对偶函数 (注意其自变量不包含 x)为L(x, μ,λ)关于x 的下确界,也即
对偶函数恒为凹函数
当
μ
>
=
0
\mu>=0
μ>=0时, 构成了上述优化问题最优值 的下界,也即
Γ
(
μ
,
λ
)
<
=
p
∗
\Gamma(\mu,\lambda)<=p^*
Γ(μ,λ)<=p∗
主问题与对偶问题
定义在满足
μ
>
=
0
\mu>=0
μ>=0这个约束条件下对偶函数最大值的优化问题为拉格朗日对偶问题,原问题为主问题。
设该优化问题的最优值为
d
∗
d^*
d∗,显然
d
∗
<
=
p
∗
d^*<=p^*
d∗<=p∗,此时称为弱对偶性成立,若
d
∗
=
p
∗
d^*=p^*
d∗=p∗则称为强对偶性成立。然后就可以求
p
∗
p^*
p∗:
- 当主问题满足某些充分条件时,强对偶性成立。常见的充分条件有Slater条件:“若主问题是凸优化问题,且可行集中存在一点能使得所有不等式约束的不等号成立,则强对偶性成立”,显然支持向量机满足该条件。
- 对偶问题都可以加一个负号变成凸优化问题,约束条件 μ > = 0 \mu>=0 μ>=0恒为凸集。
KKT条件
设
f
(
x
)
,
g
i
(
x
)
,
h
j
(
x
)
f(x),g_i(x),h_j(x)
f(x),gi(x),hj(x)一阶偏导连续,
x
∗
,
(
μ
∗
,
λ
∗
)
x^*,(\mu^*,\lambda^*)
x∗,(μ∗,λ∗)分别为主问题和对偶问题的最优解,则满足下面的条件:
对于支持向量机:
拉格朗日函数是关于
w
w
w的凸函数,关于b的线性函数,所以当b的系数不为0时下确界为负无穷,当b的系数为0时,下确界就由其他部分来确定,所以有:
因此在实际中调整
α
\alpha
α使
∑
α
i
y
i
=
0
\sum\alpha_iy_i=0
∑αiyi=0
解出
α
\alpha
α后,求出
w
和
b
w和b
w和b即可得到模型:
f
(
x
)
=
w
T
x
+
b
=
∑
α
i
y
i
x
i
T
x
+
b
f(x)=w^Tx+b=\sum\alpha_iy_ix_i^Tx+b
f(x)=wTx+b=∑αiyixiTx+b
最优解必须满足的kkt条件:
(求解用SMO算法,暂且不学)
核函数
先跳过
软间隔与正则化
在现实训练中,很难确定一个合适的函数使训练样本在样本空间中线性可分,因此需要容许一定的偏差,就是”软间隔“。
红色的就是不满足约束的。
数学角度
就是允许样本不满足约束条件:
可将约束条件转换成具有一定损失的条件,合格的损失函数要求有:
- 当满足约束条件时,损失为0;
- 不满足约束条件时,损失不为0;
- 不满足约束条件时,损失与其不满足约束条件的程度成正比。
满足以上条件,保证了最小化损失函数时,不满足约束条件的样本尽可能的少。
于是,优化目标可以写为:
其中,
根据C的取值可以调整损失的权重,当C为无穷大时,为硬间隔,当C为有限值时,允许满足一些不满足的约束。
由于”0/1损失函数“非凸、非连续,数学性质不好,通常用其他函数替代,三种常用的替代函数如下:
函数图像如图:
替换成hinge函数,损失函数为:
引入松弛变量 ξ i > = 0 \xi_i>=0 ξi>=0,优化问题等价为:
这就是”软间隔支持向量机“
然后,通过拉格朗日乘子法可以得到:
关于
w
、
b
、
ξ
i
w、b、\xi_i
w、b、ξi求偏导等于0得到:
w
=
∑
i
=
1
m
α
i
y
i
x
i
w=\sum_{i=1}^m\alpha_iy_ix_i
w=i=1∑mαiyixi
0
=
∑
i
=
1
m
α
i
y
i
0=\sum_{i=1}^m\alpha_iy_i
0=i=1∑mαiyi
C
=
α
i
+
μ
i
C=\alpha_i+\mu_i
C=αi+μi
把0/1损失函数换成其他损失函数时得到其他学习模型,但可以发现他们有一个共性:优化目标中的第一项用来描述划分超平面的”间隔“大小,另一项用来表述训练集上的误差,可写为一般形式:
这个式子中的第一项表述了我们希望获得具有何种性质的模型,这种式子称为“正则化问题”第一项称为正则化项,C称为正则化常数。
L
p
L_p
Lp范数常用于正则化项,其中
L
2
L_2
L2范数
∣
∣
w
∣
∣
2
||w||_2
∣∣w∣∣2倾向于w的分量取值尽量均衡,即非零分量个数尽量稠密,而
L
0
和
L
1
L_0和L_1
L0和L1范数倾向于w的分量尽可能稀疏,即非零分量个数尽量少。
支持向量回归
与传统的回归模型相比,支持向量回归(SVR)构建了一个宽度为
2
ϵ
2\epsilon
2ϵ的间隔带,若训练样本落入此间隔带,则认为是被预测正确的。
所以,支持向量回归可形式化为:
引入松弛变量
ξ
和
ξ
h
a
t
\xi和\xi^{hat}
ξ和ξhat有:
之后就是写出拉格朗日函数,得到对偶问题。