- 支持向量机概述
- 硬间隔支持向量机
- 函数距离
- 几何距离
- 几何间隔和函数间隔
- 间隔最大化对应的最优化问题
- 求解间隔最大化对应的最优化问题的算法
- 算法原理
- 为什么叫支持向量机
- 说明
支持向量机概述
支持向量机的基础是定义在特征空间上的间隔最大的线性分类器。
当训练数据线性可分时,通过硬间隔最大化学习一个线性分类器;当训练数据近似线性可分时,通过软间隔最大化学习一个线性分类器;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
符号定义
考虑二分类问题。
训练数据集:
T={(x1,y1),(x2,y2),...,(xN,yN)}
其中,
xi∈Rn,yi∈{+1,−1},i=1,2,...,N ,假设训练集是线性可分的。
超平面公式:
w⋅x+b=0
其中,
w 是法向量,
b 是截距。
硬间隔支持向量机
所谓硬间隔就是指线性可分,那什么是支持呢?先来了解函数间隔。
函数距离
样本点 (xi,yi) 关于超平面 (w,b) 的函数距离为:
γi^=yi(w⋅xi+b)
为什么这么定义,有啥用?这是因为:
-
|w⋅xi+b| 能够相对地表示样本点
xi 到超平面的距离
-
w⋅xi+b 的符号与类标记符号
yi 是否一致能够表示分类是否正确
γi^=yi(w⋅xi+b) 将以上两点统一起来,表示分类的正确性以及确信度。
几何距离
函数距离有个问题,成比例地改变 w 和 b ,超平面没变,但是函数间距离会按照相应比例改变,而几何距离不会。
几何距离就是样本点在几何上到超平面的距离。
回忆高中所学点到平面的距离公式:
d=∣∣∣Ax0+By0+Cx0+DA2+B2+C2−−−−−−−−−−−√∣∣∣
加个绝对值是因为考虑到点在平面不同侧。
而几何距离的公式为:
γi=yi(w⋅xi+b||w||)
对比以上两个公式,后者的
w 就相当于向量
(A,B,C) ,
xi 就相当于样本点
(x0,y0,y0) ,乘以类标记
yi 取代了绝对值,实现相同的作用。
再对比下函数距离的公式 γi^=yi(w⋅xi+b) ,可知:
γi=γi^||w||
即,对函数距离做一下规范化就得到几何距离。
几何间隔和函数间隔
上面两小节介绍了一个点到超平面的距离,接下来说一个样本集到一个超平面的间隔。
几何间隔的定义:样本集中所有样本点到超平面几何间隔的最小值。
即:
γ=mini=1,...,Nγi
仔细品味一下,几何间隔囊括了超平面两侧的点。
同理,函数间隔为:
γ^=mini=1,...,Nγ^i
并且有:
γ=γ^||w||
对于一个线性可分的样本集,用一个超平面将他们分开,可以找到无数个这样的超平面 ,只要能其正确分开就行。
那么孰优孰劣呢?
田家庄和刘家庄由于耕地划分问题闹起纠纷了,他们请乡里德高望重的长者为他们在两村之间划一条分界线,长者思考的思路大致应该是,划的这条线要尽可能地离两个村都远,也就是离两个村所有的家院尽可能地远,也就是最大化界线到两村所有家院的距离。
间隔最大化对应的最优化问题
长者的问题跟我们一样,那么我们要找一个最优超平面把两类样本分开,只需要找一个几何间隔最大的超平面,这个问题的数学表示为:
maxw,b γ
s.t. γ=mini=1,...,Nγii=1,2,...,N
即:
maxw,b γ
s.t. yi(w⋅xi+b||w||)⩾γi=1,2,...,N
即:
maxw,b γ^||w||
s.t. yi(w⋅xi+b)⩾γ^i=1,2,...,N
等价于:
maxw,b 1||w||
s.t. yi(w⋅xi+b)⩾1i=1,2,...,N
等价于:
minw,b 12||w||2
s.t. yi(w⋅xi+b)−1⩾0i=1,2,...,N
之所以把最大化
1||w|| 换为最小化
12||w||2 ,是因为(待)
现在问题确定下来了,就是上面一个最优化问题,那么如何求解呢?
求解间隔最大化对应的最优化问题的算法
先说结论,线性可分支持向量机求解算法为:(原始问题不赘述)
1. 求解下面的约束最优化问题
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi
s.t.∑i=1Nαiyi=0
αi⩾0,i=1,2,...,N
求得最优解
α∗=(α∗1,α∗2,...,α∗N)T 。
2. 用公式计算超平面参数
w∗=∑i=1Nα∗iyixi
选择
α∗ 的一个正分量
α∗j>0 ,找到
yj
b∗=yj−∑i=1Nα∗iyi(xi⋅xj)
3. 获得超平面方程以及决策函数
w∗⋅x+b∗=0
分类决策函数:
f(x)=sign(w∗⋅x+b∗)
算法原理
接来下是该问题求解算法,如果有意了解算法原理,并且不熟悉拉格朗日对偶性,请先自行补课。
回到间隔最大化对应的最优化问题:
minw,b 12||w||2
s.t. yi(w⋅xi+b)−1⩾0i=1,2,...,N
这是个约束优化问题,可以使用拉格朗日对偶性来求解。
首先构建拉格朗日函数:
L(w,b,α)=12||w||2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题,可以通过求解这个问题来获得原始问题的解:
maxαminw,bL(w,b,α)
那么:
1. 求
minw,bL(w,b,α)
将
L(w,b,α) 分别对
w,b 求偏导并令其等于0。
▽wL(w,b,α)=w−∑i=1Nαiyixi=0
▽bL(w,b,α)=∑i=1Nαiyi=0
得:
w=∑i=1Nαiyixi
∑i=1Nαiyi=0
将它们代入拉格朗日函数
L(w,b,α) ,得:
minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
2. 求
maxαminw,bL(w,b,α)
maxαminw,bL(w,b,α)=maxα⎛⎝−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi⎞⎠
s.t.∑i=1Nαiyi=0
s.t.αi≥0,i=1,2,...,N
然后就去解吧。。。各种代入和求导取零,解 α 就是了,解出来 α 再利用步骤1求导数置0得到的的结论求 w,b 。
为什么叫支持向量机
关键是弄清“支持”是什么意思。
好理解的解释
对分类超平面的选取没有任何影响的样本点不叫“支持向量”。
对分类超平面的选取有影响的样本点叫“支持向量”。
住在北京二环里面的人们不在乎北京和天津之间要新修的飞机场究竟离二者谁更近,反正噪音他们听不见。
而住在北京和天津之间的郊区的两个城市的居民十分在乎并且表示将积极参与新址规划问题。
二环里的人们就不是支持向量,郊区的人们就是支持向量。
更好理解的解释(数学解释)
我们看解出来的 w,b 的公式:
w∗=∑i=1Nα∗iyixi
b∗=yj−∑i=1Nα∗iyi(xi⋅xj)α∗j>0
w∗ 的公式中,如果 α∗i=0 ,那么对应的 (xi,yi) 就不会对 w∗ 的计算产生任何印象,它们就是“住在二环里的居民”;如果如果 α∗i≠0 ,那么对应的 (xi,yi) 就参与了超平面的确定,它们就是住在“飞机场附近的居民”。
说明
如果错误,敬请指正。