SVM概述
\rule[-0pt]{13cm}{0.05em}
⋅
\cdot
⋅支持向量机在本质上就是一个二分类模型,基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。
⋅
\cdot
⋅支持向量机还包括和技巧,这使它成为实质上的非线性分类器
⋅
\cdot
⋅支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优算法。
SVM分类
\rule[-0pt]{13cm}{0.05em}
⋅
\cdot
⋅线性可分支持向量机----硬间隔最大化
⋅
\cdot
⋅线性支持向量机====训练数据近似线性可分时,通过软间隔最大化
⋅
\cdot
⋅非线性支持向量机----当训练数据线性不可分时,通过使用核技巧及软间隔最大化
线性可分和线性不可分
\rule[-0pt]{13cm}{0.05em}
训练样本在空间中的分布可以被一条直线分开。我们把这种样本集叫做线性可分训练样本集。
我们没有办法用一条直线将训练样本分开,就叫做非线性可分训练样本集
我们把在线性可分的这个样本集上画直线的方法想办法推广到非线性可分的样本集上,就是SVM的思路
这种情况是在二维的情况下,由于我们的人眼只能感知三维,所以当特征空间维度≥4维时,我们将分开两种特征向量的平面称为超平面。
线性可分样本集
\rule[-0pt]{13cm}{0.05em}
先来看特征空间是二维的情况:
两个维度分别由
x
1
,
x
2
x_1,x_2
x1,x2表示,我们可以找出一条直线将○和×分开,进一步假设直线方程是
w
1
x
1
+
w
2
x
2
+
b
=
0
w_1x_1+w_2x_2+b=0
w1x1+w2x2+b=0我们把
w
w
w叫做x的权重,把b叫做偏置,然后将大于0和小于0的情况假设出来。
用数学严格定义训练样本和标签
假设:
\qquad
我们有N个训练样本和他们的标签
{
(
X
1
,
y
1
)
,
(
X
2
,
y
2
)
,
.
.
.
,
(
X
N
,
y
N
}
\left \{(X_1,y_1),(X_2,y_2),...,(X_N,y_N\right \}
{(X1,y1),(X2,y2),...,(XN,yN},其中
X
i
=
[
x
i
1
,
x
i
2
]
T
y
i
=
{
+
1
,
−
1
}
X_i=[x_{i1},x_{i2}]^T \\ y_i=\left \{ +1,-1\right \}
Xi=[xi1,xi2]Tyi={+1,−1}
X
i
X_i
Xi是一个向量,在二维的特征空间中有两个分量,
y
i
y_i
yi是
X
i
X_i
Xi的标签,这些规定都是人为的,可以颠倒。
用数学严格的定义线性可分
一个训练样本集{
(
X
i
,
y
i
)
,
.
.
.
,
(
X
N
,
y
N
)
(X_i,y_i),...,(X_N,y_N)
(Xi,yi),...,(XN,yN)},在i=1~N线性可分,是指存在
(
w
1
,
w
2
,
b
)
(w_1,w_2,b)
(w1,w2,b)使得对i=1_N,有:
(1)若
y
i
=
+
1
y_i=+1
yi=+1,则
w
1
X
i
1
+
w
2
X
i
2
+
b
>
0
w_1X_{i1}+w_2X_{i2}+b>0
w1Xi1+w2Xi2+b>0
(2)若
y
i
=
−
1
y_i=-1
yi=−1,则
w
1
X
i
1
+
w
2
X
i
2
+
b
<
0
w_1X_{i1}+w_2X_{i2}+b<0
w1Xi1+w2Xi2+b<0
用向量形式来定义线性可分
假设:
\qquad
X
i
=
[
x
i
1
x
i
2
]
T
w
=
[
w
1
2
2
]
T
X_i=\begin{bmatrix} x_{i1}\\ x_{i2}\end{bmatrix}^T\quad w=\begin{bmatrix} w_1\\ 2_2\end{bmatrix}^T
Xi=[xi1xi2]Tw=[w122]T
那么上面两个条件将会被简化的定义为:
(1)若
y
i
=
+
1
y_i=+1
yi=+1,则
w
T
X
i
+
b
>
0
w^TX_i+b>0
wTXi+b>0
(2)若
y
i
=
−
1
y_i=-1
yi=−1,则
w
T
X
i
+
b
<
0
w^TX_i+b<0
wTXi+b<0
如果
y
+
i
=
+
1
或
1
y+i=+1或1
y+i=+1或1
一
个
训
练
样
本
集
X
i
,
y
i
,
在
i
=
1
∼
N
一个训练样本集{X_i,y_i},在i=1\sim N
一个训练样本集Xi,yi,在i=1∼N线性可分,
是
指
存
在
(
w
,
b
)
(
向
量
w
和
常
数
b
)
使
得
对
i
=
1
∼
N
,
有
:
y
i
(
w
T
X
i
+
b
)
>
0
是指存在(w,b)(向量w和常数b)使得对i=1\sim N,有:y_i(w^TX_i+b)>0
是指存在(w,b)(向量w和常数b)使得对i=1∼N,有:yi(wTXi+b)>0
支持向量机算法
1.解决线性可分问题
2.再将线性可分问题中获得的结论推广到线性不可分问题中
针对第一个问题,如果一个数据集是线性可分的,那么将存在无数多个超平main将其分开,那么在这无数多个超平面中,哪一个最好呢?
大部分人会觉得2号线最好,但实际上我们是进行了一定的先验分布假设。
基于最优化理论
我们将这个二号线分别向两个样本方向进行平移,直到它擦到一个或多个训练样本为止。我们称被擦到的向量为支持向量,把这两条平行线(原线和移动的线)之间的距离称为间隔,我们要找的就是使平行线间隔最大的一条线。
但是使用最大化间隔这种条件不能唯一的确定一条直线,任何平行于这个2号线同时也能分开两类的直线间隔相同。所以我们还要定义,这条线应该在上下两个平行线的中间。
支持向量机寻找的最优分类直线应满足(基于二维特征空间):
1.该直线分开了两类
2.该直线最大化间隔
3.该直线处于间隔的中间,到所有支持向量距离相等。
若是高维特征空间将直线换为超平面即可
优化问题
\rule[-0pt]{13cm}{0.05em}
最小化:
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2
∣
∣
w
∣
∣
2
假
设
w
是
一
个
向
量
,
有
m
个
分
量
w
=
[
w
1
w
2
⋅
⋅
⋅
w
m
]
则
∣
∣
w
∣
∣
2
=
w
1
2
+
w
2
2
+
.
.
.
+
w
m
2
=
∑
i
=
1
m
w
i
2
||w||^2 假设w是一个向量,有m个分量 \\ w=\begin{bmatrix} w_1\\ w_2\\ \cdot\\\ \cdot\\\ \cdot \\ w_m \end{bmatrix}则\\ ||w||^2=w_1^2+w_2^2+...+w_m^2=\sum_{i=1}^{m} w_i^2
∣∣w∣∣2假设w是一个向量,有m个分量w=⎣⎢⎢⎢⎢⎢⎢⎡w1w2⋅ ⋅ ⋅wm⎦⎥⎥⎥⎥⎥⎥⎤则∣∣w∣∣2=w12+w22+...+wm2=i=1∑mwi2
因此支持向量机的优化问题是最小化
∣
∣
w
∣
∣
2
||w||^2
∣∣w∣∣2
限制条件: y i ( w T x i + b ) ≥ 1 , ( i = 1 ∼ N ) y_i(w^Tx_i+b) \geq1,(i=1\sim N) yi(wTxi+b)≥1,(i=1∼N)
已知:训练样本集
{
(
X
i
,
y
i
)
}
,
i
=
1
∼
N
;
\left \{ (X_i,y_i)\right\},i=1\sim N;
{(Xi,yi)},i=1∼N;
待求:
(
w
,
b
)
(w,b)
(w,b)
支持向量机要找一个超平面处于间隔最大的中间,到两边所有支持向量距离相等。
为了推出这个问题,我们需要注意两个事实
事实1
w
T
x
+
b
=
0
与
(
α
w
T
)
x
+
(
a
b
)
=
0
是
同
一
个
超
平
面
。
(
a
≠
0
)
w^Tx+b=0与\\ (\alpha w^T)x+(ab)=0是同一个超平面。(a\neq 0)
wTx+b=0与(αwT)x+(ab)=0是同一个超平面。(a=0)
事实2
一
个
点
X
0
到
超
平
面
w
T
x
+
b
=
0
的
距
离
d
=
∣
w
T
x
+
b
=
0
∣
∣
∣
w
∣
∣
(
二
维
情
况
下
)
一个点X_0到超平面w^Tx+b=0的距离\\d=\frac{|w^Tx+b=0|}{||w||}(二维情况下) \\
一个点X0到超平面wTx+b=0的距离d=∣∣w∣∣∣wTx+b=0∣(二维情况下)
一 个 点 ( x 0 , y 0 ) 到 超 平 面 w 1 x + w 2 y 0 + b = 0 的 距 离 d = ∣ w 1 x 0 + w 2 y 0 + b ∣ w 1 2 + w 2 2 一个点(x_0,y_0)到超平面\\w_1x+w_2y_0+b=0的距离 \\ d=\frac{|w_1x_0+w_2y_0+b|}{\sqrt{w_1^2+w_2^2}} 一个点(x0,y0)到超平面w1x+w2y0+b=0的距离d=w12+w22∣w1x0+w2y0+b∣
△
\triangle
△我们可以用a去缩放
(
w
,
b
)
−
>
(
α
w
,
a
b
)
(w,b)->(\alpha w,ab)
(w,b)−>(αw,ab),最终使在支持向量
x
0
x_0
x0上有
∣
w
T
x
0
+
b
∣
=
1
|w^Tx_0+b|=1
∣wTx0+b∣=1
而在非支持向量上
∣
w
T
x
0
+
b
∣
>
1
|w^Tx_0+b|>1
∣wTx0+b∣>1(基于事实1)
再根据事实2,支持向量
x
0
x_0
x0到超平面的距离将会变为:
d
=
∣
w
T
x
0
+
b
∣
∣
∣
w
∣
∣
=
1
∣
∣
w
∣
∣
d=\frac{|w^Tx_0+b|}{||w||}=\frac{1}{||w||}
d=∣∣w∣∣∣wTx0+b∣=∣∣w∣∣1我们要最大化支持向量到超平面的距离,等价于最小化
∣
∣
w
∣
∣
||w||
∣∣w∣∣
再来看限制条件:非支持向量到超平面的距离一定是大于支持向量到超平面的距离的,所以
∣
w
T
x
0
+
b
∣
>
1
|w^Tx_0+b|>1
∣wTx0+b∣>1,综合点到超平面的距离,我们可以写
y
i
(
w
T
x
i
+
b
)
≥
1
,
(
i
=
1
∼
N
)
y_i(w^Tx_i+b) \geq1,(i=1\sim N)
yi(wTxi+b)≥1,(i=1∼N)
y
i
y_i
yi的作用是协调超平面的左右,使得一边的
(
w
T
x
i
+
b
)
>
1
(w^Tx_i+b) >1
(wTxi+b)>1,另一边的
(
w
T
x
i
+
b
)
<
1
(w^Tx_i+b) <1
(wTxi+b)<1,上述限制条件中,1可以改为任意正数,这样算出来的b和原来的b会相差一个a,实际上还是表示的同一个超平面
总结:
线性可分的情况下,支持向量机寻找最佳超平面的优化问题可以表示为:
最小化:
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2
限制条件:
y
i
(
w
T
x
i
+
b
)
≥
1
,
(
i
=
1
∼
N
)
y_i(w^Tx_i+b) \geq1,(i=1\sim N)
yi(wTxi+b)≥1,(i=1∼N)
(
X
i
,
y
i
)
,
i
=
1
∼
N
(X_i,y_i),i=1\sim N
(Xi,yi),i=1∼N是已知的,
(
w
,
b
)
(w,b)
(w,b)是待求的,可以看出这是凸优化问题中的二次规划问题。
凸优化简单讨论
\rule[-0pt]{13cm}{0.05em}
二次规划的定义:
1.目标函数是二次项
2.限制条件是一次项
这样的凸优化问题,要么无解,要么只有唯一的最小值的解。因为凸优化问题只有一个唯一的全局极值,所以我们把它当成是一个已经解决的问题,可以用一些算法去求他的极值。
下面是一个凸优化问题的例子:
只有一个变量的目标函数
f
(
w
)
f(w)
f(w),根据
f
(
w
)
f(w)
f(w)的梯度不断试探。最后算法都会沿着梯度逐渐下降到全局的最小值上去。只要一个优化问题是凸的,我们总能找到高效快速的算法去解决它。
线性不可分情况
\rule[-0pt]{13cm}{0.05em}
线性不可分情况在满足以上限制条件的情况下是无解的,我们需要适当的放松限制条件,使这种最优化问题变得有解。
基本思路:对每个训练样本及标签,设置一个松弛变量
δ
i
\delta_i
δi,我们就可以将松弛变量改写为:
y
i
(
w
T
X
i
+
b
)
≥
1
−
δ
i
,
(
i
=
1
∼
N
)
y_i(w^TX_i+b)\geq 1-\delta_i,(i=1\sim N)
yi(wTXi+b)≥1−δi,(i=1∼N)
只要松弛变量取的足够大,限制条件是一定可以成立的,但同时也要加入新的限制,阻止每个松弛变量无限地扩大,让他局限在一个合理的范围。
改写如下:
最小化:
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
δ
i
或
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
δ
i
2
\frac{1}{2}||w||^2+C\sum_{i=1}^{N}\delta_i或\frac{1}{2}||w||^2+C\sum_{i=1}^{N}\delta^2_i
21∣∣w∣∣2+C∑i=1Nδi或21∣∣w∣∣2+C∑i=1Nδi2
限制条件:
(
1
)
δ
i
≥
0
,
(
i
=
1
∼
N
)
(
2
)
y
i
(
w
T
X
i
+
b
)
≥
1
−
δ
i
,
(
i
=
1
∼
N
)
(1)\delta_i\geq0,(i=1\sim N)\\(2)y_i(w^TX_i+b)\geq1-\delta_i,(i=1\sim N)
(1)δi≥0,(i=1∼N)(2)yi(wTXi+b)≥1−δi,(i=1∼N)
我们不仅要让
∣
∣
w
∣
∣
2
||w||^2
∣∣w∣∣2最小,也要让
∑
i
=
1
N
δ
i
\sum_{i=1}^{N}\delta_i
∑i=1Nδi最小,这里比例因子C起到了平衡两项的关键作用。C是人为设定的,这种需要事先人为设定的参数,叫做算法的超参数,一般在实际的应用当中,我们要不断变化C的值,同时测试算法的识别率,然后选取使得识别率达到最大的超参数C的值。一个算法的超参数越多,意味着算法需要手动调整优化的地方就越多,这样算法的自动性也会降低。支持向量机是超参数很少的算法。
在线性不可分的情况下应用支持向量机
取目标函数:
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
δ
i
,
C
=
10000
\frac{1}{2}||w||^2+C\sum_{i=1}^{N}\delta_i,C=10000
21∣∣w∣∣2+C∑i=1Nδi,C=10000
我们将C取得很大,会尽量地破事所有的
δ
i
\delta_i
δi趋近于0,使得最终的超平面和线性可分情况下保持基本一致。但是在有些情况下,线性模型的表现力是不够的,我们只有想办法扩大可选函数的范围,使他超越线性,才有可能应对各种复杂的线性不可分的情况。
低维到高维的映射
\rule[-0pt]{13cm}{0.05em}
通过将特征空间由低维向高维的映射,在高维的特征空间中用线性超平面对数据进行分类。
我们来看一个在低维的特征空间中线性不可分的例子:
即:
x
1
=
[
0
0
]
∈
C
1
x
2
=
[
1
1
]
∈
C
1
x
3
=
[
1
0
]
∈
C
2
x
4
=
[
0
1
]
∈
C
2
x_1=\begin{bmatrix} 0 \\ 0 \end{bmatrix}\in C_1\quad x_2=\begin{bmatrix} 1\\ 1 \end{bmatrix}\in C_1 \quad x_3=\begin{bmatrix} 1\\ 0 \end{bmatrix}\in C_2 \quad x_4=\begin{bmatrix} 0\\ 1 \end{bmatrix}\in C_2
x1=[00]∈C1x2=[11]∈C1x3=[10]∈C2x4=[01]∈C2
这时候我们构建一个从二维到五维的映射
φ
(
x
)
\varphi(x)
φ(x)
φ
(
x
)
:
x
=
[
a
b
]
⟶
φ
(
x
)
=
[
a
2
b
2
a
b
a
b
]
\varphi(x): x=\begin{bmatrix} a \\ b \end{bmatrix}\longrightarrow\varphi(x)=\begin{bmatrix} a^2\\b^2\\a\\b\\ab \end{bmatrix}
φ(x):x=[ab]⟶φ(x)=⎣⎢⎢⎢⎢⎡a2b2abab⎦⎥⎥⎥⎥⎤
这样我们可以算出
x
1
,
2
,
3
,
4
x_{1,2,3,4}
x1,2,3,4对应的高维分量:
φ
(
x
1
)
=
[
0
0
0
0
0
]
φ
(
x
2
)
=
[
1
1
1
1
1
]
φ
(
x
3
)
=
[
1
0
1
0
0
]
φ
(
x
4
)
=
[
0
1
0
1
0
]
\varphi(x_1)=\begin{bmatrix} 0\\0\\0\\0\\0\end{bmatrix} \quad\varphi(x_2)=\begin{bmatrix} 1\\1\\1\\1\\1\end{bmatrix}\quad\varphi(x_3)=\begin{bmatrix} 1\\0\\1\\0\\0\end{bmatrix}\quad\varphi(x_4)=\begin{bmatrix} 0\\1\\0\\1\\0\end{bmatrix}
φ(x1)=⎣⎢⎢⎢⎢⎡00000⎦⎥⎥⎥⎥⎤φ(x2)=⎣⎢⎢⎢⎢⎡11111⎦⎥⎥⎥⎥⎤φ(x3)=⎣⎢⎢⎢⎢⎡10100⎦⎥⎥⎥⎥⎤φ(x4)=⎣⎢⎢⎢⎢⎡01010⎦⎥⎥⎥⎥⎤
当映射变为五维的时候,我们发现这些分量变得线性可分了。
设:
w
=
[
−
1
−
1
−
1
−
1
6
]
,
b
=
1
w=\begin{bmatrix} -1\\-1\\-1\\-1\\6\end{bmatrix},b=1
w=⎣⎢⎢⎢⎢⎡−1−1−1−16⎦⎥⎥⎥⎥⎤,b=1
这样我们可以再算出来:
w
T
φ
(
x
1
)
+
b
=
1
≥
0
w
T
φ
(
x
2
)
+
b
=
3
≥
0
w^T\varphi(x_1)+b=1\geq0\quad w^T\varphi(x_2)+b=3\geq0
wTφ(x1)+b=1≥0wTφ(x2)+b=3≥0
w
T
φ
(
x
3
)
+
b
=
−
1
<
0
w
T
φ
(
x
4
)
+
b
=
−
1
<
0
w^T\varphi(x_3)+b=-1<0\quad w^T\varphi(x_4)+b=-1<0
wTφ(x3)+b=−1<0wTφ(x4)+b=−1<0
根据这个计算结果,可以看出它确实变成了线性可分,这里有一个定理说明了一个更一般的结论:
假设:在一个M维空间上随机取N个训练样本,随机的对每个训练样本赋予标签+1或-1
同时假设:这些样本线性可分的概率为P(M),当M趋于无穷大的时候,P(M)=1
也就是当我们在增加特征空间的维度M的时候,超平面的待估计参数 ( w , b ) (w,b) (w,b)的维度也会增加,整个算法模型的自由度会增加,就更有可能分开低维时候无法分开的数据集。这个定理告诉我们,将训练样本由低维映射到高维们可以增大线性可分的概率。那我们如何构造这样一个由低维到高维的映射就成为关键性的问题。假设 φ ( x ) \varphi(x) φ(x)已经确定的情况,高维情况下优化问题的解法和低维情况是完全类似的。
最小化:
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
δ
i
或
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
δ
i
2
\frac{1}{2}||w||^2+C\sum_{i=1}^{N}\delta_i或\frac{1}{2}||w||^2+C\sum_{i=1}^{N}\delta^2_i
21∣∣w∣∣2+C∑i=1Nδi或21∣∣w∣∣2+C∑i=1Nδi2
限制条件:
(
1
)
δ
i
≥
0
,
(
i
=
1
∼
N
)
(
2
)
y
i
(
w
T
φ
(
X
i
)
+
b
)
≥
1
−
δ
i
,
(
i
=
1
∼
N
)
(1)\delta_i\geq0,(i=1\sim N)\\(2)y_i(w^T\varphi(X_i)+b)\geq1-\delta_i,(i=1\sim N)
(1)δi≥0,(i=1∼N)(2)yi(wTφ(Xi)+b)≥1−δi,(i=1∼N)
核函数
\rule[-0pt]{13cm}{0.05em}
这一部分具体研究一下
φ
(
x
)
\varphi(x)
φ(x)的形式
我们可以不用知道
φ
(
x
)
\varphi(x)
φ(x)的具体形式,假设任意两个向量
K
(
X
1
,
X
2
)
=
φ
(
X
1
)
T
φ
(
X
2
)
K(X_1,X_2)=\varphi(X_1)^T\varphi(X_2)
K(X1,X2)=φ(X1)Tφ(X2),我们可以通过一些技巧获得测试样本x的类别信息,从而完成对测试样本类别的预测。我们定义
K
(
X
1
,
X
2
)
K(X_1,X_2)
K(X1,X2)为核函数,它是一个实数。
我们举两个例子来看一下核函数以及低维到高维映射
φ
(
x
)
\varphi(x)
φ(x)的关系
假设:
φ
(
x
)
\varphi(x)
φ(x)是一个将二维向量映射为三维向量的映射
X
=
[
x
1
,
x
2
]
T
φ
(
X
)
=
φ
(
[
x
1
,
x
2
]
T
)
=
[
x
1
2
,
x
1
x
2
,
x
2
2
]
X=[x_1,x_2]^T \\ \varphi(X)=\varphi([x_1,x_2]^T)=[x_1^2,x_1x_2,x_2^2]
X=[x1,x2]Tφ(X)=φ([x1,x2]T)=[x12,x1x2,x22]
假设有两个二维向量:
X
1
=
[
x
11
,
x
12
]
T
X
2
=
[
x
21
,
x
22
]
T
X_1=[x_{11},x_{12}]^T\qquad X_2=[x_{21},x_{22}]^T
X1=[x11,x12]TX2=[x21,x22]T
K
(
X
1
,
X
2
)
=
φ
(
X
1
)
T
φ
(
X
2
)
=
[
x
11
2
,
x
11
x
12
,
x
12
2
]
[
x
21
2
,
x
21
x
22
,
x
12
2
]
T
=
x
11
2
x
21
2
+
x
11
x
12
x
21
x
22
+
x
12
2
x
22
2
\begin{aligned} K(X_1,X_2) & =\varphi(X_1)^T\varphi(X_2) \\ & =[x_{11}^2,x_{11}x_{12},x_{12}^2][x_{21}^2,x_{21}x_{22},x_{12}^2]^T\\ &=x_{11}^2x_{21}^2+x_{11}x_{12}x_{21}x_{22}+x_{12}^2x_{22}^2 \end{aligned}
K(X1,X2)=φ(X1)Tφ(X2)=[x112,x11x12,x122][x212,x21x22,x122]T=x112x212+x11x12x21x22+x122x222上面这个最终结果是一个数。
这个例子是已知
φ
(
x
)
\varphi(x)
φ(x)求K,下面是一个已知K来求
φ
(
x
)
\varphi(x)
φ(x)的例子。
假设:X是一个二维向量
X
1
=
[
x
11
,
x
12
]
T
X
2
=
[
x
21
,
x
22
]
T
X_1=[x_{11},x_{12}]^T\qquad X_2=[x_{21},x_{22}]^T
X1=[x11,x12]TX2=[x21,x22]T
假设:
K
(
X
1
,
X
2
)
=
(
x
11
x
21
+
x
12
x
22
+
1
)
2
=
x
11
2
x
21
2
+
x
12
2
x
22
2
+
1
+
2
x
11
x
12
x
21
x
22
+
2
x
11
x
21
+
2
x
12
x
22
\begin{aligned} K(X_1,X_2) & =(x_{11}x_{21}+x_{12}x_{22}+1)^2\\ &=x_{11}^2x_{21}^2+x_{12}^2x_{22}^2+1+2x_{11}x_{12}x_{21}x_{22}+2x_{11}x_{21}+2x_{12}x_{22}\\ \end{aligned}
K(X1,X2)=(x11x21+x12x22+1)2=x112x212+x122x222+1+2x11x12x21x22+2x11x21+2x12x22
K
(
X
1
,
X
2
)
=
φ
(
X
1
)
T
φ
(
X
2
)
\qquad \qquad K(X_1,X_2)=\varphi(X_1)^T\varphi(X_2)
K(X1,X2)=φ(X1)Tφ(X2)
假设:
X
=
[
x
1
,
x
2
]
T
X=[x_1,x_2]^T
X=[x1,x2]T
φ
(
X
)
=
φ
(
[
x
1
,
x
2
]
T
)
=
[
x
1
2
,
x
2
2
,
2
x
1
x
2
,
2
x
1
,
2
x
2
]
T
\begin{aligned} \varphi(X)&=\varphi([x_1,x_2]^T)\\ &=[x_1^2,x_2^2,\sqrt2x_1x_2,\sqrt2x_1,\sqrt2x_2]^T \end{aligned}
φ(X)=φ([x1,x2]T)=[x12,x22,2x1x2,2x1,2x2]T核函数K和映射
φ
\varphi
φ是一一对应的关系。核函数的形式不能随意取,需要满足一定的条件才能分解成两个
φ
\varphi
φ内积的形式。
mercer定理
K
(
X
1
,
X
2
)
能
写
成
φ
(
X
1
)
T
φ
(
X
2
)
的
充
要
条
件
:
1.
K
(
X
1
,
X
2
)
=
K
(
X
2
,
X
1
)
(
交
换
性
)
2.
∀
C
i
(
i
=
1
∼
N
)
,
∀
N
有
∑
i
=
1
N
∑
j
=
1
N
C
i
C
j
K
(
X
i
X
j
)
≥
0
(
半
正
定
性
)
K(X_1,X_2)能写成\varphi(X_1)^T\varphi(X_2)的充要条件:\\ 1.K(X_1,X_2)=K(X_2,X_1)(交换性)\\ 2.\forall C_i(i=1\sim N),\forall N有\sum_{i=1}^{N}\sum_{j=1}^{N}C_iC_jK(X_iX_j)\geq0(半正定性)
K(X1,X2)能写成φ(X1)Tφ(X2)的充要条件:1.K(X1,X2)=K(X2,X1)(交换性)2.∀Ci(i=1∼N),∀N有i=1∑Nj=1∑NCiCjK(XiXj)≥0(半正定性)
例如:可以证明高斯核函数:
K
(
X
1
,
X
2
)
=
e
−
∣
∣
X
1
−
X
2
∣
∣
2
2
σ
2
K(X_1,X_2)=e^{-\frac{||X_1-X_2||^2}{2\sigma^2 }}
K(X1,X2)=e−2σ2∣∣X1−X2∣∣2
要注意这个式子中
φ
(
x
)
\varphi(x)
φ(x)不能写成显式的表达式
原问题和对偶问题
\rule[-0pt]{13cm}{0.05em}
原问题:
最小化:
f
(
w
)
f(w)
f(w)
限制条件:
g
i
(
w
)
≤
0
i
=
1
∼
N
h
i
(
w
)
=
0
i
=
1
∼
m
\begin{aligned} & g_i(w)\leq0\quad i=1\sim N\\& h_i(w)=0\quad i=1\sim m\end{aligned}
gi(w)≤0i=1∼Nhi(w)=0i=1∼m
定义该原问题的对偶问题如下:
定义函数:
L
(
w
,
α
,
β
)
=
f
(
w
)
+
∑
i
=
1
K
α
i
g
i
(
w
)
+
∑
i
=
1
K
β
i
h
i
(
w
)
=
f
(
w
)
+
α
T
g
(
w
)
+
β
T
h
(
w
)
\begin{aligned} L(w,\alpha,\beta)&=f(w)+\sum_{i=1}^{K}\alpha_ig_i(w)+\sum_{i=1}^{K}\beta_ih_i(w)\\&=f(w)+\alpha^Tg(w)+\beta^Th(w)\end{aligned}
L(w,α,β)=f(w)+i=1∑Kαigi(w)+i=1∑Kβihi(w)=f(w)+αTg(w)+βTh(w)
其中
α
=
[
α
1
,
α
2
,
.
.
.
,
α
K
]
T
β
=
[
β
1
,
β
2
,
.
.
.
,
β
M
]
T
g
(
w
)
=
[
g
1
(
w
)
,
g
2
(
w
)
,
.
.
.
,
g
K
(
w
)
]
T
h
(
w
)
=
[
h
1
(
w
)
,
h
2
(
w
)
,
.
.
.
,
h
M
(
w
)
]
T
\begin{aligned} &\alpha=[\alpha_1,\alpha_2,...,\alpha_K]^T\\ &\beta=[\beta_1,\beta_2,...,\beta_M]^T\\ &g(w)=[g_1(w),g_2(w),...,g_K(w)]^T\\ &h(w)=[h_1(w),h_2(w),...,h_M(w)]^T\end{aligned}
α=[α1,α2,...,αK]Tβ=[β1,β2,...,βM]Tg(w)=[g1(w),g2(w),...,gK(w)]Th(w)=[h1(w),h2(w),...,hM(w)]T
在此基础上对偶问题定义如下:
最大化:
θ
(
α
,
β
)
=
i
n
f
L
(
w
,
α
,
β
)
所
有
定
义
域
内
的
w
\theta(\alpha,\beta)=inf \quad L(w,\alpha,\beta)所有定义域内的w
θ(α,β)=infL(w,α,β)所有定义域内的w
限制条件:
α
i
≥
0
,
i
=
1
∼
K
\alpha_i\geq0,i=1\sim K
αi≥0,i=1∼K
综合原问题和对偶问题的定义得到:
定理一:如果
w
∗
w^*
w∗是原问题的解,
(
α
∗
,
β
∗
)
(\alpha^*,\beta^*)
(α∗,β∗)是对偶问题的解,则有:
f
(
w
∗
)
≥
θ
(
α
∗
,
β
∗
)
f(w^*)\geq\theta(\alpha^*,\beta^*)
f(w∗)≥θ(α∗,β∗)
证明如下:
θ
(
α
∗
,
β
∗
)
=
i
n
f
L
(
w
,
α
∗
,
β
∗
)
=
≤
L
(
w
∗
,
α
∗
,
β
∗
)
=
f
(
w
∗
)
+
α
∗
T
g
(
w
∗
)
+
β
∗
T
h
(
w
∗
)
(
看
限
制
条
件
)
≤
f
(
w
∗
)
\begin{aligned}\theta(\alpha^*,\beta^*)&=inf\quad L(w,\alpha^*,\beta^*)\\ &=\leq L(w^*,\alpha^*,\beta^*)\\ &=f(w^*)+\alpha^{*T}g(w^*)+\beta^{*T}h(w^*)(看限制条件)\\ &\leq f(w^*)\end{aligned}
θ(α∗,β∗)=infL(w,α∗,β∗)=≤L(w∗,α∗,β∗)=f(w∗)+α∗Tg(w∗)+β∗Th(w∗)(看限制条件)≤f(w∗)
我们把
f
(
w
∗
)
−
θ
(
α
∗
,
β
∗
)
f(w^*)-\theta(\alpha^*,\beta^*)
f(w∗)−θ(α∗,β∗)定义为对偶差距
强对偶定理
如果
g
(
w
)
=
A
w
+
b
,
h
(
w
)
=
C
w
+
d
,
f
(
w
)
g(w)=Aw+b,h(w)=Cw+d,f(w)
g(w)=Aw+b,h(w)=Cw+d,f(w)为凸函数,则有
f
(
w
∗
)
=
θ
(
α
∗
,
β
∗
)
f(w^*)=\theta(\alpha^*,\beta^*)
f(w∗)=θ(α∗,β∗),则对偶差距为0
即,原问题的目标函数是凸函数,限制条件是线性函数,则
f
(
w
∗
)
=
θ
(
α
∗
,
β
∗
)
f(w^*)=\theta(\alpha^*,\beta^*)
f(w∗)=θ(α∗,β∗)
KKT条件
若
f
(
w
∗
=
θ
(
α
∗
,
β
∗
)
f(w^*=\theta(\alpha^*,\beta^*)
f(w∗=θ(α∗,β∗),则定理一中必然能够推出,对于所有的i=1~K,要么
α
i
=
0
\alpha_i=0
αi=0,要么
g
i
(
w
∗
)
=
0
g_i(w^*)=0
gi(w∗)=0
转化为对偶问题
首先将
δ
i
≥
0
(
i
=
1
∼
N
)
转
换
成
δ
i
≤
0
(
i
=
1
∼
N
)
\delta_i\geq0(i=1\sim N)转换成\delta_i\leq0(i=1\sim N)
δi≥0(i=1∼N)转换成δi≤0(i=1∼N)
这样就能得到最小化:
1
2
∣
∣
w
∣
∣
2
−
C
∑
i
=
1
N
δ
i
\frac{1}{2}||w||^2-C\sum_{i=1}^{N}\delta_i
21∣∣w∣∣2−C∑i=1Nδi
限制条件:
(
1
)
δ
i
≤
0
(
i
=
1
∼
N
)
(
2
)
y
i
[
w
T
φ
(
X
i
)
+
b
]
≥
1
+
δ
i
(
i
=
1
∼
N
)
\begin{aligned}&(1)\delta_i\leq0(i=1\sim N)\\ &(2)y_i[w^T\varphi(X_i)+b]\geq1+\delta_i(i=1\sim N) \end{aligned}
(1)δi≤0(i=1∼N)(2)yi[wTφ(Xi)+b]≥1+δi(i=1∼N)
再整理一下:
最小化:
1
2
∣
∣
w
∣
∣
2
−
C
∑
i
=
1
N
δ
i
或
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
δ
i
2
\frac{1}{2}||w||^2-C\sum_{i=1}^{N}\delta_i或\frac{1}{2}||w||^2+C\sum_{i=1}^{N}\delta^2_i
21∣∣w∣∣2−C∑i=1Nδi或21∣∣w∣∣2+C∑i=1Nδi2
限制条件:
(
1
)
δ
i
≤
0
,
(
i
=
1
∼
N
)
(
2
)
1
+
δ
i
−
y
i
w
T
φ
(
X
i
)
−
y
i
b
≤
0
(
i
=
1
∼
N
)
\begin{aligned}&(1)\delta_i\leq0,(i=1\sim N)\\&(2)1+\delta_i-y_iw^T\varphi(X_i)-y_ib\leq0(i=1\sim N)\end{aligned}
(1)δi≤0,(i=1∼N)(2)1+δi−yiwTφ(Xi)−yib≤0(i=1∼N)
求解
需要注意:自变量
w
=
(
w
,
α
,
β
)
w=(w,\alpha,\beta)
w=(w,α,β),不等式
g
i
(
w
)
≤
0
g_i(w)\leq0
gi(w)≤0被分成了两部分,一部分是:
δ
i
≤
0
\delta_i\leq0
δi≤0,另一部分是:
1
+
δ
i
−
y
i
w
T
φ
(
X
i
)
−
y
i
b
≤
0
(
i
=
1
∼
N
)
1+\delta_i-y_iw^T\varphi(X_i)-y_ib\leq0(i=1\sim N)
1+δi−yiwTφ(Xi)−yib≤0(i=1∼N)
将对偶问题写成如下的形式:
最大化:
θ
(
α
,
β
)
=
i
n
f
w
,
φ
i
,
b
{
1
2
∣
∣
w
∣
∣
2
−
C
∑
i
=
1
N
δ
i
+
∑
i
=
1
N
β
i
δ
i
+
∑
i
=
1
N
α
i
[
1
+
δ
i
−
y
i
w
T
φ
(
X
i
)
−
y
i
b
]
}
\begin{aligned}\theta(\alpha,\beta)&= \underset{w,\varphi_i,b}{inf}\left \{ \frac{1}{2}||w||^2-C\sum_{i=1}^{N}\delta_i+\sum_{i=1}^{N}\beta_i\delta_i+\sum_{i=1}^{N}\alpha_i[1+\delta_i-y_iw^T\varphi(X_i)-y_ib] \right\}\end{aligned}
θ(α,β)=w,φi,binf{21∣∣w∣∣2−Ci=1∑Nδi+i=1∑Nβiδi+i=1∑Nαi[1+δi−yiwTφ(Xi)−yib]}
限制条件:
(
1
)
α
i
≥
0
(
2
)
β
i
≥
0
\begin{aligned}&(1)\alpha_i\geq0\\&(2)\beta_i\geq0\end{aligned}
(1)αi≥0(2)βi≥0
对
(
w
,
b
,
δ
i
)
(w,b,\delta_i)
(w,b,δi)求导并令导数为0
得到:
(
1
)
∂
θ
∂
w
=
w
−
∑
i
=
1
N
α
i
φ
(
X
i
)
y
i
=
0
⟹
w
=
∑
i
=
1
N
α
i
y
i
φ
(
X
i
)
(
2
)
∂
θ
∂
δ
i
=
−
C
+
α
i
+
β
i
=
0
⟹
α
i
+
β
i
=
C
(
3
)
∂
θ
∂
b
=
−
∑
i
=
1
N
α
i
y
i
=
0
⟹
∑
i
=
1
N
α
i
y
i
=
0
\begin{aligned}&(1)\frac{\partial\theta}{\partial w}=w-\sum_{i=1}^{N}\alpha_i\varphi(X_i)y_i=0\Longrightarrow w=\sum_{i=1}^{N}\alpha_iy_i\varphi(X_i)\\ &(2)\frac{\partial\theta}{\partial \delta_i}=-C+\alpha_i+\beta_i=0\Longrightarrow \alpha_i+\beta_i=C\\ &(3)\frac{\partial\theta}{\partial b}=-\sum_{i=1}^{N}\alpha_iy_i=0\Longrightarrow \sum_{i=1}^{N}\alpha_iy_i=0\end{aligned}
(1)∂w∂θ=w−i=1∑Nαiφ(Xi)yi=0⟹w=i=1∑Nαiyiφ(Xi)(2)∂δi∂θ=−C+αi+βi=0⟹αi+βi=C(3)∂b∂θ=−i=1∑Nαiyi=0⟹i=1∑Nαiyi=0
代入上式可以得到:
最大化:
θ
(
α
,
β
)
=
∑
i
=
1
N
α
i
−
1
2
∑
i
=
1
N
∑
j
=
1
N
y
i
y
j
α
i
α
j
φ
(
X
i
)
T
φ
(
X
j
)
\theta(\alpha,\beta)=\sum_{i=1}^{N}\alpha_i-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}y_iy_j\alpha_i\alpha_j\varphi(X_i)^T\varphi(X_j)
θ(α,β)=∑i=1Nαi−21∑i=1N∑j=1Nyiyjαiαjφ(Xi)Tφ(Xj)
限制条件:
(
1
)
0
≤
α
i
≤
C
,
(
i
=
1
∼
N
)
(
2
)
∑
i
=
1
N
α
i
y
i
=
0
(
i
=
1
∼
N
)
\begin{aligned}&(1)0\leq\alpha_i\leq C,(i=1\sim N)\\ &(2)\sum_{i=1}^{N}\alpha_iy_i=0(i=1\sim N)\end{aligned}
(1)0≤αi≤C,(i=1∼N)(2)i=1∑Nαiyi=0(i=1∼N)
算法流程
\rule[-0pt]{13cm}{0.05em}
我们注意到
φ
(
X
i
)
T
φ
(
X
j
)
=
K
(
X
i
,
X
j
)
\varphi(X_i)^T\varphi(X_j)=K(X_i,X_j)
φ(Xi)Tφ(Xj)=K(Xi,Xj)
即我们只要知道核函数,就能求解这个对偶问题了。我们在接触所有的
α
i
\alpha_i
αi后,可以根据
w
=
∑
i
=
1
N
α
i
y
i
φ
(
X
i
)
w=\sum_{i=1}^{N}\alpha_iy_i\varphi(X_i)
w=∑i=1Nαiyiφ(Xi), 要注意
φ
(
x
)
\varphi(x)
φ(x)不见得有显式表达
对于原问题的
w
和
b
w和b
w和b,我们先看一下如何求b
由于
w
=
∑
j
=
1
N
α
j
y
j
φ
(
X
j
)
w=\sum_{j=1}^{N}\alpha_jy_j\varphi(X_j)
w=∑j=1Nαjyjφ(Xj),则
w
T
φ
(
X
i
)
=
∑
j
=
1
N
α
j
y
j
φ
(
X
j
)
T
φ
(
X
i
)
=
∑
i
=
1
N
α
i
y
i
K
(
X
j
,
X
i
)
\begin{aligned}w^T\varphi(X_i)&=\sum_{j=1}^{N}\alpha_jy_j\varphi(X_j)^T\varphi(X_i)\\ &=\sum_{i=1}^{N}\alpha_iy_iK(X_j,X_i)\end{aligned}
wTφ(Xi)=j=1∑Nαjyjφ(Xj)Tφ(Xi)=i=1∑NαiyiK(Xj,Xi)
根据KKT条件:
α
i
[
1
+
δ
i
−
y
i
w
T
φ
(
X
i
)
−
y
i
b
]
=
0
β
i
δ
i
=
0
⟹
(
c
−
α
i
)
δ
i
\alpha_i[1+\delta_i-y_iw^T\varphi(X_i)-y_ib]=0\\\beta_i\delta_i=0\Longrightarrow(c-\alpha_i)\delta_i
αi[1+δi−yiwTφ(Xi)−yib]=0βiδi=0⟹(c−αi)δi
如果对于某个
i
,
α
i
≠
0
且
α
i
≠
c
i,\alpha_i\neq0且\alpha_i\neq c
i,αi=0且αi=c,则根据KKT条件,必有
δ
i
=
0
\delta_i=0
δi=0
且
1
+
δ
i
−
y
i
w
T
φ
(
X
i
)
−
y
i
b
=
0
1+\delta_i-y_iw^T\varphi(X_i)-y_ib=0
1+δi−yiwTφ(Xi)−yib=0,其中
y
i
w
T
φ
(
X
i
)
=
∑
j
=
1
N
α
i
y
i
y
j
K
(
X
j
,
X
i
)
y_iw^T\varphi(X_i)=\sum_{j=1}^{N}\alpha_iy_iy_jK(X_j,X_i)
yiwTφ(Xi)=j=1∑NαiyiyjK(Xj,Xi)
所以只需要找到一个
0
<
α
i
<
C
0<\alpha_i<C
0<αi<C
就可以求出b:
b
=
1
−
∑
j
=
1
N
α
i
y
i
y
j
K
(
X
j
,
X
i
)
y
i
b=\frac{1-\sum_{j=1}^{N}\alpha_iy_iy_jK(X_j,X_i)}{y_i}
b=yi1−∑j=1NαiyiyjK(Xj,Xi)
算出b之后,我们考虑对于一个测试样本X如何获得其测试类别:
通过计算
w
T
φ
(
X
)
+
b
w^T\varphi(X)+b
wTφ(X)+b
将
w
=
∑
i
=
1
N
α
i
y
i
φ
(
X
i
)
w=\sum_{i=1}^{N}\alpha_iy_i\varphi(X_i)
w=i=1∑Nαiyiφ(Xi)代入,将会得到:
w
T
φ
(
X
)
+
b
=
∑
i
=
1
N
α
i
y
i
φ
(
X
i
)
T
φ
(
X
)
+
b
=
∑
i
=
1
N
α
i
y
i
K
(
X
i
,
X
)
+
b
\begin{aligned}w^T\varphi(X)+b&=\sum_{i=1}^{N}\alpha_iy_i\varphi(X_i)^T\varphi(X)+b\\ &=\sum_{i=1}^{N}\alpha_iy_iK(X_i,X)+b\end{aligned}
wTφ(X)+b=i=1∑Nαiyiφ(Xi)Tφ(X)+b=i=1∑NαiyiK(Xi,X)+b
即使我们不知道
φ
(
x
)
\varphi(x)
φ(x)的具体形式,只知道核函数,也可以算出
w
T
φ
(
X
)
+
b
w^T\varphi(X)+b
wTφ(X)+b这一过程也被称作“核函数戏法”,最后我们得到如下的判别标准。
如
果
∑
i
=
1
N
α
i
y
i
K
(
X
i
,
X
)
+
b
≥
0
,
那
么
X
∈
C
1
如
果
∑
i
=
1
N
α
i
y
i
K
(
X
i
,
X
)
+
b
<
0
,
那
么
X
∈
C
2
如果\sum_{i=1}^{N}\alpha_iy_iK(X_i,X)+b\geq0,那么X\in C_1\\ 如果\sum_{i=1}^{N}\alpha_iy_iK(X_i,X)+b<0,那么X\in C_2
如果i=1∑NαiyiK(Xi,X)+b≥0,那么X∈C1如果i=1∑NαiyiK(Xi,X)+b<0,那么X∈C2
总结:
训练过程:
输入训练数据
{
(
X
i
,
y
i
)
}
,
i
=
1
∼
N
,
其
中
y
i
=
±
1
\left\{ (X_i,y_i)\right\},i=1\sim N,其中y_i=\pm1
{(Xi,yi)},i=1∼N,其中yi=±1
接下来求解如下的优化问题:
最大化:
θ
(
α
)
=
∑
i
=
1
N
α
i
1
2
∑
i
=
1
N
∑
j
=
1
N
y
i
y
j
α
i
α
j
φ
(
X
i
)
T
φ
(
X
j
)
\theta(\alpha)=\sum_{i=1}^{N} \alpha_i \frac{1}{2}\sum_{i=1}^{N} \sum_{j=1}^{N} y_iy_j\alpha_i \alpha_j\varphi(X_i)^T\varphi(X_j) \\
θ(α)=i=1∑Nαi21i=1∑Nj=1∑Nyiyjαiαjφ(Xi)Tφ(Xj)
限制条件:
(
1
)
0
≤
δ
i
≤
C
i
(
i
=
1
∼
N
)
(
2
)
∑
i
=
1
N
α
i
y
i
=
0
,
(
i
=
1
∼
N
)
\begin{aligned}&(1)0\leq\delta_i\leq C_i(i=1\sim N)\\ &(2)\sum_{i=1}^{N}\alpha_iy_i=0,(i=1\sim N)\end{aligned}
(1)0≤δi≤Ci(i=1∼N)(2)i=1∑Nαiyi=0,(i=1∼N)
求b
找
一
个
α
i
≠
0
且
α
i
≠
c
,
则
b
=
1
−
∑
j
=
1
N
α
i
y
i
y
j
K
(
X
j
,
X
i
)
y
i
找一个\alpha_i\ne0且\alpha_i\ne c,则 b=\frac{1-\sum_{j=1}^{N}\alpha_iy_iy_jK(X_j,X_i)}{y_i}
找一个αi=0且αi=c,则b=yi1−∑j=1NαiyiyjK(Xj,Xi)
测试过程:
如
果
∑
i
=
1
N
α
i
y
i
K
(
X
i
,
X
)
+
b
≥
0
,
y
=
+
1
如
果
∑
i
=
1
N
α
i
y
i
K
(
X
i
,
X
)
+
b
<
0
,
y
=
−
1
如果\sum_{i=1}^{N}\alpha_iy_iK(X_i,X)+b\geq0,y=+1\\ 如果\sum_{i=1}^{N}\alpha_iy_iK(X_i,X)+b<0, y=-1
如果i=1∑NαiyiK(Xi,X)+b≥0,y=+1如果i=1∑NαiyiK(Xi,X)+b<0,y=−1
识别系统的性能度量
\rule[-0pt]{13cm}{0.05em}
单用识别率来判断系统的好坏是没意义的,我们通过几个度量系统性能的标准来更全面的反应性能。
混淆矩阵
系统的识别率为:(TP+TN)/(TP+TN+FP+FN)
TP+FN=所有正样本的数量
FP+TN=所有负样本的数量
混淆矩阵的概率形式为:
TP+FN=1
FP+TN=1
ROC曲线
支持向量机的判别公式:
·