1.数学基础
(1)定义一个平面 w ⃗ ∙ x ⃗ + b = 0 \vec w\bullet\vec x+b=0 w∙x+b=0
由向量垂直得:
w
⃗
∙
(
x
⃗
−
x
⃗
0
)
=
0
\vec w\bullet (\vec x-\vec x_0)=0
w∙(x−x0)=0
设
b
=
−
w
⃗
∙
x
⃗
0
b=-\vec w\bullet\vec x_0
b=−w∙x0,则
w
⃗
∙
x
⃗
+
b
=
0
\quad\vec w\bullet\vec x+b=0
w∙x+b=0
(2)求解平行平面之间的距离D
所求距离:
D
=
∣
∣
t
w
⃗
∣
∣
=
∣
t
∣
∙
∣
∣
w
⃗
∣
∣
D=||t\vec w||=|t|\bullet||\vec w||
D=∣∣tw∣∣=∣t∣∙∣∣w∣∣
以
x
⃗
1
、
x
⃗
2
\vec x_1、\vec x_2
x1、x2的交点为坐标原点,
x
⃗
1
、
x
⃗
2
\vec x_1、\vec x_2
x1、x2确定的平面建立坐标系,知
w
⃗
∙
x
⃗
2
+
b
2
=
0
\quad\vec w\bullet\vec x_2+b_2=0
w∙x2+b2=0
w
⃗
∙
x
⃗
1
+
b
1
=
0
\quad\vec w\bullet\vec x_1+b_1=0
w∙x1+b1=0
又
x
⃗
2
=
x
⃗
1
+
t
w
⃗
\vec x_2=\vec x_1+t\vec w
x2=x1+tw
综上,可得
t
=
b
1
−
b
2
∣
∣
w
∣
∣
2
t=\frac{b_1-b_2} {||w||^2}
t=∣∣w∣∣2b1−b2
故 D = ∣ b 1 − b 2 ∣ ∣ ∣ w ⃗ ∣ ∣ D=\frac{|b_1-b_2|}{||\vec w||} D=∣∣w∣∣∣b1−b2∣
2.SVM(样本线性可分)
(1) 确定样本分割平面
步骤:
- 对于正、负样本,可以确定虚线所示的平行分割平面,方程分别为:
w ⃗ ∙ x ⃗ + b 1 = 0 \quad\vec w\bullet\vec x+b_1=0 w∙x+b1=0 及 w ⃗ ∙ x ⃗ + b 2 = 0 \vec w\bullet\vec x+b_2=0 w∙x+b2=0 - 调整 w ⃗ \vec w w的大小,使得 b 2 − b 1 = 2 b_2-b_1=2 b2−b1=2
- 设 b = b 1 + b 2 2 b=\frac{b_1+b_2}{2} b=2b1+b2,则 b 1 = b − 1 , b 2 = b + 1 b_1=b-1, b_2=b+1 b1=b−1,b2=b+1
- 代入方程,得
w ⃗ ∙ x ⃗ + b = 1 \quad\vec w\bullet\vec x+b=1 w∙x+b=1
w ⃗ ∙ x ⃗ + b = − 1 \quad\vec w\bullet\vec x+b=-1 w∙x+b=−1
(2)确定最优化目标及约束条件
- 最优化目标(间距最大)
i. 根据平面间距离计算公式: D = ∣ b 1 − b 2 ∣ ∣ ∣ w ⃗ ∣ ∣ = 2 ∣ ∣ w ⃗ ∣ ∣ D=\frac{|b_1-b_2|}{||\vec w||}=\frac{2}{||\vec w||} D=∣∣w∣∣∣b1−b2∣=∣∣w∣∣2
ii. 最大化 D D D,等价于最小化 ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec w||^2}{2} 2∣∣w∣∣2 - 约束条件(保证正确分类)
i. 对于正负样本,有
w ⃗ ∙ x ⃗ i + b ≥ 1 \quad\vec w\bullet\vec x_i+b\ge1\qquad w∙xi+b≥1 i f    y i = 1 if\; y_i=1 ifyi=1
w ⃗ ∙ x ⃗ i + b ≤ − 1   \quad\vec w\bullet\vec x_i+b\le-1\quad\, w∙xi+b≤−1 i f    y i = − 1 if\;y_i=-1 ifyi=−1
ii. 综上,可得
y i ( w ⃗ ∙ x ⃗ i + b ) ≥ 1 \quad y_i(\vec w\bullet\vec x_i+b)\ge1 yi(w∙xi+b)≥1
\quad 即
y i ( w T x i + b ) ≥ 1 \quad y_i(w^Tx_i+b)\ge1 yi(wTxi+b)≥1
(3)原问题转化为对偶问题进行求解
-
构造拉格朗日乘子
L ( w , b , λ ) = ∣ ∣ w ∣ ∣ 2 2 − ∑ i = 1 n λ i [ y i ( w T x i + b ) − 1 ] L(w,b,\lambda)=\frac{||w||^2}{2}-\sum\limits_{i=1}^n\lambda_i[y_i(w^Tx_i+b)-1] L(w,b,λ)=2∣∣w∣∣2−i=1∑nλi[yi(wTxi+b)−1] -
将原问题转化为对偶问题
min w , b   max λ L ( w , b , λ ) ⟺   max λ min w , b L ( w , b , λ ) \min\limits_{w,b}\,\max\limits_{\lambda}L(w,b,\lambda)\Longleftrightarrow\,\max\limits_{\lambda}\min\limits_{w,b}L(w,b,\lambda) w,bminλmaxL(w,b,λ)⟺λmaxw,bminL(w,b,λ) -
根据KKT条件(求解极小值点)
∇ w , b   L ( w , b , λ ) = 0 \nabla_{w,b}\, L(w,b,\lambda)=0 ∇w,bL(w,b,λ)=0
⇔ ∂ L ∂ w = ∂ L ∂ b = 0 \Leftrightarrow\frac{\partial L}{\partial w}=\frac{\partial L}{\partial b}=0 ⇔∂w∂L=∂b∂L=0分别求导,得: w = ∑ i = 1 n λ i y i x i , ∑ i = 1 n λ i y i = 0 w=\sum\limits_{i=1}^{n}\lambda_iy_ix_i\quad,\sum\limits_{i=1}^{n}\lambda_iy_i=0 w=i=1∑nλiyixi,i=1∑nλiyi=0
-
代入拉格朗日乘子式,并化简(求解极大值)
L ( w , b , λ ) = w T w 2 − w T ∑ i = 1 n λ i y i x i − b ∑ i = 1 n λ i y i + ∑ i = 1 n λ i L(w,b,\lambda)=\frac{w^Tw}{2}-w^T\sum\limits_{i=1}^{n}\lambda_iy_ix_i-b\sum\limits_{i=1}^{n}\lambda_iy_i+\sum\limits_{i=1}^{n}\lambda_i L(w,b,λ)=2wTw−wTi=1∑nλiyixi−bi=1∑nλiyi+i=1∑nλi
  = ∑ i = 1 n λ i − 1 2 ( ∑ i = 1 n λ i y i x i ) T ∑ i = 1 n λ i y i x i \qquad\,\qquad\qquad=\sum\limits_{i=1}^{n}\lambda_i-\frac{1}{2}(\sum\limits_{i=1}^{n}\lambda_iy_ix_i)^T\sum\limits_{i=1}^{n}\lambda_iy_ix_i =i=1∑nλi−21(i=1∑nλiyixi)Ti=1∑nλiyixi
  = ∑ i = 1 n λ i − 1 2 ∑ i , j = 1 n λ i λ j y i y j x i T x j \qquad\,\qquad\qquad=\sum\limits_{i=1}^{n}\lambda_i-\frac{1}{2}\sum\limits_{i,j=1}^{n}\lambda_i\lambda_jy_iy_jx_i^Tx_j =i=1∑nλi−21i,j=1∑nλiλjyiyjxiTxj
 
\qquad\,
此时,需要求解
L
(
w
,
b
,
λ
)
L(w,b,\lambda)
L(w,b,λ)关于
λ
\lambda
λ的极大值
 
\qquad\,
即,求解
−
L
(
w
,
b
,
λ
)
-L(w,b,\lambda)
−L(w,b,λ)关于
λ
\lambda
λ的极小值
- 对偶问题重新定义(求解
λ
i
∗
\lambda_i^*
λi∗)
最小化目标: − L ( w , b , λ ) = 1 2 ∑ i , j = 1 n λ i λ j y i y j x i T x j − ∑ i = 1 n λ i -L(w,b,\lambda)=\frac{1}{2}\sum\limits_{i,j=1}^{n}\lambda_i\lambda_jy_iy_jx_i^Tx_j-\sum\limits_{i=1}^{n}\lambda_i −L(w,b,λ)=21i,j=1∑nλiλjyiyjxiTxj−i=1∑nλi
约束条件: λ i ≥ 0 ,    i = 1 … … n \lambda_i\ge0,\; i=1……n\quad λi≥0,i=1……n (KKT条件)
∑ i = 1 n λ i y i = 0 \qquad\qquad\sum\limits_{i=1}^{n}\lambda_iy_i=0\quad i=1∑nλiyi=0 (求导所得) - 求解
w
∗
,
b
∗
,
y
w^*,b^*,y
w∗,b∗,y
w ∗ = ∑ i = 1 n λ i ∗ y i x i w^*=\sum\limits_{i=1}^{n}\lambda_i^*y_ix_i w∗=i=1∑nλi∗yixi
    
\quad\;\;
根据正、负样本分割平面方程知
m
i
n
(
w
T
x
i
+
b
)
=
1
\qquad min (w^Tx_i+b)=1\qquad
min(wTxi+b)=1
i
f
  
y
i
=
1
\quad if\;y_i=1
ifyi=1
m
a
x
(
w
T
x
i
+
b
)
=
−
1
\qquad max(w^Tx_i+b)=-1\qquad
max(wTxi+b)=−1
i
f
  
y
i
=
−
1
if\; y_i=-1
ifyi=−1
\qquad
故,
b
∗
=
−
1
2
[
max
y
i
=
−
1
(
(
w
∗
)
T
x
i
)
+
min
y
i
=
1
(
(
w
∗
)
T
x
i
)
]
b^*=-\frac{1}{2}[\max\limits_{y_i=-1}((w^*)^Tx_i)+\min\limits_{y_i=1}((w^*)^Tx_i)]
b∗=−21[yi=−1max((w∗)Txi)+yi=1min((w∗)Txi)]
    
y
=
s
i
g
n
(
(
w
∗
)
T
x
+
b
∗
)
\;\,\,\quad y=sign((w^*)^Tx+b^*)
y=sign((w∗)Tx+b∗)
   
=
s
i
g
n
(
∑
i
=
1
n
λ
i
∗
y
i
x
i
T
x
+
b
∗
)
\;\,\qquad =sign(\sum\limits_{i=1}^{n}\lambda_i^*y_ix_i^Tx+b^*)
=sign(i=1∑nλi∗yixiTx+b∗)
3.SVM(样本线性不可分)
(1) 引入松弛系数 ξ   ( ξ > 0 ) \xi\,(\xi>0) ξ(ξ>0)
(2)确定最优化目标及约束条件
- 最优化目标(间距最大)
最小化 ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 n ξ i ( C > 0 ) \frac{||w||^2}{2}+C\sum\limits_{i=1}^n\xi_i \quad(C>0) 2∣∣w∣∣2+Ci=1∑nξi(C>0) - 约束条件(保证正确分类)
i. 基本条件: ξ i ≥ 0 \xi_i\ge0 ξi≥0
ii. 对于正负样本,有
w ⃗ ∙ x ⃗ i + b ≥ 1 − ξ i \quad\vec w\bullet\vec x_i+b\ge1-\xi_i\qquad w∙xi+b≥1−ξi i f    y i = 1 if\; y_i=1 ifyi=1
w ⃗ ∙ x ⃗ i + b ≤ − 1 + ξ i   \quad\vec w\bullet\vec x_i+b\le-1+\xi_i\quad\, w∙xi+b≤−1+ξi i f    y i = − 1 if\;y_i=-1 ifyi=−1
iii. 综上,可得
y i ( w ⃗ ∙ x ⃗ i + b ) ≥ 1 − ξ i \quad y_i(\vec w\bullet\vec x_i+b)\ge1-\xi_i yi(w∙xi+b)≥1−ξi
\quad 即
y i ( w T x i + b ) ≥ 1 − ξ i \quad y_i(w^Tx_i+b)\ge1-\xi_i yi(wTxi+b)≥1−ξi
(3)原问题转化为对偶问题进行求解
- 构造拉格朗日乘子
L ( w , b , ξ , λ , μ ) = ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 n ξ i − ∑ i = 1 n λ i [ y i ( w T x i + b ) − 1 + ξ i ] − ∑ i = 1 n μ i ξ i L(w,b,\xi,\lambda,\mu)=\frac{||w||^2}{2}+C\sum\limits_{i=1}^n\xi_i -\sum\limits_{i=1}^n\lambda_i[y_i(w^Tx_i+b)-1+\xi_i]-\sum\limits_{i=1}^n\mu_i\xi_i L(w,b,ξ,λ,μ)=2∣∣w∣∣2+Ci=1∑nξi−i=1∑nλi[yi(wTxi+b)−1+ξi]−i=1∑nμiξi - 将原问题转化为对偶问题
min w , b , ξ   max λ , μ L ( w , b , ξ , λ , μ ) ⟺   max λ , μ min w , b , ξ L ( w , b , ξ , λ , μ ) \min\limits_{w,b,\xi}\,\max\limits_{\lambda,\mu}L(w,b,\xi,\lambda,\mu)\Longleftrightarrow\,\max\limits_{\lambda,\mu}\min\limits_{w,b,\xi}L(w,b,\xi,\lambda,\mu) w,b,ξminλ,μmaxL(w,b,ξ,λ,μ)⟺λ,μmaxw,b,ξminL(w,b,ξ,λ,μ) - 根据KKT条件(求解极小值点)
∇ w , b , ξ   L ( w , b , ξ , λ , μ ) = 0 \nabla_{w,b,\xi}\, L(w,b,\xi,\lambda,\mu)=0 ∇w,b,ξL(w,b,ξ,λ,μ)=0
⇔ ∂ L ∂ w = ∂ L ∂ b = ∂ L ∂ ξ = 0 \Leftrightarrow\frac{\partial L}{\partial w}=\frac{\partial L}{\partial b}=\frac{\partial L}{\partial \xi}=0 ⇔∂w∂L=∂b∂L=∂ξ∂L=0
分别求导,得: w = ∑ i = 1 n λ i y i x i , ∑ i = 1 n λ i y i = 0 , C − λ i − μ i = 0 w=\sum\limits_{i=1}^{n}\lambda_iy_ix_i\quad,\sum\limits_{i=1}^{n}\lambda_iy_i=0\quad,C-\lambda_i-\mu_i=0 w=i=1∑nλiyixi,i=1∑nλiyi=0,C−λi−μi=0 - 代入拉格朗日乘子式,并化简(求解极大值)
L ( w , b , ξ , λ , μ )   = w T w 2 + C ∑ i = 1 n ξ i − w T ∑ i = 1 n λ i y i x i − b ∑ i = 1 n λ i y i + ∑ i = 1 n λ i ( 1 − ξ i ) − ∑ i = 1 n μ i ξ i L(w,b,\xi,\lambda,\mu)\,=\frac{w^Tw}{2}+C\sum\limits_{i=1}^n\xi_i-w^T\sum\limits_{i=1}^{n}\lambda_iy_ix_i-b\sum\limits_{i=1}^{n}\lambda_iy_i+\sum\limits_{i=1}^{n}\lambda_i(1-\xi_i)-\sum\limits_{i=1}^n\mu_i\xi_i L(w,b,ξ,λ,μ)=2wTw+Ci=1∑nξi−wTi=1∑nλiyixi−bi=1∑nλiyi+i=1∑nλi(1−ξi)−i=1∑nμiξi
  = ∑ i = 1 n ξ i ( C − μ i ) + ∑ i = 1 n λ i ( 1 − ξ i ) − 1 2 ( ∑ i = 1 n λ i y i x i ) T ∑ i = 1 n λ i y i x i \qquad\qquad\,\qquad\qquad=\sum\limits_{i=1}^n\xi_i(C-\mu_i)+\sum\limits_{i=1}^{n}\lambda_i(1-\xi_i)-\frac{1}{2}(\sum\limits_{i=1}^{n}\lambda_iy_ix_i)^T\sum\limits_{i=1}^{n}\lambda_iy_ix_i =i=1∑nξi(C−μi)+i=1∑nλi(1−ξi)−21(i=1∑nλiyixi)Ti=1∑nλiyixi
 
=
∑
i
=
1
n
λ
i
−
1
2
∑
i
,
j
=
1
n
λ
i
λ
j
y
i
y
j
x
i
T
x
j
\qquad\qquad\,\qquad\qquad=\sum\limits_{i=1}^{n}\lambda_i-\frac{1}{2}\sum\limits_{i,j=1}^{n}\lambda_i\lambda_jy_iy_jx_i^Tx_j
=i=1∑nλi−21i,j=1∑nλiλjyiyjxiTxj
 
\qquad\,
此时,需要求解
L
(
w
,
b
,
ξ
,
λ
,
μ
)
L(w,b,\xi,\lambda,\mu)
L(w,b,ξ,λ,μ)关于
λ
,
μ
\lambda,\mu
λ,μ的极大值
 
\qquad\,
即,求解
−
L
(
w
,
b
,
ξ
,
λ
,
μ
)
-L(w,b,\xi,\lambda,\mu)
−L(w,b,ξ,λ,μ)关于
λ
,
μ
\lambda,\mu
λ,μ的极小值
- 对偶问题重新定义(求解
λ
i
∗
\lambda_i^*
λi∗)
最小化目标: − L ( w , b , ξ , λ , μ ) = 1 2 ∑ i , j = 1 n λ i λ j y i y j x i T x j − ∑ i = 1 n λ i -L(w,b,\xi,\lambda,\mu)=\frac{1}{2}\sum\limits_{i,j=1}^{n}\lambda_i\lambda_jy_iy_jx_i^Tx_j-\sum\limits_{i=1}^{n}\lambda_i −L(w,b,ξ,λ,μ)=21i,j=1∑nλiλjyiyjxiTxj−i=1∑nλi
约束条件: λ i ≥ 0 ,    i = 1 … … n     \lambda_i\ge0,\; i=1……n\qquad\;\,\quad λi≥0,i=1……n KKT条件
μ i ≥ 0 ,    i = 1 … … n      \qquad\qquad\mu_i\ge0,\; i=1……n\quad\;\;\qquad μi≥0,i=1……n KKT条件(1)
C − λ i − μ i = 0       \qquad\qquad C-\lambda_i-\mu_i=0\qquad\qquad\quad\;\;\, C−λi−μi=0 求导结果(2)
λ i ≤ C ,    i = 1 … … n    \qquad\qquad\lambda_i\le C,\; i=1……n\qquad\quad\; λi≤C,i=1……n 由(1)、(2)推出
∑ i = 1 n λ i y i = 0       \qquad\qquad\sum\limits_{i=1}^{n}\lambda_iy_i=0\qquad\qquad\qquad\quad\;\;\, i=1∑nλiyi=0 求导结果 - 求解
w
∗
,
b
∗
,
y
w^*,b^*,y
w∗,b∗,y
w ∗ = ∑ i = 1 n λ i ∗ y i x i w^*=\sum\limits_{i=1}^{n}\lambda_i^*y_ix_i w∗=i=1∑nλi∗yixi
    
\quad\;\;
根据正、负样本分割平面方程知
m
i
n
(
w
T
x
i
+
b
)
=
1
−
ξ
i
\qquad min (w^Tx_i+b)=1-\xi_i\qquad
min(wTxi+b)=1−ξi
i
f
  
y
i
=
1
\quad if\;y_i=1
ifyi=1
m
a
x
(
w
T
x
i
+
b
)
=
−
1
+
ξ
i
\qquad max(w^Tx_i+b)=-1+\xi_i\qquad
max(wTxi+b)=−1+ξi
i
f
  
y
i
=
−
1
if\; y_i=-1
ifyi=−1
    
\quad\;\;
故,
  
b
∗
=
−
1
2
[
max
y
i
=
−
1
(
(
w
∗
)
T
x
i
)
+
min
y
i
=
1
(
(
w
∗
)
T
x
i
)
]
\qquad\; b^*=-\frac{1}{2}[\max\limits_{y_i=-1}((w^*)^Tx_i)+\min\limits_{y_i=1}((w^*)^Tx_i)]
b∗=−21[yi=−1max((w∗)Txi)+yi=1min((w∗)Txi)]
    
y
=
s
i
g
n
(
(
w
∗
)
T
x
+
b
∗
)
\;\,\,\quad y=sign((w^*)^Tx+b^*)
y=sign((w∗)Tx+b∗)
   
=
s
i
g
n
(
∑
i
=
1
n
λ
i
∗
y
i
x
i
T
x
+
b
∗
)
\;\,\qquad =sign(\sum\limits_{i=1}^{n}\lambda_i^*y_ix_i^Tx+b^*)
=sign(i=1∑nλi∗yixiTx+b∗)
4.核函数
-
定义:
将特征向量 x x x提升维度,转变为 ϕ ( x ) \phi(x) ϕ(x)后,执行的内积运算
K ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) K(x_i,x_j)=\phi(x_i)^T\phi(x_j) K(xi,xj)=ϕ(xi)Tϕ(xj) -
分类及对比:
名称 | 公式 | 优点 | 缺点 |
---|---|---|---|
线性函数 | K ( x i , x j ) = x i T x j K(x_i,x_j)=x_i^Tx_j K(xi,xj)=xiTxj | 形式简单、运算效率高、解释性强 | 无法处理线性不可分问题 |
多项式核函数 | K ( x i , x j ) = ( γ x i T x j + c ) n K(x_i,x_j)=(\gamma x_i^Tx_j+c)^n K(xi,xj)=(γxiTxj+c)n | 拟合能力强 | 参数太多、 n n n较大时运算困难 |
高斯核函数 | K ( x i , x j ) = e x p ( − ( x i − x j ) 2 2 σ 2 ) K(x_i,x_j)=exp(-\frac{(x_i-x_j)^2}{2\sigma^2}) K(xi,xj)=exp(−2σ2(xi−xj)2) | 参数容易选择 | 解释性弱、计算速度慢、易过拟合 |