SVM支持向量机基本原理

对支持向量机的学习总结,主要参考《统计学习方法》,非线性支持向量机和核函数部分非常简略,因为书里这部分的推导与公式是完全看不懂的。。先有个感性的认识吧,目前确实没能力啃下来,以后学了优化方法之类的课程也许会好些。后面打算再摸一摸sklearn的参数含义与实现,以及尝试不用库的简单实现。

基本概念

支持向量机是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,核技巧使它成为实质上的非线性分类器。

  • 模型:分离超平面 w ∗ x + b ∗ = 0 w^{*}x+b^{*}=0 wx+b=0 & 决策函数 f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x)=sign(w^{*}x+b^{*}) f(x)=sign(wx+b)
  • 学习策略:硬间隔最大化 / 软间隔最大化
  • 学习算法:凸二次规划

基本分类

类别 策略
线性可分支持向量机 硬间隔最大化
线性支持向量机 软间隔最大化
非线性支持向量机 核技巧

1. 线性可分支持向量机

学习目标:学习得到一个分离超平面 w x + b = 0 wx+b=0 wx+b=0可以将实例分成不同的类,它由法向量 w w w 和截距 b b b 决定。

对于线性可分的数据,可能有无数个平面能降正负类分开,线性可分支持向量机利用硬间隔最大化求最优分离超平面,这时候解是唯一的。

假设超平面为 w x + b = 0 wx+b=0 wx+b=0,对于一个点, w x + b wx+b wx+b 的符号与类标记 y y y 的符号是否一致能够表示分类是否正确,点距离超平面的远近 ∣ w x + b ∣ |wx+b| wx+b 可以表示分类预测的确信程度,所以,可用 y ( w x + b ) y(wx+b) y(wx+b)表示分类的正确性与确信度,这也就是函数间隔。

函数间隔

对于给定的训练数据集 T T T和超平面 ( w , b ) (w,b) (w,b),定义超平面 ( w , b ) (w,b) (w,b)关于样本点的函数间隔为 γ i ^ = y i ( w x i + b ) \hat{\gamma_i}=y_i(wx_i+b) γi^=yi(wxi+b) 定义超平面 ( w , b ) (w,b) (w,b)关于数据集 T T T 的函数间隔为 γ ^ = m i n γ i ^ \hat{\gamma}=min \hat{\gamma_i} γ^=minγi^

然而,仅仅有函数间隔还不够,只要成比例的改变 w w w b b b,虽然超平面没有改变,函数间隔却变为原来的两倍,因此要对超平面法向量加一些约束,使间隔是确定的。

几何间隔

对于给定的训练数据集 T T T和超平面 ( w , b ) (w,b) (w,b),定义超平面 ( w , b ) (w,b) (w,b)关于样本点的几何间隔为 γ i = y i ( w ∣ ∣ w ∣ ∣ x i + b ∣ ∣ w ∣ ∣ ) \gamma_i=y_i(\dfrac{w}{||w||}x_i+\dfrac{b}{||w||}) γi=yi(wwxi+wb) 定义超平面 ( w , b ) (w,b) (w,b)关于数据集 T T T 的几何间隔为 γ = m i n γ i \gamma=min \gamma_i γ=minγi

注意:
(1)几何间隔与函数间隔的关系: γ i = γ i ^ ∣ ∣ w ∣ ∣ , γ = γ ^ ∣ ∣ w ∣ ∣ \gamma_i=\dfrac{\hat{\gamma_i}}{||w||}, \gamma=\dfrac{\hat{\gamma}}{||w||} γi=wγi^,γ=wγ^

(2)二者都是有符号的,以几何间隔为例,类标记一般取+1和-1,若样本在法向量正的一侧,距离为 γ i = w ∣ ∣ w ∣ ∣ x i + b ∣ ∣ w ∣ ∣ \gamma_i=\dfrac{w}{||w||}x_i+\dfrac{b}{||w||} γi=wwxi+wb,若样本在法向量负的一侧,距离为 γ i = − ( w ∣ ∣ w ∣ ∣ x i + b ∣ ∣ w ∣ ∣ ) \gamma_i=-(\dfrac{w}{||w||}x_i+\dfrac{b}{||w||}) γi=(wwxi+wb)

因此,找最大间隔的超平面,直观上也就是以最大的确信度进行分类。可以将这个问题表示为下面的约束优化问题:

max ⁡ w , b \max \limits_{w,b} w,bmax     γ \gamma γ
s . t . s.t. s.t.   y i ( w ∣ ∣ w ∣ ∣ x i + b ∣ ∣ w ∣ ∣ ) ≥ γ y_i(\dfrac{w}{||w||}x_i+\dfrac{b}{||w||})\geq\gamma yi(wwxi+wb)γ

接下来就是一步步等价变形,首先目标函数中的 γ \gamma γ 根据几何间隔和函数间隔的关系可以改成 γ ^ ∣ ∣ w ∣ ∣ \dfrac{\hat{\gamma}}{||w||} wγ^,约束条件的两边同时乘上 ∣ ∣ w ∣ ∣ ||w|| w,从而变成:

max ⁡ w , b \max \limits_{w,b} w,bmax     γ ^ ∣ ∣ w ∣ ∣ \dfrac{\hat{\gamma}}{||w||} wγ^
s . t . s.t. s.t.   y i ( w x i + b ) ≥ γ ^ y_i(wx_i+b)\geq\hat{\gamma} yi(wxi+b)γ^

因为 γ ^ \hat{\gamma} γ^ 的取值不影响最优化问题的解,可以取 γ ^ = 1 \hat{\gamma}=1 γ^=1 ,同时最大化 1 ∣ ∣ w ∣ ∣ \dfrac{1}{||w||} w1和最小化 1 2 ∣ ∣ w ∣ ∣ 2 \dfrac{1}{2}||w||^2 21w2 是等价的,从而变成:

max ⁡ w , b \max \limits_{w,b} w,bmax     1 2 ∣ ∣ w ∣ ∣ 2 \dfrac{1}{2}||w||^2 21w2
s . t . s.t. s.t.   y i ( w x i + b ) − 1 ≥ 0 y_i(wx_i+b)-1\geq0 yi(wxi+b)10

这是一个凸二次规划问题。

.
算法:最大间隔法 (对上面的整个过程进行一个总结)

输入:线性可分的训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } , y i ∈ { − 1 , + 1 } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\},y_i\in\{-1,+1\} T={ (x1,y1),(x2,y2),...,(xN,yN)},yi{ 1,+1}
输出:最大间隔分离超平面和分类决策函数。

(1)构造并求解约束最优化问题

max ⁡ w , b \max \limits_{w,b} w,bmax     1 2 ∣ ∣ w ∣ ∣ 2 \dfrac{1}{2}||w||^2 21w2
s . t . s.t. s.t.   y i ( w x i + b ) − 1 ≥ 0 y_i(wx_i+b)-1\geq0 yi(wxi+b)10
.
求得最优解 w ∗ , b ∗ w^*,b^* w,b

(2)由此得到

分离超平面: w ∗ x + b ∗ = 0 w^*x+b^*=0 wx+b=0
分类决策函数: f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x)=sign(w^*x+b^*) f(x)=sign(wx+b)

============================================================

支持向量       训练集中与分离超平面距离最近的样本点的实例称为支持向量,即下图中虚线上的点,也就是使约束条件式等号成立的点,即 y i ( w x i + b ) − 1 = 0 y_i(wx_i+b)-1=0 yi(wxi+b)1=0

H 1 H_1 H1 H 2 H_2 H2间隔边界,二者之间的距离成为间隔,间隔依赖于法向量 w w w,等于 2 ∣ ∣ w ∣ ∣ \dfrac{2}{||w||} w2.

2. 线性支持向量机

上面 【线性可分支持向量机】所设定的 【数据集线性可分】的条件太过理想,实际上,大部分的数据达不到的。那么,怎么将其扩展到非线性可分的问题呢?——把原来的硬性条件放宽,改硬为软。

线性不可分意味着某些样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 不能满足函数间隔大于等于1的约束条件,所以对每个样本点引入一个松弛变量 ξ i ≥ 0 \xi_i \geq0 ξi0 ,使函数间隔加上松弛变量大于等于1。约束条件变为: y i ( w x i + b ) ≥ 1 − ξ i y_i(wx_i+b)\geq1-\xi_i yi(wxi+b)1ξi 同时,对每个松弛变量 ξ i \xi_i ξi 要支付一个代价 ,目标函数变为: 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i \dfrac{1}{2}||w||^2+C\sum\limits_{i=1}^N\xi_i 21w2+Ci=1Nξi
此处, C C C 是惩罚参数, C C C 值大时对误分类的惩罚增大; C C C 值小时对误分类的惩罚减小。目标函数有两层含义:

  • 1 2 ∣ ∣ w ∣ ∣ 2 \dfrac{1}{2}||w||^2 21w2 尽量小,即间隔尽量大
  • 误分类点的个数尽量小, C C C 是调和二者之间的系数

线性不可分的线性支持向量机的学习问题

max ⁡ w , b , ξ \max \limits_{w,b,\xi} w,b,ξmax     1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i \dfrac{1}{2}||w||^2+C\sum\limits_{i=1}^N\xi_i 21w2+Ci=1Nξi
s . t . s.t. s.t.   y i ( w x i + b ) ≥ 1 − ξ i y_i(wx_i+b)\geq1-\xi_i yi(wxi+b)1ξi
这是一个凸二次规划问题,解一定是存在的,但是 w 的解是唯一的,b的解可能不唯一,而是存在于一个区间。

3. 非线性支持向量机与核函数

核技巧       通过一个非线性变换将输入空间对应于一个特征空间,使得在输入空间中的超曲面模型对应于特征空间中的超平面模型。

常用核函数

  • 多项式核函数
  • 高斯核函数
  • 字符串核函数

猜你喜欢

转载自blog.csdn.net/codelady_g/article/details/123199845