一.概述
参见:https://zhuanlan.zhihu.com/p/77750026
1.概念
(1)支持向量:
样本中距指定超平面最近的点称为"支持向量"(Support Vector)
(2)支持向量机:
"支持向量机"(Support Vector Machine;SVM)是常用的监督学习分类算法,最早由Vladimir N. Vapnik和Alexey Ya. Chervonenkis于1963年
提出.而目前的版本由Corinna Cortes和Vapnik于1993年提出.在2012年深度学习出现以前,SVM被认为是机器学习中最成功,表现最好的算法.其基本
思想是找到1个"超平面"(Hyper Plane)使2个类别的样本分别位于超平面2侧.为使该超平面更具健壮性,该超平面应使支持向量到该超平面的距离最大,
称为"最大间隔超平面"(Maximum Margin Hyperplane;MMH).基于该思想,SVM有时也被称为"大间距分类器"(Large Margin Classifier)
(3)线性可分与线性不可分:
设 D 0 , D 1 D_0,D_1 D0,D1是 n n n维欧氏空间中的2个点集.若 ∃ w ∈ R n , b ∈ R ∃w∈R^n,b∈R ∃w∈Rn,b∈R,使对 ∀ x i ∈ D 0 ∀x_i∈D_0 ∀xi∈D0有 w ⋅ x i + b > 0 w\,·x_i+b>0 w⋅xi+b>0,而对 ∀ x j ∈ D 1 ∀x_j∈D_1 ∀xj∈D1有 w ⋅ x j + b < 0 w\,·x_j+b<0 w⋅xj+b<0,则称 D 0 , D 1 D_0,D_1 D0,D1线性可分(Linearly Separable);否则,称 D 0 , D 1 D_0,D_1 D0,D1线性不可分(Linearly Inseparable)
2.公式推导
(1)公式推导:
设超平面为 w T ⋅ x + b = 0 w^T·x+b=0 wT⋅x+b=0其中向量 w = ( w 1 , w 2 . . . w n ) T w=(w_1,w_2...w_n)^T w=(w1,w2...wn)T表示权重(Weight)或超平面的方向,b表示偏好(Bias)或超平面距原点的距离.由于支持向量到超平面的距离为 d d d,故 { w T ⋅ x + b ∣ ∣ w ∣ ∣ ≥ d ( y = 1 ) w T ⋅ x + b ∣ ∣ w ∣ ∣ ≤ − d ( y = − 1 ) \begin{cases}\frac{w^T·\,x+b}{||w||}≥d\,(y=1)\\\frac{w^T·\,x+b}{||w||}≤-d\,(y=-1)\end{cases} {∣∣w∣∣wT⋅x+b≥d(y=1)∣∣w∣∣wT⋅x+b≤−d(y=−1)转化得到 { w T ⋅ x + b ∣ ∣ w ∣ ∣ ⋅ d ≥ 1 ( y = 1 ) w T ⋅ x + b ∣ ∣ w ∣ ∣ ⋅ d ≤ − 1 ( y = − 1 ) \begin{cases}\frac{w^T·\,x+b}{||w||·\,d}≥1\,(y=1)\\\frac{w^T·\,x+b}{||w||·\,d}≤-1\,(y=-1)\end{cases} {∣∣w∣∣⋅dwT⋅x+b≥1(y=1)∣∣w∣∣⋅dwT⋅x+b≤−1(y=−1)令 ∣ ∣ w ∣ ∣ ⋅ d = 1 ||w||\,·d=1 ∣∣w∣∣⋅d=1(这对目标函数的优化没有问题),得到 { w T ⋅ x + b ≥ 1 ( y = 1 ) w T ⋅ x + b ≤ − 1 ( y = − 1 ) \begin{cases}w^T·\,x+b≥1\,(y=1)\\w^T·\,x+b≤-1\,(y=-1)\end{cases} {wT⋅x+b≥1(y=1)wT⋅x+b≤−1(y=−1)将方程组合并为 y ( w T ⋅ x + b ) = ∣ w T ⋅ x + b ∣ ≥ 1 y(w^T·x+b)=|w^T·x+b|≥1 y(wT⋅x+b)=∣wT⋅x+b∣≥1
由于 d = ∣ w T ⋅ x + b ∣ ∣ ∣ w ∣ ∣ d=\frac{|w^T·x+b|}{||w||} d=∣∣w∣∣∣wT⋅x+b∣,故 d = y ( w T ⋅ x + b ) ∣ ∣ w ∣ ∣ d=\frac{y(w^T·x+b)}{||w||} d=∣∣w∣∣y(wT⋅x+b)于是目标为 max 2 y ( w T ⋅ x + b ) ∣ ∣ w ∣ ∣ \max\,{\frac{2y(w^T·x+b)}{||w||}} max∣∣w∣∣2y(wT⋅x+b)其中系数2是为了便于推导而添加的.将目标转化为 max r = 2 ∣ ∣ w ∣ ∣ \max\,{r=\frac{2}{||w||}} maxr=∣∣w∣∣2其中 r r r称为间隔(Margin).再转化为 min ∣ ∣ w ∣ ∣ 2 2 ( 1 ) s . t . y i ( w T ⋅ x i + b ) ≥ 1 \qquad\qquad\:\:\min{\frac{||w||^2}{2}}\qquad(1)\\s.t.\quad y_i(w^T·x_i+b)≥1 min2∣∣w∣∣2(1)s.t.yi(wT⋅xi+b)≥1其中平方是为了便于计算而添加的.通过拉格朗日乘数法可将 ( 1 ) (1) (1)式转换为对偶问题(Dual Problem).具体来说,该问题的拉格朗日函数为 L ( ω , b , α ) = ∣ ∣ w ∣ ∣ 2 2 + ∑ i = 1 m α i [ 1 − y i ( ω T x i + b ) ] ( 2 ) L(ω,b,α)=\frac{||w||^2}{2}+\displaystyle\sum_{i=1}^mα_i[1-y_i(ω^Tx_i+b)]\qquad(2) L(ω,b,α)=2∣∣w∣∣2+i=1∑mαi[1−yi(ωTxi+b)](2)其中 α = ( α 1 , α 2 . . . α m ) α=(α_1,α_2...α_m) α=(α1,α2...αm).当 ∂ L ( ω , b , α ) ∂ ω = ∂ L ( ω , b , α ) ∂ b = 0 \frac{\partial{L(ω,b,α)}}{\partial{ω}}=\frac{\partial{L(ω,b,α)}}{\partial{b}}=0 ∂ω∂L(ω,b,α)=∂b∂L(ω,b,α)=0时,有 ω = ∑ i = 1 m α i y i x i ( 3 ) ∑ i = 1 m α i y i = 0 ( 4 ) ω=\displaystyle\sum_{i=1}^mα_iy_ix_i\qquad(3)\\\displaystyle\sum_{i=1}^mα_iy_i=0\qquad(4) ω=i=1∑mαiyixi(3)i=1∑mαiyi=0(4)将 ( 3 ) , ( 4 ) (3),(4) (3),(4)式带入 L L L中即可消去 ω , b ω,b ω,b.再考虑 ( 4 ) (4) (4)式的约束,即可得到 ( 1 ) (1) (1)式的对偶问题 max α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j s . t . { ∑ i = 1 m α i y i = 0 α i ≥ 0 ( i = 1 , 2... m ) \underset{α}{\max}\displaystyle\sum_{i=1}^mα_i-\frac{1}{2}\displaystyle\sum_{i=1}^m\displaystyle\sum_{j=1}^mα_iα_jy_iy_jx_i^Tx_j\\s.t.\begin{cases}\displaystyle\sum_{i=1}^mα_iy_i=0\\α_i≥0\,(i=1,2...m)\end{cases} αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t.⎩⎪⎨⎪⎧i=1∑mαiyi=0αi≥0(i=1,2...m)解出 α α α后可进一步求出 ω , b ω,b ω,b,从而求得 M M H MMH MMH为 M M H = ∑ i = 1 m α i y i x i x T + b MMH=\displaystyle\sum_{i=1}^mα_iy_ix_ix^T+b MMH=i=1∑mαiyixixT+b其中 y i y_i yi为支持向量 x i x_i xi的类别标记, α i , b α_i,b αi,b为通过上式解得的参数
(2)与逻辑回归的关系:
参见:http://www.ai-start.com/ml2014/html/week7.html
3.特性:
①模型的算法复杂度由支持向量的个数决定,而不由数据的维度决定,因而不容易产生过拟合
②训练出的模型完全依赖于支持向量,即使去除数据集中所有非支持向量的点,得到的模型也不变
③支持向量较少时得到的模型较容易泛化
二.处理线性不可分问题
1.基本思想:
处理对线性不可分问题基本思想是先将低维的"输入空间"(Input Space)映射到高维的"特征空间"(Feature Space),以使问题线性可分,再在特征空
间中寻找MMH.设x为原样本点,则映射后的新样本点为f(x)=ω·φ(x)+b
2.核方法
(1)概念:
使用"核方法"(Kernel Trick)的目的是