【引言】
支持向量机可作回归也可作分类,其主要思想是旨在建立一个WX+b的超平面,对高维样本空间进行数据拟合或划分。支持向量机的核心内容为核函数和凸优化问题,意在寻找合适的参数矩阵W和位移项b从而找到最合适的支持向量机。
1、间隔与支持向量
分类学习最基本的想法是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。但是同一个样本空间中划分超平面有许多,而支持向量机就是旨在寻找最优的划分超平面。
我们需要寻找“容忍性”最好的超平面,即类别分界点与之距离最远的超平面,该超平面的结果一定是最鲁棒的,即对未见示例的泛化能力最强。
划分超平面的线性方程如下:
W T x + b = 0 W^Tx + b =0 WTx+b=0
其中W=(w1; w2; …; wd)为法向量,决定了超平面的方向;而b则是位移项,决定了超平面和远点之间的距离。显然,超平面的方程由w和b共同决定,那我们的目标便得以确定:找到最合适的法向量w和最合适的位移项b就可以找到最合适的划分超平面(SVM)。
样本空间中任意一点到超平面的距离可以写为:
r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r = \frac{|w^Tx +b|}{||w||} r=∣∣w∣∣∣wTx+b∣
对于普通的二分类问题,类别1则 y 1 = 1 y_1=1 y1=1,类别2则 y 2 = − 1 y_2 = -1 y2=−1,那么就有判别函数:
{ w T x i + b ≤ − 1 w T x i + b ≥ 1 \{^{w^Tx_i +b≥1}_{w^Tx_i+b≤-1} {
wTxi+b≤−1wTxi+b≥1
而在两个分类区域中距离划分超平面最近的几个训练样本点就被称为支持向量。整个可划分区域被称为间隔:
γ = 2 ∣ ∣ w ∣ ∣ γ=\frac{2}{||w||} γ=∣∣w∣∣2
所以我们的目标其实也可以转化为寻找最大的间隔。
有了目标函数,那么就可以寻找相关的约束,来实现目标最大化:
m a x w , b 2 ∣ ∣ w ∣ ∣ max_{w,b}\frac{2}{||w||} maxw,b∣∣w∣∣2
s . t . — — y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . . . m s.t.—— y_i(w^Tx_i + b) ≥1, i=1,2,.....m s.t.——yi(wTxi+b)≥1,i=1,2,.....m
由上式可以转化为求最小的 m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 min_{w,b}\frac{1}{2}||w||^2 minw,b21∣∣w∣∣2,这边是SVM的基本型。
2、对偶问题
有了目标函数和约束条件,那么我们就要想方设法求解最优的w和b。可以观察,参数模型本身是一个凸二次规划问题,因此可以先引入拉格朗日乘子,再求解其对偶问题:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b