对于上图中的红叉和蓝圈,如果我们进行二分类,找到他的分类边界,那么有许多中可能(绿色,粉色,黑色)。但是,绿色和粉色的分类超平面,对于未知样本的预测效果会比黑色的差。支持向量机,就是去找到这样一个分类超平面,使得样本点到这个平面的距离最大。
数学模型
判别模型
f
(
x
)
=
w
T
x
+
b
f(x)=w^Tx+b
f(x)=wTx+b,把b当成w的一部分则
f
(
x
)
=
w
T
x
f(x)=w^Tx
f(x)=wTx,对于最大间隔,要满足以下式子:
m
a
x
m
a
r
g
i
n
(
w
,
b
)
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
0
max \space margin(w, b)\\s.t. y_i(w^Tx_i+b)>0
max margin(w,b)s.t.yi(wTxi+b)>0
m
a
r
g
i
n
(
w
,
b
)
=
min
w
,
b
,
x
i
d
i
s
t
a
n
c
e
(
w
,
b
,
x
i
)
min
w
,
b
,
x
i
∣
w
T
x
i
+
b
∣
∣
∣
w
∣
∣
(
1
)
margin(w,b)=\min_{w,b,x_i}~distance(w,b,x_i) \\ \min_{w,b,x_i}\frac{|w^Tx_i+b|}{||w||}~~~~~(1)
margin(w,b)=w,b,ximin distance(w,b,xi)w,b,ximin∣∣w∣∣∣wTxi+b∣ (1)
(1)式为点到直线的距离
对于分类问题:
w T x + b > 0 y = 1 w T x + b < = 0 y = − 1 w^Tx+b>0~~~y=1 \\ w^Tx+b<=0~~~y=-1 wTx+b>0 y=1wTx+b<=0 y=−1
因此
∣
w
T
x
i
+
b
∣
|w^Tx_i+b|
∣wTxi+b∣可以转换成
y
i
(
w
T
x
i
+
b
)
y_i(w^Tx_i+b)
yi(wTxi+b),
max
w
,
b
min
x
i
∣
w
T
x
i
+
b
∣
∣
∣
w
∣
∣
=
max
w
,
b
1
∣
∣
w
∣
∣
min
x
i
y
(
w
T
x
i
+
b
)
s
.
t
.
y
(
w
T
x
i
+
b
)
>
0
\max_{w,b}\min_{x_i} \frac{|w^Tx_i+b|}{||w||} = \max_{w,b}\frac{1}{||w||}\min_{x_i} y(w^Tx_i+b) \\ s.t.y(w^Tx_i+b)>0
w,bmaxximin∣∣w∣∣∣wTxi+b∣=w,bmax∣∣w∣∣1ximiny(wTxi+b)s.t.y(wTxi+b)>0
对于
min
x
i
y
(
w
T
x
i
+
b
)
\min_{x_i} y(w^Tx_i+b)
minxiy(wTxi+b),一定存在一个R 使得
min
x
y
(
w
T
x
+
b
)
=
R
\min_{x} y(w^Tx+b)=R
minxy(wTx+b)=R
对于R可以进行缩放,比如x=1和2x=2其实表达是一样的,因此这里就直接假设R=1,
min
x
y
(
w
T
x
+
b
)
=
R
\min_{x} y(w^Tx+b)=R
minxy(wTx+b)=R等价于
y
(
w
T
x
+
b
)
>
=
R
y(w^Tx+b)>=R
y(wTx+b)>=R
则上式为:
max
w
,
b
1
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
=
1
\max_{w,b}\frac{1}{||w||} \\ s.t.y_i(w^Tx_i+b)>=1
w,bmax∣∣w∣∣1s.t.yi(wTxi+b)>=1
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
=
1
(
2
)
\min_{w,b}\frac{1}{2}||w||^2 \\ s.t.y_i(w^Tx_i+b)>=1~~~(2)
w,bmin21∣∣w∣∣2s.t.yi(wTxi+b)>=1 (2)
对maxmin的解释:
min是求样本中离直线最近的点,这些点可以理解为支持向量
max使得这些最近的点到分类超平面的距离最大
对偶问题
对于上面的式子,是一个
凸二次规划问题,可以直接用相应的方法求解,但是遇到维度较高的情况时,就不能直接用二次规划的方法做,因此这里引入他的对偶问题。
拉格朗日乘子法
对于上式改写为:
L
(
w
,
b
,
λ
)
=
1
2
w
T
w
+
∑
i
=
1
N
λ
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
s
.
t
.
λ
i
>
=
0
L(w,b,\lambda)=\frac{1}{2}w^Tw+\sum_{i=1}^N{\lambda_i(1-y_i(w^Tx_i+b))} \\ s.t.\lambda_i>=0
L(w,b,λ)=21wTw+i=1∑Nλi(1−yi(wTxi+b))s.t.λi>=0
min
w
,
b
max
λ
L
s
.
t
.
λ
i
>
=
0
\min_{w,b}\max_{\lambda}L \\ s.t.\lambda_i>=0
w,bminλmaxLs.t.λi>=0
拉格朗日乘子法中:
L
(
w
,
b
,
λ
)
=
h
(
x
)
+
∑
i
=
1
N
λ
i
g
(
x
)
L(w,b,\lambda)=h(x)+\sum_{i=1}^N{\lambda_i g(x)}
L(w,b,λ)=h(x)+∑i=1Nλig(x)
λ
\lambda
λ大于等于0,g(x)小于等于0
对偶关系:minmax <= maxmin即最大值中的最小值肯定大于等于最小值中的最大值。而对于凸二次规划问题,满足强对偶关系,即minmax=maxmin
所以原式可以转换为
max
λ
min
w
,
b
L
s
.
t
.
λ
>
=
0
\max_{\lambda}\min_{w,b}L \\ s.t.\lambda>=0
λmaxw,bminLs.t.λ>=0
对于min是不受lambda约束的,所以可以直接求解。求出L关于w,b的偏导数,然后带入L得到
max
λ
P
λ
>
=
0
\max_{\lambda}P \\ \lambda >= 0
λmaxPλ>=0
P的表达式:
对w求偏导:
w
∗
=
w
−
∑
i
=
1
N
λ
i
y
i
x
i
w^*=w - \sum_{i=1}^N{\lambda_iy_ix_i}
w∗=w−∑i=1Nλiyixi,对b求偏导
b
∗
=
∑
i
=
1
N
λ
i
y
i
b^*=\sum_{i=1}^N{\lambda_iy_i}
b∗=∑i=1Nλiyi
偏导为0时函数有最小值
w
−
∑
i
=
1
N
λ
i
y
i
x
i
=
0
w - \sum_{i=1}^N{\lambda_iy_ix_i}=0
w−∑i=1Nλiyixi=0,
∑
i
=
1
N
λ
i
y
i
=
0
\sum_{i=1}^N{\lambda_iy_i}=0
∑i=1Nλiyi=0
由上式可得
w
=
∑
i
=
1
N
λ
i
y
i
x
i
w=\sum_{i=1}^N{\lambda_iy_ix_i}
w=∑i=1Nλiyixi
P
=
min
λ
∑
i
=
1
N
∑
j
=
1
N
λ
i
λ
j
y
i
y
j
x
i
T
x
j
−
∑
i
N
λ
i
s
.
t
.
λ
>
=
0
∑
i
=
1
N
λ
i
y
i
=
0
P=\min_{\lambda}\sum_{i=1}^N{\sum_{j=1}^N{\lambda_i\lambda_jy_iy_jx_i^Tx_j}}-\sum_{i}^N{\lambda_i} \\ s.t.\lambda>=0 \\ \sum_{i=1}^N{\lambda_iy_i}=0
P=λmini=1∑Nj=1∑NλiλjyiyjxiTxj−i∑Nλis.t.λ>=0i=1∑Nλiyi=0
对于凸二次规划问题,前面提到他一定是满足强对偶关系的,而他的充要条件就是满足KKT条件。
KKT条件:
f
(
x
)
=
{
λ
>
=
0
1
−
y
(
w
T
x
+
b
)
<
=
0
λ
(
1
−
y
(
w
T
x
+
b
)
)
=
0
w
∗
,
b
∗
,
λ
∗
=
0
f(x)=\left\{ \begin{aligned} \lambda&>=&0 \\ 1-y(w^Tx+b)&<=&0\\ \lambda(1-y(w^Tx+b))&=&0 \\ w^*,b^*,\lambda^*&=&0 \end{aligned} \right.
f(x)=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧λ1−y(wTx+b)λ(1−y(wTx+b))w∗,b∗,λ∗>=<===0000
w
∗
,
b
∗
,
λ
∗
w^*,b^*,\lambda^*
w∗,b∗,λ∗是导数,直观上理解,对于L,想要得到最大值就得后半部分为0,最大值为
1
2
w
T
w
\frac{1}{2}w^Tw
21wTw。而后半部分为0,那就是
λ
\lambda
λ为0或者
1
−
y
(
w
T
x
+
b
)
1-y(w^Tx+b)
1−y(wTx+b)为0。
对于在黄色和橙色线上的点
1
−
y
(
w
T
x
+
b
)
1-y(w^Tx+b)
1−y(wTx+b)为0,而在两条线以外的点则
1
−
y
(
w
T
x
+
b
)
<
0
1-y(w^Tx+b)<0
1−y(wTx+b)<0因此此时
λ
=
0
\lambda=0
λ=0
w
∗
=
∑
i
=
1
N
λ
i
y
i
x
i
w^*=\sum_{i=1}^N{\lambda_iy_ix_i}
w∗=∑i=1Nλiyixi
一定存在一个
(
x
k
,
y
k
)
(x_k,y_k)
(xk,yk)使得
w
T
x
k
+
b
=
y
k
w^Tx_k+b=y_k
wTxk+b=yk,即在两条彩色线上。
b
∗
=
y
k
−
w
T
x
k
=
y
k
−
∑
i
=
1
N
y
i
x
i
T
x
k
b^*=y_k-w^Tx_k=y_k-\sum_{i=1}^N{y_ix_i^Tx_k}
b∗=yk−wTxk=yk−∑i=1NyixiTxk
分类超平面为
w
∗
T
x
+
b
∗
w^{*T}x+b^*
w∗Tx+b∗
以上是hard margin的情况,也就是假设样本在理想情况下是完全可以被分开的,没有噪声的,下面总结一下soft margin的知识
soft margin
字面上理解就是相对hard,soft的条件没有这么苛刻,允许一点点错误。
所谓的一点点错误,用loss来表示,我们可以用01损失来表达,即loss表示违反条件(超过红色线)的个数
∑
i
=
1
N
I
{
y
i
(
w
T
x
i
+
b
)
<
1
}
\sum_{i=1}^N{I\{y_i(w^Tx_i+b)<1\}}
∑i=1NI{yi(wTxi+b)<1},I表示个数
但是01loss是不连续的,求导不好弄,因此对其进行改进。
改进后
采用hinge loss 在满足条件的时候(
y
i
(
w
T
x
i
+
b
)
>
=
1
y_i(w^Tx_i+b)>=1
yi(wTxi+b)>=1)就为0,不满足的时候就等于
1
−
y
i
(
w
T
x
i
+
b
)
1- y_i(w^Tx_i+b)
1−yi(wTxi+b)
l
o
s
s
=
max
{
0
,
1
−
y
i
(
w
T
x
i
+
b
)
}
loss=\max\{0, 1-y_i(w^Tx_i+b)\}
loss=max{0,1−yi(wTxi+b)}
ξ
\xi
ξ来表示loss,可得
ξ
>
=
0
\xi>=0
ξ>=0
如上图所示,蓝色的线就是使用soft margin后的情况,允许在黄色这段区间内存在一些噪声。
式(2可以写成)
min
w
,
b
1
2
w
T
w
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
=
1
−
ξ
i
\min_{w,b}\frac{1}{2}w^Tw+C\sum_{i=1}^N{\xi_i}\\ s.t.y_i(w^Tx_i+b)>=1-\xi_i
w,bmin21wTw+Ci=1∑Nξis.t.yi(wTxi+b)>=1−ξi
C是系数
参考:https://www.bilibili.com/video/BV1Hs411w7ci?p=3
最近开通了一个公众号,里面会分享一些机器学习,深度学习,推荐系统的学习笔记和相关知识,同时也会分享一些面经,感兴趣的小伙伴可以关注一下,十分感谢,比心