支持向量机概览(support vector machines SVM)
支持向量机是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大(间隔最大区别于感知机)线性分类器(核函数可以用非线性的分类)。
支持向量机的学习策略是间隔最大化可形式化为一个求解凸二次规划的问题。
也等价于正则化的合页损失函数的最小化问题。
支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机学习方法包含构建由简到繁的模型:
1)线性可分支持向量机
2)线性支持向量机
3)非线性支持向量机
1)当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称硬间隔支持向量机。
2)当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性分类器,即线性支持向量机,又称为软间隔支持向量机
3)当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
在感知机那一节我们知道,存在多个划分超平面将两类训练样本分开,我们应该努力去找到哪一个呢?
直观上看,应该去找位于两类训练样本的“正中间”的划分超平面,即上图中的红色的那个。
因为该划分超平面对训练样本的局部扰动的“容忍”性最好。
例如,由于训练集的局限性或噪声的影响,训练集外的样本可能比上图中的训练样本更接近两个类的分隔面,这将使得许多分割超平面出现错误,而红色的超平面受影响更小。换言之,这个划分超平面所产生的分类结果是最鲁棒的,对未见实例的泛化能力最强。
线性可分支持向量机与硬间隔最大化
一般的,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。
感知机利用误分类最小的策略,求得分离超平面,不过这时的解有无数个。
线性可分支持向量机利用间隔最大化求解最优分隔超平面,这时,解释唯一的。
定义:线性可分支持向量机
给定线性可分训练数据集,通过间隔最大化或等价的求解相应的凸二次规划问题学习得到的分离超平面为:
w∗x+b∗=0以及相应的分类决策函数
f(x)=sign(w∗x+b∗)
称为线性可分支持向量机
函数间隔与几何间隔:
1)为什么要引入函数间隔与几何间隔?
一般的来说,一个点离分离超平面的远近可以表示分类预测的确信程度。
1)在超平面
wx+b=0确定的情况下,
∣wx+b∣能够相对的表示点x距离超平面的远近。
2)
wx+b的符号与类标记y的符号是否一致能够表示分类是否正确。
所以,可用
y(wx+b)来表示分类的正确性和确信度,这就是函数间隔的概念
定义:函数间隔对于给定的训练集
T和超平面
(w,b),定义超平面关于样本点的函数间隔为:
γi=yi(wxi+b)
定义超平面
(w,b)关于训练数据集
T的函数间隔为超平面关于
T中所有样本点
(xi,yi)的函数间隔之最小值。
γ=minγi=minyi(wxi+b)
每一个样本点都有一个函数间隔,但是定义的超平面关于训练集的函数间隔是所有样本点的函数间隔的最小值。
函数间隔的意义:函数间隔可以表示分类预测的正确性(符号)及确信度(大小)
函数间隔的缺陷:只要成比例的改变w和b,比如将他们改为2w和2b,超平面并没有改变,但函数间隔变成原来的2倍、
以上两点可以启发我们,可以对分离超平面的法向量w加某些约束,如规范化||w||=1,使得间隔是固定的,这时函数间隔称为几何间隔。
一般的,当样本点
(xi,yi)被超平面
(w,b)正确分类时,点
xi与超平面
(w,b)的距离是:
γi=yi(∣∣w∣∣wxi+b)由这一事实导出几何间隔的概念。
定义:几何间隔 对于给定的训练数据集
T和超平面
(w,b),定义超平面
(w,b)关于样本点
(xi,yi)的几何间隔为:
γi=yi(∣∣w∣∣wxi+b)
定义超平面关于训练数据集的几何间隔为超平面关于
T中所有样本点
(xi,yi)的几何间隔之最小值,
即
γ=minγi
超平面
(w,b)关于样本点
(xi,yi)的几何间隔一般是实例点到超平面的带符号的距离,当样本点被超平面正确分类时就是实例点到超平面距离。
间隔最大化
支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。
对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。
间隔最大化的直观解释:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将他们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。
最大间隔分离超平面:
如何求得一个几何间隔最大的分离超平面?
这个问题可以表示为下面的约束最优化问题:
w,bmaxγ
s.t:
yi(∣∣w∣∣wxi+b)≥γi=1,2……N
1)即希望最大化超平面
(w,b)关于训练数据集的几何间隔
γ
2)约束条件表示的是超平面
(w,b)关于每一个训练样本点的几何间隔至少是
γ
考虑几何间隔与函数间隔的关系式,可将上面的问题转换为下面的问题:
w,bmax∣∣w∣∣γ∗
s.t:
yi(wxi+b)≥γ∗
(这样把优化问题里面的几何间隔替换成了函数间隔,有什么好处呢?)
因为函数间隔
γ∗的取值并不影响最优化问题的解,即函数间隔的这一改变对上面的最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,产生的是一个等价的优化问题。
这样可以取
γ∗=1,带入上面的最优化问题,注意到最大化
∣∣w∣∣1和最小化
2∣∣w∣∣2是等价的,于是就得到下面的线性可分支持向量机的最优化问题:
w,bmin2∣∣w∣∣2
s.t:
yi(wxi+b)−1≥0其中 i=1,2……N
这是一个凸二次规划问题。
如果求出了约束最优化问题的解
w∗和b∗,那么就可以得到最大间隔分离超平面
w∗x+b∗=0及分类决策函数
f(x)=sign(w∗x+b∗)即线性可分支持向量机。
最大间隔分离超平面的存在唯一性
线性可分训练数据集的最大间隔分离超平面是存在且唯一的。
定理:最大间隔分离超平面的存在唯一性:
若训练数据集线性可分,则可将训练数据集中的样本点完全正确分开的最大间隔分离超平面存在且唯一。
支持向量与间隔边界
在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量****支持向量是使得上面不等式约束等号成立的点
即:
yi(wxi+b)−1=0
对于
yi=+1的正实例,支持向量在超平面
H1:wx+b=1上
对于
yi=−1的负实例,支持向量在超平面
H2:wx+b=−1上
在
H1和H2上的点就是支持向量。
H1和H2称为间隔边界,
H1和H2之间的距离称为间隔,间隔依赖于分离超平面的法向量
w,等于
∣∣w∣∣2
在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用,如果移动支持向量将改变所求的解。
支持向量的个数一般很少,所以支持向量机由很少的"重要的"训练样本确定。
学习的对偶算法
为了求解线性可分支持向量机的最优化问题
w,bmin2∣∣w∣∣2
s.t:
yi(wxi+b)−1≥0其中 i=1,2……N
将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。
这样做的优点:
1)一是对偶问题往往更容易求解
2)二是自然引入核函数,进而推广到非线性分类问题
首先构建拉格朗日函数。为此,对每一个不等式约束
yi(wxi+b)−1≥0引进拉格朗日乘子
αi≥0
定义拉格朗日函数:
L(w,b,α)=2∣∣w∣∣2−i=1∑Nαiyi(wxi+b)+i=1∑Nαi
(把不等式约束
yi(wxi+b)−1≥0转换成
1−yi(wxi+b)≤0的形式),其中
α=(α1,α2,……αN)T为拉格朗日乘子向量
根据拉格朗日对偶性,原始问题的对偶问题式极大极小问题:
αmaxw,bminL(w,b,α)
所以为了得到对偶问题的解,需要先求
L(w,b,α)对w和b的极小,再求对α的极大。
(1)求
w,bminL(w,b,α)
将拉格朗日函数
L(w,b,α)分别对w和b求偏导数并令其等于0
▽wL(w,b,α)=w−i=1∑Nαiyixi=0
▽bL(w,b,α)=i=1∑Nαiyi=0
得到:
w=i=1∑Nαiyixi (式1)
i=1∑Nαiyi=0 (式2)
此时对于
w,bminL(w,b,α),因为w和b已知(可以这样理解),应该是只包含α的函数,将式1和式2带入拉格朗日函数得到下面的式子
L(w,b,α)=i=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xixj)
即
w,bminL(w,b,α)=i=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xixj)
(2)求
w,bminL(w,b,α)对α的极大,即是对偶问题
αmaxi=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xixj)
s.t:i=1∑Nαiyi=0
αi≥0
将目标函数由求极大问题转换为求极小问题,就得到下面与之等价的对偶最优化问题:
αmin21i=1∑Nj=1∑Nαiαjyiyj(xixj)−i=1∑Nαi
s.t:i=1∑Nαiyi=0
αi≥0
对于线性可分训练数据集,假设对偶最优化问题对α的解为
α∗=(α1∗,α2∗……αN∗),可以由
α∗求得原始最优化问题对
(w,b)的解
w∗,b∗
定理:设
α∗=(α1∗,α2∗……αN∗)是对偶最优化问题的解,则存在下标
j,使得
αj∗>0,并可按下式求得原始最优化问题的解
w∗,b∗
w∗=i=1∑Nαi∗yixi
b∗=yj−i=1∑Nαi∗yi(xixj)
1)(从上面的式子可以发现,求解
w∗时,需要用到所有的样本和所有的拉格朗日乘子(虽然有的样本对应的拉格朗日乘子为0,对
w∗的求解没有用))
2)(对于
b∗的求解,只是找到一个样本
(xi,yi)要求其对应的拉格朗日乘子大于0即:
αi>0(其实是找到一个支持向量))
证明:
由KKT条件可知:
▽wL(w,b,α)=w−i=1∑Nαiyixi=0
▽bL(w,b,α)=i=1∑Nαiyi=0
αi∗(yi(w∗x+b)−1)=0 i=1,2……N
yi(w∗x+b)−1≥0 i=1,2……N
αi∗≥0 i=1,2……N
由此可得
w∗=i=1∑Nαi∗yixi
其中至少有一个
αj∗>0(反证法,假设
α∗=0,由
w∗=i=1∑Nαi∗yixi可知,
w∗=0,而
w∗=0不是原始问题的解,产生矛盾)
对此j,有
αj∗(yj(w∗xj+b)−1)=0 由于
αj∗>0所以
yj(w∗xj+b)−1=0结合
yj2=1和
w∗=i=1∑Nαi∗yixi可得
b∗=yj−i=1∑Nαi∗yi(xixj)
由此定理可知,分离超平面可以写成
i=1∑Nαi∗yi(xix)+b=0
分类决策函数可以写成
f(x)=sign(i=1∑Nαi∗yi(xix)+b)(式3)
**这就是说,分类决策函数只依赖于输入x和训练样本输入的内积。**式3称为线性可分支持向量机的对偶形式。
综上所述:对于给定的线性可分训练数据集,可以首先求对偶问题
αmin21i=1∑Nj=1∑Nαiαjyiyj(xixj)−i=1∑Nαi
s.t:i=1∑Nαiyi=0
αi≥0
的解
α∗;
再利用
w∗=i=1∑Nαi∗yixi
b∗=yj−i=1∑Nαi∗yi(xixj)
求得原始问题的解
w∗和b∗,从而得到分离超平面及分类决策函数。这种算法称为线性可分支持向量机的对偶学习算法那,是线性可分支持向量机学习的基本算法。
在线性可分支持向量机中,
w∗和b∗只依赖于训练数据中对应于
αi∗>0的样本点
(xi,yi),而其他的样本点对
w∗和b∗没有影响。
我们将训练数据中对应于
αi∗>0的实例点成为支持向量