一般的,当训练样本线性可分的时候,如下图所示:
可以找到无数个划分超平面。而线性可分支持向量机利用间隔最大化来求最优划分超平面,此时解是唯一的。
通过间隔最大化或者对应的凸二次规划问题学习到的分离超平面为:
w ∗ ⋅ x + b ∗ = 0 w^*\cdot x+b^*=0 w∗⋅x+b∗=0
对应的决策函数为:
f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)=sign(w^*\cdot x+b^*) f(x)=sign(w∗⋅x+b∗)
我们称上面的的式子为线性可分的支持向量机。
函数间隔与几何间隔
给定分离超平面 w ⋅ x + b = 0 w\cdot x + b = 0 w⋅x+b=0, ∣ w ⋅ x + b ∣ |w\cdot x + b | ∣w⋅x+b∣能相对的表示x到超平面的距离。通过分析标签值y与 w ⋅ x + b w\cdot x + b w⋅x+b符号的是否一致能够表示分类是否正确,于是可以用 y ( w ⋅ x + b ) y(w\cdot x + b) y(w⋅x+b)的符号来表示是否分类正确及确信度,这就是函数间隔。为此,对于样本 ( x i , y i ) (x_i, y_i) (xi,yi)我们定义函数间隔 γ ^ i \hat \gamma_i γ^i为:
γ ^ i = y i ( w ⋅ x i + b ) \hat \gamma_i = y_i(w \cdot x_i + b) γ^i=yi(w⋅xi+b)
对于有N个样本的数据集T,定义数据集T的函数间隔为:所有样本点的函数间隔的最小值,即:
γ ^ i = min i = 1 , 2 , . . . , N γ ^ i = min i = 1 , 2 , . . . , N y i ( w ⋅ x i + b ) (1) \hat \gamma_i = \min\limits_{i=1,2,...,N}\hat \gamma_i = \min\limits_{i=1,2,...,N} y_i(w\cdot x_i + b) \tag 1 γ^i=i=1,2,...,Nminγ^i=i=1,2,...,Nminyi(w⋅xi+b)(1)
如果成比例的改变w和b为2w和2b,那么函数间隔变为了原来2倍,为了消除这样的影响,我们限定L2范数 ∥ w ∥ = 1 \|w\|=1 ∥w∥=1,此时函数间隔就成为了几何间隔。
下图给出了超平面 ( w , b ) (w,b) (w,b)及其法向量w:
点A表示某一实例 ( x i , y i ) (x_i,y_i) (xi,yi),A到超平面的距离由AB给出,记作 γ i \gamma_i γi:
γ i = w ⋅ x i + b ∣ ∣ w ∣ ∣ \gamma_i = \frac{w\cdot x_i + b}{||w||} γi=∣∣w∣∣w⋅xi+b
无论样本是正例还是负例,当样本被正确分类时,到超平面的距离为:
γ i = y i ( w ⋅ x i + b ) ∣ ∣ w ∣ ∣ \gamma_i = \frac{y_i(w\cdot x_i + b)}{||w||} γi=∣∣w∣∣yi(w⋅xi+b)
我们定义上面的式子为某个样本到超平面的几何间隔。
对于有N个样本的数据集T,定义数据集T的几何间隔为:所有样本点的几何间隔的最小值,即:
γ = min i = 1 , . . . , N γ i = min i = 1 , . . . , N y i ( w ⋅ x i + b ) ∣ ∣ w ∣ ∣ (2) \gamma = \min\limits_{i=1,...,N} \gamma_i = \min\limits_{i=1,...,N}\frac{y_i(w \cdot x_i + b)}{||w||} \tag 2 γ=i=1,...,Nminγi=i=1,...,Nmin∣∣w∣∣yi(w⋅xi+b)(2)
由函数间隔和几何间隔的定义(1),(2)可知:
γ i = γ ^ i ∣ ∣ w ∣ ∣ \gamma_i = \frac{\hat\gamma_i}{||w||} γi=∣∣w∣∣γ^i
γ = γ ^ ∣ ∣ w ∣ ∣ (3) \gamma = \frac{\hat\gamma}{||w||} \tag 3 γ=∣∣w∣∣γ^(3)
如果限定 ∥ w ∥ = 1 \|w\|=1 ∥w∥=1,那么函数间隔就等于几何间隔。
SVM模型
对于线性可分的数据可以找到无数个将数据划分的超平面,但是距离超平面较远的点对超平面的确定没有很大的影响。因此,我们把注意力放在距离超平面较近的点上,如下图中红色框选择的点。如果我们让距离超平面最近的点(图中)到超平面的距离最大化,那么就可以认为这样的划分超平面即使对于较难分类正确的点,也能得到较好的划分结果。
线性可分的SVM目标是找到间隔最大化的划分超平面,所谓间隔最大化是指:对给定的数据集的点,划分超平面不仅可以可以区分正例负例,而且还能使得最难分类的点有足够大的确信度使得他们分开,这样的平面对未知的样本实例有更好的分类能力。
要求几何间隔最大的分离超平面,可以转化为求解下面的最优化问题:
max w , b γ s . t . y i ( w ⋅ x i + b ) ∣ ∣ w ∣ ∣ ≥ γ i = 1 , 2 , . . . , N \max\limits_{w,b} \gamma \\ s.t. \quad \frac{y_i(w \cdot x_i + b)}{||w||} \ge \gamma\\i=1,2,...,N w,bmaxγs.t.∣∣w∣∣yi(w⋅xi+b)≥γi=1,2,...,N
由由函数间隔和几何间隔关系的公式(3)可以将问题转化为:
max w , b γ ^ ∥ w ∥ s . t . y i ( w ⋅ x i + b ) ≥ γ ^ i = 1 , 2 , . . . , N \max\limits_{w,b} \frac{\hat\gamma}{\|w\|} \\ s.t. \quad y_i(w \cdot x_i + b) \ge \hat\gamma\\i=1,2,...,N w,bmax∥w∥γ^s.t.yi(w⋅xi+b)≥γ^i=1,2,...,N
根据上面的式子,不难得出,SVM的思想是:让距离划分超平面最近的点(支持向量)到划分超平面的距离最大化。
实际上,当我们成倍的改变 w , b w,b w,b为 λ w , λ b \lambda w ,\lambda b λw,λb,函数间隔也变为 λ γ ^ \lambda \hat \gamma λγ^ ,并不能改变约束条件中的不等式的关系。因此,为了简化计算,我们可以取 γ ^ = 1 \hat\gamma=1 γ^=1。并且,最大化 1 ∥ w ∥ \frac{1}{\|w\|} ∥w∥1和最小化 1 2 ∥ w ∥ 2 \frac{1}{2} \|w \|^2 21∥w∥2等价,于是优化目标转化为:
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 ; s . t 1 − y i ( w ⋅ x i + b ) ≤ 0 ( i = 1 , 2 , . . . m ) (4) \min\limits_{w,b} \frac{1}{2}||w||^2 ;\quad s.t \quad 1- y_i(w \cdot x_i + b) \leq 0 \quad (i =1,2,...m) \tag 4 w,bmin21∣∣w∣∣2;s.t1−yi(w⋅xi+b)≤0(i=1,2,...m)(4)
显然式子(4)是凸二次规划问题。要注意的是,训练样本中存在某些样本点使得约束条件取得等号:
y i ( w ⋅ x i + b ) − 1 = 0 y_i(w \cdot x_i + b) -1 = 0