文章目录
一、Support Vector Machine
- 要解决的问题:什么样的决策边界才是最好的呢?
- 特征数据本身如果就很难分,怎么办呢?
- 计算复杂度怎么样?能实际应用吗?
- 目标:基于上述问题对SVM进行推导
- 决策边界:选出来离边界上的点最远的决策面
二、距离的计算
假设在决策平面 L L L上有两点 x ′ x' x′和 x ′ ′ x'' x′′,满足以下条件:
- w T x ′ = − b , w T x ′ ′ = − b w^Tx'=-b,w^Tx''=-b wTx′=−b,wTx′′=−b
- w ⊥ L w\bot L w⊥L,即: [ w T ( x ′ ′ − x ′ ) ] = 0 (1) \begin{bmatrix} w^T(x''-x') \end{bmatrix}=0 \tag{1} [wT(x′′−x′)]=0(1)
- 平面外一点 x x x到该平面 L L L的距离为: d i s t a n c e = Proj L ( x − x ′ ) (2) distance=\text{Proj}_L(x-x')\tag{2} distance=ProjL(x−x′)(2)化简可得: d i s t a n c e ( x , b , w ) = ∣ w T ∣ ∣ w ∣ ∣ ( x − x ′ ) ∣ = 1 ∣ ∣ w ∣ ∣ ∣ w T x + b ∣ (3) distance(x,b,w)=\left|\frac{w^T}{||w||}(x-x')\right|=\frac{1}{||w||}|w^Tx+b|\tag{3} distance(x,b,w)=∣∣∣∣∣∣w∣∣wT(x−x′)∣∣∣∣=∣∣w∣∣1∣wTx+b∣(3)
三、数据标签定义
- 数据集: ( X 1 , Y 1 ) , ( X 2 , Y 2 ) , ⋯ , ( X n , Y n ) (X_1,Y_1),(X_2,Y_2),\cdots,(X_n,Y_n) (X1,Y1),(X2,Y2),⋯,(Xn,Yn)
- Y Y Y为样本的类别:当 X X X为正例时, Y = + 1 Y=+1 Y=+1;当 X X X为负例时, Y = − 1 Y=-1 Y=−1
- 决策方程: y ( x ) = w T Φ ( x ) + b y(x)=w^T\Phi(x)+b y(x)=wTΦ(x)+b(其中 Φ ( x ) \Phi(x) Φ(x)是对数据做了核变换,使低维不可分数据映射为高维可分数据) ⟹ y ( x i ) > 0 ⟺ y i = + 1 y ( x i ) < 0 ⟺ y i = − 1 ⟹ y i ⋅ y ( x i ) > 0 (4) \implies \begin{aligned}&y(x_i)>0\iff y_i=+1\\&y(x_i)<0\iff y_i=-1\end{aligned}\implies y_i\cdot y(x_i)>0\tag{4} ⟹y(xi)>0⟺yi=+1y(xi)<0⟺yi=−1⟹yi⋅y(xi)>0(4)
四、优化的目标
- 通俗解释:找到一条线( w w w和 b b b),使得离该线最近的点能够最远
- 将点到直线的距离化简得: y i ⋅ ( w T Φ ( x i ) + b ) ∣ ∣ w ∣ ∣ (5) \frac{y_i\cdot\left(w^T\Phi(x_i)+b\right)}{||w||}\tag{5} ∣∣w∣∣yi⋅(wTΦ(xi)+b)(5)(由于 y i ⋅ y ( x i ) > 0 y_i\cdot y(x_i)>0 yi⋅y(xi)>0,所以将绝对值展开原式依旧成立)
五、目标函数
- 放缩变换:对于决策方程 ( w , b ) (w,b) (w,b)可以通过放缩使得其结果值 ∣ Y ∣ ≥ 1 ⟹ y i ⋅ ( w T Φ ( x i ) + b ) ≥ 1 |Y|\geq1\implies y_i\cdot\left(w^T\Phi(x_i)+b\right)\geq1 ∣Y∣≥1⟹yi⋅(wTΦ(xi)+b)≥1
- 优化目标: arg max w , b { 1 ∣ ∣ w ∣ ∣ min i [ y i ⋅ ( w T ⋅ Φ ( x i ) + b ) ] } (6) \argmax_{w,b}\left\{\frac{1}{||w||}\min_i\left[y_i\cdot\left(w^T\cdot\Phi(x_i)+b\right)\right]\right\}\tag{6} w,bargmax{∣∣w∣∣1imin[yi⋅(wT⋅Φ(xi)+b)]}(6)由于 y i ⋅ ( w T Φ ( x i ) + b ) ≥ 1 y_i\cdot\left(w^T\Phi(x_i)+b\right)\geq1 yi⋅(wTΦ(xi)+b)≥1,只需要考虑 arg max w , b 1 ∣ ∣ w ∣ ∣ \argmax_{w,b}\frac{1}{||w||} w,bargmax∣∣w∣∣1
- 当前目标: max w , b 1 ∣ ∣ w ∣ ∣ \max_{w,b}\frac{1}{||w||} maxw,b∣∣w∣∣1,约束条件: y i ⋅ ( w T Φ ( x i ) + b ) ≥ 1 y_i\cdot\left(w^T\Phi(x_i)+b\right)\geq1 yi⋅(wTΦ(xi)+b)≥1
- 常规套路:将求解极大值问题转换成极小值问题 ⟹ min w , b 1 2 ∣ ∣ w ∣ ∣ 2 \implies\min_{w,b}\frac12||w||^2 ⟹minw,b21∣∣w∣∣2
- 应用拉格朗日乘子法求解
六、拉格朗日乘子法
- 原式转换: L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n α i ( y i ( w T ⋅ Φ ( x i ) + b ) − 1 ) (7) L(w,b,\alpha)=\frac12||w||^2-\sum_{i=1}^n\alpha_i(y_i(w^T\cdot\Phi(x_i)+b)-1)\tag{7} L(w,b,α)=21∣∣w∣∣2−i=1∑nαi(yi(wT⋅Φ(xi)+b)−1)(7)约束条件: y i ⋅ ( w T Φ ( x i ) + b ) ≥ 1 (8) y_i\cdot\left(w^T\Phi(x_i)+b\right)\geq1\tag{8} yi⋅(wTΦ(xi)+b)≥1(8)
七、SVM求解
- 由对偶性质可得: min w , b max α L ( w , b , α ) → max α min w , b L ( w , b , α ) (9) \min_{w,b}\max_\alpha L(w,b,\alpha)\to\max_\alpha\min_{w,b} L(w,b,\alpha)\tag{9} w,bminαmaxL(w,b,α)→αmaxw,bminL(w,b,α)(9)
- 对 w w w求偏导: ∂ L ∂ w = 0 ⟹ w = ∑ i = 1 n α i y i Φ ( x i ) (10) \frac{\partial L}{\partial w}=0\implies w=\sum_{i=1}^n\alpha_iy_i\Phi(x_i)\tag{10} ∂w∂L=0⟹w=i=1∑nαiyiΦ(xi)(10)对 b b b求偏导: ∂ L ∂ b = 0 ⟹ 0 = ∑ i = 1 n α i y i (11) \frac{\partial L}{\partial b}=0\implies 0=\sum_{i=1}^n\alpha_iy_i\tag{11} ∂b∂L=0⟹0=i=1∑nαiyi(11)
- 代入原式可得: L ( w , b , α ) = 1 2 w T w − w T ∑ i = 1 n α i y i Φ ( x i ) − b ∑ i = 1 n α i y i + ∑ 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 ) = ∑ i = 1 n α i − 1 2 ∑ i = 1 , j = 1 n α i α j y i y j Φ T ( x i ) Φ ( x j ) (12) L(w,b,\alpha)=\frac12w^Tw-w^T\sum_{i=1}^n\alpha_iy_i\Phi(x_i)-b\sum_{i=1}^n\alpha_iy_i+\sum_{i=1}^n\alpha_i\\=\sum_{i=1}^n\alpha_i-\frac12(\sum_{i=1}^n\alpha_iy_i\Phi(x_i))^T\sum_{i=1}^n\alpha_iy_i\Phi(x_i)\\=\sum_{i=1}^n\alpha_i-\frac12\sum_{i=1,j=1}^n\alpha_i\alpha_jy_iy_j\Phi^T(x_i)\Phi(x_j)\tag{12} L(w,b,α)=21wTw−wTi=1∑nαiyiΦ(xi)−bi=1∑nαiyi+i=1∑nαi=i=1∑nαi−21(i=1∑nαiyiΦ(xi))Ti=1∑nαiyiΦ(xi)=i=1∑nαi−21i=1,j=1∑nαiαjyiyjΦT(xi)Φ(xj)(12)完成了第一步求解 min w , b L ( w , b , α ) \min_{w,b}L(w,b,\alpha) minw,bL(w,b,α)
- 继续对 α \alpha α求极大值: max α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( Φ ( x i ) ⋅ Φ ( x j ) ) (13) \max_\alpha\sum_{i=1}^n\alpha_i-\frac12\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\left(\Phi(x_i)\cdot\Phi(x_j)\right)\tag{13} αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyj(Φ(xi)⋅Φ(xj))(13)条件: ∑ i = 1 n α i y i = 0 α i ≥ 0 (14) \begin{aligned}&\sum_{i=1}^n\alpha_iy_i=0\\&\alpha_i\geq0\end{aligned}\tag{14} i=1∑nαiyi=0αi≥0(14)
- 极大值转换成求极小值: min α 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( Φ ( x i ) ⋅ Φ ( x j ) ) − ∑ i = 1 n α i (15) \min_\alpha\frac12\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\left(\Phi(x_i)\cdot\Phi(x_j)\right)-\sum_{i=1}^n\alpha_i\tag{15} αmin21i=1∑nj=1∑nαiαjyiyj(Φ(xi)⋅Φ(xj))−i=1∑nαi(15)条件: ∑ i = 1 n α i y i = 0 α i ≥ 0 (16) \begin{aligned}&\sum_{i=1}^n\alpha_iy_i=0\\&\alpha_i\geq0\end{aligned}\tag{16} i=1∑nαiyi=0αi≥0(16)
八、soft-margin
- 软间隔:有时候数据中有一些噪音点,如果考虑它们那么得出的决策边界往往不太好
- 为了解决该问题,引入松弛因子: y i ⋅ ( w ⋅ x i + b ) ≥ 1 − ξ i (17) y_i\cdot(w\cdot x_i+b)\geq1-\xi_i\tag{17} yi⋅(w⋅xi+b)≥1−ξi(17)
- 新的目标函数: min 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ξ i (18) \min\frac12||w||^2+C\sum_{i=1}^n\xi_i\tag{18} min21∣∣w∣∣2+Ci=1∑nξi(18)
- 当 C C C趋近于很大时:意味着分类严格不能有错误;当 C C C趋近于很小时:意味着可以有更大的错误容忍
- C C C是我们需要指定的一个参数
九、低维不可分问题
- 目标:找到一种变换的方法,也就是 Φ ( X ) \Phi(X) Φ(X),使其数据变成高维可分问题
- 问题:如果将维数扩展到非常高的时候,计算复杂度会爆炸性增长
- 方法:支持向量机通过某非线性变换 Φ ( X ) \Phi(X) Φ(X),将输入空间映射到高维特征空间。特征空间的维数可能非常高。如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K ( x , x ′ ) K(x,x') K(x,x′),它恰好等于在高维空间中这个内积,即 K ( x , x ′ ) = < Φ ( x ) , Φ ( x ′ ) > K( x, x') =<\Phi(x),\Phi(x')> K(x,x′)=<Φ(x),Φ(x′)>。那么支持向量机就不用计算复杂的非线性变换,而由这个函数 K ( x , x ′ ) K(x, x') K(x,x′)直接得到非线性变换的内积,大大简化了计算。这样的函数 K(x, x′) 称为核函数。
- 常用核函数:
- 高斯核函数: K ( X , Y ) = e x p { − ∣ ∣ X − Y ∣ ∣ 2 2 σ 2 } (19) K(X,Y)=exp\left\{-\frac{||X-Y||^2}{2\sigma^2}\right\}\tag{19} K(X,Y)=exp{−2σ2∣∣X−Y∣∣2}(19)
十、参考文献
[1] 唐宇迪. 跟着迪哥学Python数据分析与机器学习实战[M]. 北京: 人民邮电出版社, 2019: 260-284.