支持向量机(1)-概念及推导

本文深入探讨支持向量机(SVM),包括其基本概念、线性可分SVM的推导、非线性可分情况下的解决方案以及如何引入松弛变量处理异常点。SVM通过最大化边际并利用核函数解决非线性问题,是强大的分类算法之一。
摘要由CSDN通过智能技术生成

之前一篇文章《Andrew机器学习课程笔记(3)—— K均值、SVM、PCA》有分析过SVM,但感觉不够系统,也没有算法落地

本篇及下一篇从“概念及推导”和“算法实现”两个方面讨论SVM
本篇包含:SVM基本概念、线性可分SVM、非线性可分SVM、带有松弛变量的SVM


概念

支持向量机(SVM)是一种二类分类模型,其基本目标是找到一个分类平面,使得两边的特征点与之距离(margin)最大。

          这里写图片描述
               图1-1. 二维空间线性SVM

图1-1中落在蓝色边界的样本称为支撑向量

对于非线性可分的情况,SVM通过引入核函数,将样本映射到高维空间实现分类。
SVM一直被认为是效果最好的现成可用的分类算法之一


线性可分SVM

目标函数推导

考虑线性分类器的超平面方程

f(x)=WTX+b=0(1)

使用sign的激活函数
y=sign(f(x))={1,1,WTX+b>0WTX+b<0(2)

由此可以得到样本点到分类面的 函数间隔(functional margin)
γf=y(WTX+b)=yf(x)(3)

乘上y可以保证间隔的非负性
同时,由点面距离可以得到 几何间隔(geometrical margin)
γg=yγ=γf||W||(4)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
几何间隔的推导
参考文章 《支持向量机: Maximum Margin Classifier》的评论
x 垂直投影到超平面的点为x0 γ x x0的距离标量
x=x0+γw||w||(5)

等式(5)两边左乘 wT ,得 wTx=wTx0+γwTw||w||
又因为 wTx=f(x)b ,代入,得 f(x)=wTx0+b+γwTw||w||=f(x0)+γwTw||w||
f(x0)=0 ,得 f(x)=γwTw||w||
于是有 γ=f(x)||w|| ,左乘 y 确保非负性,有 γg=yγ=yf(x)||w||=γf||w||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

可以看到,几何间隔较函数间隔多了一个缩放因子 ||W|| ,从而避免了 w b 等比例缩放给测量值带来的影响

由此确定 SVM 的目标函数

max(γg),s.t.yi(wTxi+b)γf(6)

为了计算方便,固定 γf=1 ,得SVM最终 目标函数
max(1||w||),s.t.,yi(wTxi+b)1(7)

目标函数求解

为了方便,将SVM目标函数(7)做等价变形

min(12||w||2),s.t.,yi(wTxi+b)1(8)

根据拉格朗日乘子法,(8)式可以变为求(9)式的极值
L(w,b,a)=12||w||2i=1nai(yi(wTxi+b)1)(9)

w b ai 求偏导,有
Lw=wni=1aiyixiLb=ni=1aiyiLai=yiwTxi+yib1(10)

令各偏导为0,得
w=ni=1aiyixi0=ni=1aiyib=1yjni=1aiyi(xi.xj)=yjni=1aiyi(xi.xj)(11)

这里 yi=1yi 是因为 yi={1,1}

事实上我们将式(11)中的 w 代入式(1),会有

f(x)=(i=1naiyixi)x+b=i=1naiyi<xi,x>+b(12)

也就是说,对于新点 x 的预测,只需要计算其与训练数据点的内积即可

此外,非支持向量点对应的 ai,其实取值为0。因为这些点对超平面没影响。


非线性可分SVM

参考文章《支持向量机: Kernel》,考虑如图2-1所示的数据分布

              这里写图片描述
               图2-1. 两类数据无法用线性分类器分类

图1-2理想的分类面为 a1x1+a2x21+a3x2+a4x22+a5x1x2+a6=0

为了实现线性可分,可以将2维数据映射到5维

z1=x1z2=x21z3=x2z4=x22z5=x1x2(13)

于是有线性形式
i=15aizi+a6=0(14)

因此对于非线性可分的情况,理论上首先将数据做适当升维即可(对比式(12))

f(x)=i=1naiyi<ϕ(xi),ϕ(x)>+b(15)

但这样一来会遇到 “维数爆炸”的问题(高斯核会将数据升到无穷维),导致计算量急剧升高

SVM核函数的做法是:在原始维度以某种函数做运算,确保与升维内积一个效果

K(x1,x2)=(<x1,x2>+1)2(16)

常用的核函数:

  • 多项式核
    K(x1,x2)=(<x1,x2>+R)d

    维度映射 Rm>Rm+d
  • 高斯核
    K(x1,x2)=e||x1x2||22σ2

    维度映射 Rm>
    • 如果 σ 很大,高次特征的权重衰减的很快,近似于映射到一个低维空间
    • 如果 σ 很小,则可以将任意数据映射为线性可分。但有可能出现过拟合问题
    • 因此通过调节 σ ,高斯核具有相当高的灵活性。是使用最广泛的核函数之一
  • 线性核
    K(x1,x2)=<x1,x2>

    退化为线性SVM

带有松弛变量的SVM

由于不可避免的噪声,有些数据会偏离正常位置很远,给SVM分类平面带来很大影响(图3-1)

             这里写图片描述
             图3-1. 被黑圈包围的蓝点是异常点(outlier),需要被排除

如式(17)所示,引入一个松弛变量 ξi

min(12||w||2+Ci=1nξi)s.t.,{yi(wTxi+b)1ξiξi0(17)


参考

【1】Free Mind 支持向量机系列
【2】支持向量机(Support Vector Machines-SVM)算法笔记(一)-Python


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值