支持向量机SVM

前言

对于二分类问题,SVM的思想是将样本映射到高维空间之后,寻找超平面将样本进行划分,并由此产生许多相关的算法。

一、KKT条件

对于优化问题[1]

支持向量机SVM_第1张图片

使用乘子法,相应的拉格朗日函数为,

其中,Karush-Kuhn-Tucher条件(简记为KKT)条件为,

支持向量机SVM_第2张图片

二、C-SVC

支持向量机SVM_第3张图片

对于二分类问题(示意图见上图),在线性SVM的基础上引入核函数,优化的目标函数为,

支持向量机SVM_第4张图片

当引入软间隔并考虑正则化之后,优化的目标函数为,

支持向量机SVM_第5张图片

通过拉格朗日乘子法,得到拉格朗日函数为,

支持向量机SVM_第6张图片

对w,b,ξ等分量求导有,

代入原问题中即可得到其对偶问题为,

支持向量机SVM_第7张图片

特别地,根据KKT条件有,

支持向量机SVM_第8张图片

从这些条件可以得到下面的结论(ps:因为不支持行内公式,省略下表 i)

  • 当 α = 0 时,μ = C,因此 ξ = 0,y f(x) ≥ 1,此时样本点被正确分类,对目标优化函数没有影响。
  • 当 0 < α < C 时,y f(x) = 1 - ξ, μ > 0,ξ = 0,因此 y f(x) = 1,即样本点恰好在最大分隔的边界上。
  • 当 α = C 时,y f(x) = 1 - ξ,μ = 0,此时若 ξ ≤ 1,则样本点落在最大间隔内部;若 ξ > 1,则样本点被错误分类。

后两种情况对目标优化函数有贡献,是样本中的支持向量,同时也可以看出当样本点落在间隔内部和被错误分类的时,会受到“惩罚”。

最终得到的决策函数为,

支持向量机SVM_第9张图片

三、ν-SVC

Bernhard Schölkopf[2]等人提出了一种改进的算法优化的目标函数为,

支持向量机SVM_第10张图片

通过拉格朗日乘子法,得到拉格朗日函数为,

支持向量机SVM_第11张图片

对w,b,ξ,ρ等分量求导有,

支持向量机SVM_第12张图片

代入原问题中即可得到其对偶问题为,

支持向量机SVM_第13张图片

特别地,根据KKT条件有,

支持向量机SVM_第14张图片

当 ρ > 0 时,类似于上面的分析,从这些条件可以得到下面的结论(ps:因为不支持行内公式,省略下表 i)

  • 当 α = 0 时,μ = 1/L,因此 ξ = 0,y f(x) ≥ ρ,此时样本点被正确分类,对目标优化函数没有影响。
  • 当 0 < α < 1/L 时,y f(x) = ρ - ξ, μ > 0,ξ = 0,因此 y f(x) = ρ,即样本点恰好在最大分隔的边界上。
  • 当 α = 1/L 时,y f(x) = ρ - ξ,μ = 0,此时若 ξ ≤ ρ,则样本点落在最大间隔内部;若 ξ > ρ,则样本点被错误分类。

因此,我们可以得到参数 ν 具备如下的意义:

  • ν是样本点被错误分类所占比例的上界
  • ν是样本点中支持向量所占比例的下界

第一条是因为当 ρ > 0 时,λ = 0,因此 ∑ α = ν,设样本点被错误分类的比例为 s,即被错误分类的样本点数目为 s*L,从前面可以知道,样本点被错误分类,必有 α = 1/L,则有,
ν = ∑ α ≥ (s*L) * (1/L) = s,
故 s 最大值为 ν

类似地,设支持向量所占比例为 t,支持向量的数目为 t*L,由前面可以,非支持向量 α = 0,支持向量对应的 α 最大为 1/L,因此,
ν = ∑ α ≤ (t*L) * (1/L) = t,
故 t 最小值为 ν

另外,文中[2]证明了在特定的条件下,ν 等于样本点被错误分类所占比例和支持向量的比例。最终得到的决策函数与C-SVM中的一致。

四、One-Class SVM

4.1 One-Class SVM

支持向量机SVM_第15张图片

SVM算法的一个重要分支是One-Class SVM[3],目标是将样本划分成高密度区域(对应+1)和其他区域(示意图见上图)。该学习算法属于无监督学习范畴,可用于解决检测异常样本的问题。其优化目标函数为,

支持向量机SVM_第16张图片

上述形式较难直接理解。如果一个超平面可以将高密度样本点分到一侧,作者在此文中[4]证明了满足以下两个性质的超平面是唯一的:
(1)将样本点和原点分离,
(2)超平面离原点的距离最大。
并且可以通过求解下述优化问题得到:
min ||w||,s.t. w * x ≥ ρ,
其中 ρ > 0 给定。

因此,算法的优化目标函数可以看成上述优化问题考虑软间隔并应用了正则化之后的结果。这样的处理方式与二分类问题的SVM寻找最大间隔的作用是一致的,即对噪声的容忍度较高,算法比较稳定。事实上,从另一个角度会更好理解这个算法,先来看它的对偶问题。

通过拉格朗日乘子法,得到拉格朗日函数为,

支持向量机SVM_第17张图片

对w,ξ,ρ等分量求导有,

代入原问题中即可得到其对偶问题为,

支持向量机SVM_第18张图片

结合KKT条件,类似于前面的分析,可以得出参数 ν 的意义:

  • ν是样本点被错误分类所占比例的上界
  • ν是样本点中支持向量所占比例的下界

最终得到的决策函数为,

支持向量机SVM_第19张图片

4.2 SVDD

SVDD(Support Vector Domain Description)[5][6]是通过将样本点投影到高维空间,寻找半径最小的球将样本包含在内。

支持向量机SVM_第20张图片

使用拉格朗日乘子法构造其对偶问题为,

支持向量机SVM_第21张图片

SVDD的决策函数为,

支持向量机SVM_第22张图片

当核函数比如取成高斯核时,K(x, x)是常数,此时SVDD的对偶问题与One-Class SVM的对偶问题完全一致,决策函数也一致。从这个角度,更容易理解One-Class SVM的算法。

五、ε-SVR

支持向量机SVM_第23张图片

支持向量回归[1][7](Support Vector Regression)目标是得到 f(x) 与 z 的偏差尽量在 2ε� 的间隔带中的模型,其优化函数为,

支持向量机SVM_第24张图片

使用拉格朗日乘子法构造其对偶问题为,

支持向量机SVM_第25张图片

对各参数分量求导有,

支持向量机SVM_第26张图片

代入原问题中即可得到其对偶问题为,

支持向量机SVM_第27张图片

根据KKT条件有,

支持向量机SVM_第28张图片

从上面的条件可以得到以下结论:

  • 落在间隔带中时,f(x) - y < ε,y - f(x) < ε,此时 α = 0,β = 0,ξ = 0, λ = 0,即不计入损失函数中,因此若 ( α - β ) ≠ 0,样本点必不在间隔带中(能使 ( α - β ) ≠ 0 的样本点是支持向量)。
  • 当落在间隔边界上时,比如 f(x) - y = ε,此时仍有 ξ = 0,λ = 0,即也不计入损失函数中。
  • 当样本点落在间隔带外时,比如 ξ > 0,此时 λ = 0, β = 0 ,α = C。
  • 综合前面几条,若 0 < α < C,则样本点在 f(x) - y = ε 间隔上,且 β = 0;若 0 < β < C,则样本点在 f(x) - y = -ε 间隔上,且 α = 0。

最终得到的决策函数为,

支持向量机SVM_第29张图片

六、ν-SVR

ν-SVR[2]类似于ν-SVC,引入了参数ν,优化的目标函数为,

支持向量机SVM_第30张图片

对偶问题为,

支持向量机SVM_第31张图片

结合KKT条件,类似于前面的分析,可以得出参数 ν 的意义:

  • ν是位于 2ε 带宽外的样本点所占比例的上界
  • ν是样本点中支持向量所占比例的下界

最终得到的决策函数与 ε-SVR 中的一致。

附录——我的其他博客

支持向量机的开源包LIBSVM
深度神经网络Google Inception Net-V3结构图
深度神经网络ResNet-V2结构图
从计算流体力学的角度理解循环神经网络


  1. 周志华. 机器学习. 清华大学出版社. 2016. ↩ ↩

  2. Bernhard Schölkopf, Alex J. Smola. New Support Vector Algorithms. Neural Computation, 2000. http://www.stat.purdue.edu/~yuzhu/stat598m3/Papers/NewSVM.pdf ↩ ↩ ↩

  3. Bernhard Schölkopf, Robert Williamson, Alex Smola, etc. Support Vector Method for Novelty Detection.
    https://papers.nips.cc/paper/1723-support-vector-method-for-novelty-detection.pdf ↩

  4. Bernhard Schölkopf, John C. Platt, John Shawe-Taylor, etc. Estimating the Support of a High-Dimensional Distribution. Neural Computation, 2001.
    http://users.cecs.anu.edu.au/~williams/papers/P132.pdf ↩

  5. David M. J. Tax, Robert P. W. Duin. Support vector data description. Machine Learning,
    54(1):45–66, 2004.
    https://link.springer.com/content/pdf/10.1023%2FB%3AMACH.0000008084.60811.49.pdf ↩

  6. Chang Wei-Cheng, Lee Ching-Pei, Lin Chih-Jen. A Revisit to Support Vector Data Description.
    https://www.csie.ntu.edu.tw/~cjlin/papers/svdd.pdf ↩

  7. Alex J. Smola, Bernhard Schölkopf. A Tutorial on Support Vector Regression. 1988.
    http://www.stat.purdue.edu/~yuzhu/stat598m3/Papers/NewSVM.pdf ↩

你可能感兴趣的:(支持向量机SVM)