支持向量机
二分类学习最基本的想法就是基于训练集D在
样本空间中找到一个划分超平面。
支持向量机
从集合几何角度来看,对于线性可分数据集,
支持向量机就是找距离正负样本都最远的那个
超平面。
相比于感知机:其解唯一,且泛化性能更好模型
模型:给定线性可分数据集X,支持向量机模型希望求得数据集X关于超平面的几何间隔y达到最大的那个超平面,然后套上一个sign函数实现分类功能
y=sign(wTx+b)=-1 wTx+b<0
1 wTx+b>0
策略
我们希望找到具有“最大间隔”的划分超面。最后得到优化问题,欲找到具有“最大间隔”(maximum margin)的划分超平面,也就是要找到能满足式(6.3)中约束的参数t和b,使得?最大,既
MAX s.t. wTx+b) ≥1, i=1.2....,m.
显然,为了最大化间隔,仅需最大化ul|-1,这等价于最小化 te|/.于是,式MAX可重写为
min =w(wTz+b)≥1, i=1,2....,m.
这就是支持向量机(Support Vector Machine,简称SVM)的基本型算法,想要求解上述式子,得到最优解,以确定这个划分超平面所对应的模型
f(x)=wTx+b,
求解:
对于式子6.6的求解,这个优化问题为含不等
式约束的优化问题,且是凸优化问题。这里采用的是拉格朗日乘子法得到“对偶问题”,解“对偶问题”得出α,解出α后,求出w和b从而确定模型
对偶问题:软间隔与正则化
前面的支持向量机有个前提:数据集是线性可分的。,即存在一个超平面能将不同类的样本完全划分开。
为了缓解这个问题。想的一个办法就是允许支持向量机在一些样本上出错。因此,引入了“软间隔”的概念。
硬间隔:前面的支持向量机要求所有样本都必须满足式子6.3,
uTx;+b +1, =+1; (
wTx;+b<-1, a=-1
即所有样本都划分正确。
软间隔:
允许某些样本不满足约束
min=yi(wTx+b)>1. i=1,2,3...
从数学角度来说,软间隔就是允许部分样本(但要尽可能少)不满足下式中的约束条件
min=yi(wTx+b)>1. i=1,2,3...m
因此,可以将必须严格执行的约束条件转化为具有一定灵活性的“损失”,合格的损失函数要求如下:
当满足约束条件时,损失为0
当不满足约束条件时,损失不为0,
当不满足约束条件时,损失与其违反约束条件的程度成正比
只有满足以上要求,才能保证在最小化(min)损失的过程中,保证不满足约束条件的样本尽可能的少。
优化目标(策略)
当然,在最大化间隔的同时,不满足约束的样本应尽可能少,于是,优化目标可
写为
其中C>0是一个常数,0/是“0/1损失函数”
显然,当C为无穷大时,前者迫使所有样本均满足约后者,于是前者式等价于;当C取有限值时,前者允许一些样本不满足约束,引入松弛变量,上述优化问题和下述优化问题等价
这就是“软间隔支持向量机”
支持向量回归(SVR)
回归问题
SVR与传统回归模型计算损失的方式不同,相比于线性回归用一条线来拟合训练样本,支持向量回归(SVR)而是采用一个以f(z)=wTx+b为中心,宽度为2e的间隔带,来拟合训练样本。落在带子上的样本不计算损失(类比线性回归在线上的点预测误差为Q),不在带子上的则以偏离带子的距离作为损失(类比线性回归的均方误差),然后以最小化损失的方式迫使间隔带从样本最密集的地方(中心地带)穿过,进而达到拟合训练样本的目的。