您的位置:首页 > 其它

机器学习之感知机与SVM详细推导

2017-07-28 01:10 148 查看

感知机与SVM

@(机器学习)[SVM]

感知机与SVM
超平面

感知机perception

支持向量机SVM

SVM的Lagrange对偶问题

超平面

在介绍感知机与SVM之前,我们有必要补充一下超平面的概念。

超平面是具有下面形式的点的集合:

{x|aTx=b}(1)

其中a∈Rn,a≠0且b∈R。

解析意义:超平面是关于x的非齐次线性方程组的解空间(是一个仿射集合)。

几何意义:超平面是与给定向量a的内积为常数的点的集合;也可以看成法线方向为a的超平面,常数b∈R决定了这个平面相对原点的偏移,每个轴上偏移了bai。

超平面外任意一点y到超平面的距离计算过程:

在超平面上任取一点x,则y到超平面的距离可表示为:

d=|aT(y−x)|||a||=|aTy−b|||a||(2)

在感知机与SVM的相关理论推导中,我们一般将超平面写成如下形式:

{x|wTx+b=0}(3)

感知机(perception)

感知机 是二类分类问题的线性分类模型。其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机学习旨在求出将训练数据进行线性划分的分离超平面。

假设对所有y(i)=+1的点,有wTx(i)+b>0;对所有y(i)=−1的点,有wTxi+b<0。则对于给定数据集

T=(x(1),y(1)),⋯,(x(N),y(N))(4)

线性可分的定义是:∃某个超平面{x|wTx+b=0}使得∀(x(i),y(i))有y(i)(wTx(i)+b)>0

也即对误分类的点有:

−y(i)(wTx(i)+b)>0(5)

我们假设感知机的训练数据都是线性可分的。

误分类点到超平面的总距离为:

−1∥w∥∑x(i)∈My(i)(wTx+b)(6)

M为误分类点的集合。可以将(6)作为优化的损失函数。

我们可以 把1∥w∥扔掉而不影响优化结果,因为我们假设数据集是线性可分的,因此最后损失函数必然为零,即无误分类点。去掉后,我们得到的loss function如下:

−∑x(i)∈My(i)(wTx(i)+b)(7)

(7)是关于w,b的连续可导线性函数,梯度为:

∇wL(w,b)=−∑x(i)∈My(i)x(i)(8)

∇bL(w,b)=−∑x(i)∈My(i)(9)

可以利用随机梯度下降法轻松地进行优化:

(1) 选取初值w0,b0

(2) 在训练集中选取数据x(i),y(i)

(3) if −y(i)(wTx+b)≥0

w←w+ηy(i)x(i)(10)

b←b+ηy(i)(11)

else 算法停止

(4) 转至(2),直至训练集中没有误分类点。

支持向量机(SVM)

感知机模型得到的分离超平面不是唯一的,会随着初值不同而不同。而SVM试图寻找一个最佳的超平面来划分数据。所谓“最优的超平面”,就是指“最中间的”的超平面,也即“与数据点间隔最大”的超平面。

定义样本点(xi,yi)与超平面wTx+b=0的几何间隔为:

γ(i)=y(i)(wTx(i)+b)∥w∥(12)

几何间隔其实就是(1)中的距离。

定义超平面与整个数据集的几何间隔为:

γ=mini=1,⋯,Nγ(i)(13)

其物理含义为离超平面最近的点到超平面的几何距离。

定义样本点(xi,yi)与超平面wTx+b=0的函数间隔为:

γ^(i)=y(i)(wTx(i)+b)(14)

定义超平面与整个数据集的函数间隔为:

γ^=mini=1,⋯,Nγ^(i)(15)

注意,当w和b同比例变化时,函数间隔也会同比例变化,但是超平面不变,这点性质对后面的推导很重要!!!

根据上面的铺垫,SVM模型可表示为:

maxw,bs.t.γγ(i)≥γ,i=1,⋯,N(16)

考虑到几何间隔与函数间隔的比例关系,(16)可以写成:

maxw,bs.t.γ^∥w∥γ^(i)≥γ^,i=1,⋯,N(17)

而根据前面的分析我们可以知道,我们总可以同比例缩放(w,b)使得γ^=1,而超平面不变。因此(17)可以进一步写成:

maxw,bs.t.1∥w∥γ^(i)≥1,i=1,⋯,N(18)

(18)可以再进一步写成:

minw,bs.t.12∥w∥2y(i)(wTx(i)+b)≥1,i=1,⋯,N(19)

这样SVM就转化为了一个凸二次规划问题,可以用一些软件包方便得求解。但是这种问题的直接求解比较低效,为此可以使用Lagrange乘子法得到其对偶问题,这样不仅能简化计算,还可以为后面引入kernel的概念做铺垫。

SVM的Lagrange对偶问题

对(19)的每一个不等式约束引进拉格朗日乘子(Lagrange multiplier)αi≥0,i=1,⋯,N,定义拉格朗日函数:

L(w,b,α)=12∥w∥2−∑i=1Nαiy(i)(wTx(i)+b)+∑i=1Nαi(20)

(19)的原问题(primer problem)是如下所示的极小极大问题:

minαmaxw,bL(w,b,α)(21)

(19)的对偶问题(dual problem)是如下所示的极大极小问题:

maxαminw,bL(w,b,α)(22)

先求minw,bL(w,b,α)。将L(w,b,α)分别对w,b求导并令其等于0:

∇wL(w,b,α)∇bL(w,b,α)=w−∑i=1Nαiy(i)x(i)=0=−∑i=1Nαiy(i)=0(23)

可得:

minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyjx(i)Tx(i)+∑i=1Nαi(24)

因此(22)可转化为:

maxαs.t.−12∑i=1N∑j=1Nαiαjyiyjx(i)Tx(i)+∑i=1Nαiαi≥0,i=1,⋯,N∑i=1Nαiy(i)=0(25)

求解出最优的α∗i后,就可以根据(23)进一步求出w∗。那怎么求b∗呢?

根据KKT条件:

y(i)(wTx(i)+b)αiα(y(i)(wTx(i)+b)−1)∇wL(w,b,α)=w−∑i=1Nαiy(i)x(i)∇bL(w,b,α)=−∑i=1Nαiy(i)≥1,i=1,⋯,N≥0,i=1,⋯,N=0,i=1,⋯,N=0,i=1,⋯,N=0,i=1,⋯,N(25)

我们可以断定,∃α∗j>0(否则可推出w=0,违背超平面的定义)。注意到,当α∗j>0时,意味着y(i)(wTx(i)+b)−1=0,也即这时候样本点在最大间隔边界上(称为支持向量)。这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。

w∗的表达式为:

w∗=∑i∈Sαiy(i)x(i)(26)

其中S表示支持向量的下标集合。

于是,理论上可以选取任意支持向量求解b∗。注意到对任意支持向量(x(s),y(s)),都有:

y(s)(wTx(s)+b)−1=0(27)

通过(26)即可求出b∗。实际上可以采用一种更鲁棒的做法:使用所有支持向量求解的结果的平均值:

b∗=1∥S∥∑s∈S(y(s)−wTx(s))(28)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: