机器学习之感知机与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)
相关文章推荐
- 机器学习:SVM公式推导
- 机器学习:神经网络反向传播推导
- 机器学习之支持向量机(SVM)
- 极端学习机学习之路----svm的推导过程(精简版)
- 机器学习之SVM初解与浅析(一):最大距离
- 支持向量机(SVM)的详细推导过程及注解(一)
- 机器学习实战之SVM
- 很好的学习资料-详细介绍SVM-来自matlab论坛-【关于SVM的那点破事】.mht
- 统计机器学习笔记——感知机(1)
- SVM支持向量机算法的详细推导
- 机器学习实战——SVM(1/3)
- 机器学习公开课SVM学习中
- Hadoop学习4_CentOS6.5系统下Hadoop2.6.0集群增加机器详细操作
- 机器学习实战python实例(2)SVM与核函数
- 机器学习实战之SVM
- 机器学习笔记-SVM
- 机器学习实战-SVD与特征值分解的理论推导及SVD在推荐系统中的应用
- 机器学习实战-之SVM核函数与案例
- 李宏毅机器学习课程笔记7:Transfer Learning、SVM、Structured Learning - Introduction
- 对“视觉机器学习20讲配套仿真代码”的研究心得---SVM方法