致敬真神——SVM

本文详细介绍了支持向量机(SVM)的基本原理,包括线性分类器SVM、软间隔处理噪声数据以及核技巧应对非线性问题。通过数学推导,展示了SVM如何通过最大化间隔实现最优分类,并引入软间隔解决非严格线性可分问题。同时,介绍了核函数的概念,解释了如何在高维特征空间中实现非线性分类,以适应各种复杂数据集。
摘要由CSDN通过智能技术生成

摘要

       对于Support Vector Machine(SVM)你是否停留在调用相关算法包的层面?是否每次想要加深对SVM的理解时却被枯燥的公式劝退?本文将以SVM发展历史时间线为文章组织结构,让您理解SVM基本原理、发展的内在需求以及其公式背后的意义。

0 引言

       SVM自1964年被Vapnik等人提出以来,至今已经成为了重要的基准(Base Line)分类器之一。SVM最开始是被作为线性分类器提出来的,其最大间隔(Max Margin)的算法特性 [ 1 ] ^{[1]} [1]使得SVM拥有非常好的泛化能力,但由于在现实世界中数据并不是都拥有如此强的规律(存在许多噪音),因此研究者们又提出了软间隔(Soft Margin)来解决非严格线性可分的情形(即总体上仍然是线性可分的)。纵使软间隔能够一定程度缓解非线性问题,但归根到底还是总体还是线性可分的,核函数(Kernal Function)的应用让SVM强大的分类能力得以拓展到非线性数据领域。至此,拥有核技巧的SVM才真正成为了机器学习里的通用技术。

       为了读者能够全面的了解SVM的基本原理,因此本文以SVM发展的历史过程重要节点作为文章组织结构,第一节将会介绍线性SVM,以及如何求其最优化解;第二节软间隔如何解决非严格线性问题;第三节阐述SVM核技巧如何适应非线性可分数据;第四节是对全文的总结。在接下来的阐述SVM基本原理的过程中是一定会伴随的数学公式的推导(因为SVM的背后有非常漂亮的数学理论在支撑着),但是尽量会使其通俗易懂,并且会保证数学推导部分的独立,方便读者日后查阅。

       此外,周志华老师的巨作机器学习 [ 3 ] ^{[3]} [3](后文简称:西瓜书)对SVM的讲解是非常的好的,可惜的是西瓜书篇幅有限没办法讲解细节,拙文尝试尽量弥补这个缺陷,因此本文中所有公式均与西瓜书对标。笔者才疏学浅,文中有不当之处还烦请读者雅正。

1 线性分类器SVM

1.1 基本原理

       分类是机器学习中一项重要的任务,SVM最开始提出的目的就是为了解决线性分类问题。考虑一个最简单的分类任务,如图1.1所示,仅有两个数据代表点 ( 0 , 0 ) ( 1 , 1 ) (0, 0) (1, 1) (0,0)(1,1)分别对应负类和正类 [ 注 1 ] ^{[注1]} [1]。分类器要做的就是找到一个决策平面(SVM中称超平面: Hyper Plane)然后将两类有效区分开,不同的分类器会导出不同的决策平面,而泛化误差就是决定哪个决策平面更优的一个量化指标。SVM的目标很明确就是最大化泛化误差,而Vapnik的想法就是找到一个能够提供最大容错空间的决策平面,而这个最大容错空间就是最大化间隔 [ 1 ] ^{[1]} [1]。SVM要解决以下两个问题:

  1. 如何定义样本点到超平面的距离?

  2. 如何根据距离来正确分类样本?


图1.1: 简单二分类的情形

问题1: 如何定义样本点到超平面的距离?

在中学所学的点到平面的距离公式可描述为:

r i = ∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ , i = 1 , 2 , ⋯   , m ( 1.1 ) r_i = \frac{|w^Tx_i+b|}{||w||} , \qquad \qquad i=1,2, \cdots, m \quad (1.1) ri=wwTxi+b,i=1,2,,m(1.1)

其中 w T x + b w^Tx+b wTx+b是一个超平面,当然在二维特征空间中就是一条线,而 w w w是超平面的法向量矩阵, b b b是超平面距原点的距离。显然所有的 x i x_i xi到超平面的都可以使用公式(1.1)求出。

问题2: 如何根据距离来正确分类样本?

常用的方法是根据某个阈值归并所属类,即

f ( x ) = { w T x i + b ≥ + 1 , y i = + 1 w T x i + b ≤ − 1 , y i = − 1 ( 1.2 ) f(x)=\left\{ \begin{aligned} & w^Tx_i+b \geq +1, & y_i=+1\\ & w^Tx_i+b \leq -1, & y_i=-1 \end{aligned} \right. \qquad (1.2) f(x)={ wTxi+b+1,wTxi+b1,yi=+1yi=1(1.2)

对于一个样本点 x i x_i xi,如果它到此超平面的距离大于等于1则归为正类,对负类来说情况即相反。至于公式(1.2)为什么将阈值设置为1,我的一个不成熟的想法是:单位数字1能够提供很好的运算便利,且具体的间隔变化可由 w w w来控制。

但分段函数与不等式计算起来非常麻烦,对于分段函数很直观的可以将公式(1.2)改写成如下形式:

y i ( w T x i + b ) ≥ 1 , i = 1 ⋯ m ( 1.3 ) y_i(w^Tx_i+b) \geq 1, \qquad \qquad i=1 \cdots m \quad (1.3) yi(wTxi+b)1,i=1m(1.3)

而对于解决不等式Vapnik就提出了一个非常巧妙的方式,即只关注每一类中的临界样本点(值)到超平面的距离,而其他样本点到此平面是一定大于临界样本点的,即支持向量(Support Vectors)。而这些支持向量到超平面的距离就是我们要找的间隔。用数学语言描述这段话即:

y i ( w T x i + b ) ≥ 1 → y s ( w T x s + b ) = 1 , i ∈ D , s ∈ s u p p o r t v e c t o r s y_i(w^Tx_i+b) \geq 1 \to y_s(w^Tx_s+b) = 1, \qquad i \in D, s \in support \quad vectors yi(wTxi+b)1ys(wTxs+b)=1,iD,ssupportvectors

这就是为什么SVM可以用于小样本分类的原因,超平面的确立只与支持向量有关,其他的样本点并不会影响 w w w的值。那么现在我们就可以用上面的公式来表达最大间隔,即:

γ = 2 ∗ ∣ w T x s + b ∣ ∣ ∣ w ∣ ∣ = 2 ∣ ∣ w ∣ ∣ , ( 1.4 ) \gamma = \frac{2*|w^Tx_s+b|}{||w||} = \frac{2}{||w||}, \qquad \qquad \qquad (1.4) γ=w2wTxs+b=w2,(1.4)

       综上,就导出了SVM的核心:最大间隔 max ⁡ w , b γ = 2 ∣ ∣ w ∣ ∣ \max \limits_{w, b} \gamma=\frac{2}{||w||} w,bmaxγ=w2,约束条件是$ y_i(w^Tx_i+b) \geq 1 。 而 最 大 化 。而最大化 ||w||{-1}$可以等价于最小化$||w||{2}$,故整理得:

min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 ( 1.5 ) s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , m \begin{aligned} & \min_{w, b} \frac{1}{2}||w||^2 \qquad \qquad \qquad (1.5)\\ & s.t. \quad y_i(w^Tx_i+b) \geq 1,\qquad i = 1,2,\cdots,m \end{aligned} w,bmin21w2(1.5)s.t.yi(wTxi+b)1,i=1,2,,m

公式(1.5)即是SVM的基本型 [ 3 ] ^{[3]} [3]。至此,SVM的基本理念以及数学描述均已阐述完毕,SVM另一个神奇的点在于它将整个优化问题变成了凸优化(二次规划)的问题,通过二次方程的结论告诉我们 ∣ ∣ w ∣ ∣ 2 ||w||^2 w2要么无解,要么有且仅有一个最优解。

       在图1.2中,有三个决策超平面(边界),分别是 x 1 = 1 2 , x 2 = 1 2 , x 1 + x 2 − 1 = 0 x_1=\frac{1}{2}, x_2=\frac{1}{2}, x_1+x_2-1=0 x1=21,x2=21,x1+x21=0,三个平面皆可将正负样本正确区分,按照前面所说的SVM的思想会选择其中间隔最大的一个决策超平面,如图1.3中所示,显然 x 1 + x 2 − 1 = 0 x_1+x_2-1=0 x1+x21=0这一超平面使得两个样本点(支持向量)到超平面的最大,在图形上我们可以直观的看到SVM选择的结果。

       在1.2节中我们将会对图1.1的示例进行公式推导并得出与图1.3中所示的结果,本文所用的例子计算量较小,相信在自己计算一次后,会加深您对SVM的运算原理的理解。当然您也可以选择跳过公式推导环节,这样并不会影响你对后面内容的阅读。


图1.2: 决策超平面

图1.3: 间隔对比

注1:事实上,许多讲解SVM原理的书上使用的例子数据分布也与图1大同小异,只是数据量多了一点,但数据量多对于手工运算来说并不友好。因此本例仅使用两个点来做运算推导。

1.2 解SVM基本型

       回顾公式(1.5),我们得知SVM的求解实际上是一个凸优化(有约束的最优化)的问题,因此可以用拉格朗日乘数(算子)法 [ 4 ] ^{[4]} [4]求解式(1.5),为公式(1.5)中的每一个约束添加算子 α ≥ 0 \alpha \geq 0 α0,有:

L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) ( 1.6 ) L(w, b, \alpha) = \frac{1}{2}||w||^2 + \sum_{i=1}^{m} \alpha_{i}(1 - y_i(w^Tx_i+b)) \qquad \qquad \qquad (1.6) L(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))(1.6)

令式(1.6)中参数偏导数为零得:
∂ L ∂ w = w − ∑ i = 1 m α i y i x i = 0 → w = ∑ i = 1 m α i y i x i ( 1.7 ) ∂ L ∂ b = ∑ i = 1 m α i y i = 0 ( 1.8 ) ∂ L ∂ α = ∑ i = 1 m 1 − y i ( w T x i + b ) = 0 ( 1.9 ) \begin{aligned} \frac{\partial L}{\partial w} & = w-\sum_{i=1}^{m}\alpha_iy_ix_i=0 \rightarrow w=\sum_{i=1}^{m}\alpha_iy_ix_i & (1.7) \\ \frac{\partial L}{\partial b} & = \sum_{i=1}^{m}\alpha_iy_i=0 & (1.8) \\ \frac{\partial L}{\partial \alpha} &=\sum_{i=1}^{m} 1 - y_i(w^Tx_i+b)=0 &(1.9) \\ \end{aligned} wLbLαL=wi=1mαiyixi=0w=i=1mαiyixi=i=1mαiyi=0=i=1m1yi(wTxi+b)=0(1.7)(1.8)(1.9)

将式(1.7)代入式(1.6)中消去 w , b w,b w,b得:(注: ∣ ∣ w ∣ ∣ 2 = w T w ||w||^2=w^Tw w2=wTw)

L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) = 1 2 ∑ i = 1 m ( α i y i x i ) T ∑ j = 1 m α j y j x j + ∑ i = 1 m α i − ∑ i = 1 m α i y i ( ∑ j = 1 m ( α j y j x j ) T x i + b ) = 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j + ∑ i = 1 m α i − ∑ i = 1 m ∑ j = 1 m α

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值