支持向量机(Support Vector Machine, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;当把核引入到SVM中后,它就成为了非线性分类器。
SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
1 线性分类器
给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D=\{({\bf x}_1,y_1),({\bf x}_2,y_2),\cdots,({\bf x}_m,y_m)\},y_i \in \{ -1, +1\} D={ (x1,y1),(x2,y2),⋯,(xm,ym)},yi∈{ −1,+1},分类学习最基本的想法就是基于训练集 D D D 在样本空间中找到一个划分平面,将不同类别的样本分开。在样本空间中,用如下的线性方程来描述划分超平面:
w T x + b = 0 {\bf w}^T{\bf x}+b=0 wTx+b=0
其中, w = ( w 1 ; w 2 ; ⋯ ; w d ) {\bf w}=(w_1;w_2;\cdots;w_d) w=(w1;w2;⋯;wd) 为法向量,决定了超平面的方向; b b b 为位移量,决定了超平面与原点之间的距离。划分平面可被法向量 w {\bf w} w 和位移 b b b 确定,就将该平面记为 ( w , b ) ({\bf w},b) (w,b),样本空间中任意点 x {\bf x} x 到超平面 ( w , b ) (w,b) (w,b) 的距离可以写为:
r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|{\bf w}^T{\bf x}+b|}{||{\bf w}||} r=∣∣w∣∣∣wTx+b∣
我们知道,对于平面 ( w , b ) ({\bf w},b) (w,b),同比例变化 w {\bf w} w 和 b b b 时该平面不变,因此,我们可以找到一组 ( w , b ) ({\bf w},b) (w,b) 使得距离该平面最近的样本点(即支持向量)满足 ∣ w T x i + b ∣ = 1 |{\bf w}^T{\bf x}_i+b| = 1 ∣wTxi+b∣=1(目的:为了求解时计算方便)。
假设超平面 ( w , b ) ({\bf w},b) (w,b) 能将训练样本正确分类,令 f ( x ) = w T x + b f({\bf x})={\bf w}^T{\bf x}+b f(x)=wTx+b,对于 ( x i , y i ) ∈ D ({\bf x}_i,y_i)\in D (xi,yi)∈D,有:
{ w T x i + b ≥ + 1 y i = + 1 w T x i + b ≤ − 1 y i = − 1 \begin{cases} {\bf w}^T{\bf x}_i+b \geq +1 & y_i=+1\\ {\bf w}^T{\bf x}_i+b \leq -1 & y_i=-1 \end{cases} { wTxi+b≥+1wTxi+b≤−1yi=+1yi=−1
如下图所示,距离超平面最近的几个训练样本点使上式成立,它们称为“支持向量”(support vector),两个异类支持向量到超平面的距离之和为:
γ = 2 ∣ ∣ w ∣ ∣ \gamma = \frac{2}{||{\bf w}||} γ=∣∣w∣∣2
它被称为 “间隔”(margin)
如果想要找到具有“最大间隔”(maximum margin)的划分超平面,也就是要找到使得 γ \gamma γ 最大的、能满足的条件约束的参数 w {\bf w} w 和 b b b:
max w , b 2 ∣ ∣ w ∣ ∣ s . t y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , m \begin{aligned} \max_{ {\bf w}, b} & \ \ \frac{2}{||{\bf w}||}\\ s.t & \ \ y_i({\bf w}^T{\bf x}_i+b) \geq1, \ i=1,2,\cdots,m \end{aligned} w,bmaxs.t ∣∣w∣∣2 yi(wTxi+b)≥1, i=1,2,⋯,m
显然,为了最大化间隔,仅需最大化 ∣ ∣ w ∣ ∣ − 1 ||{\bf w}||^{-1} ∣∣w∣∣−1,这就等价于最小化 ∣ ∣ w ∣ ∣ 2 ||{\bf w}||^{2} ∣∣w∣∣2,于是,该目标可以重写为:
min w , b 1 2 ∥ w ∥ 2 s . t y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , m \begin{aligned} \min_{ {\bf w}, b} & \ \ \frac{1}{2}{\|{\bf w}\|^2}\\ s.t & \ \ y_i({\bf w}^T{\bf x}_i+b) \geq1, \ i=1,2,\cdots,m \end{aligned} w,bmins.t 21∥w∥2 yi(wTxi+b)≥1, i=1,2,⋯,m
2 对偶问题
目标函数本身是一个凸二次规划(Convex Quadratic Programming)问题,利用拉格朗日乘子法可得到其“对偶问题”(dual problem),对每条约束添加拉格朗日乘子 α i ≥ 0 \alpha_i \geq 0 αi≥0,则该问题的拉格朗日函数可写作:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L({\bf w},b,\alpha)=\frac{1}{2}{||{\bf w}||^2} + \sum_{i=1}^m \alpha_i (1-y_i({\bf w}^T{\bf x}_i+b)) L(w,b,α)=