支持向量机SVM基础理解

定义

支持向量机是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器;支持向量机还包括核技巧,使它成为实质上的非线性分类器。

支持向量机学习策略是间隔最大化,形式化为一个求解凸二次规划的问题。

间隔与支持向量

先来看看下面这一组数据的分布,这是一组两种标签的数据,两种标签分别由圆和方块代表。支持向量机的分类方法,是在这组分布中找出一个超平面作为决策边界,将不同类别分开,但能将样本分开的超平面有很多,应该使用哪一个呢?
在这里插入图片描述

直观上看,我们应该使用两类训练样本‘正中间’的超平面,因为该超平面对样本的局部扰动的容忍性最好。
在样本空间中,划分超平面可用以下方程表示:
w T x + b = 0 w^Tx+b=0 wTx+b=0
其中 w = ( w 1 , w 2 , . . . , w d ) w=(w_1,w_2,...,w_d) w=(w1,w2,...,wd)为法向量,决定了超平面的方向;b为位移项,决定了超平面和原点之间的距离。
样本空间中任意点x到超平面(w,b)的距离可写为:
r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{\vert w^Tx+b\vert}{\vert \vert w \vert\vert} r=wwTx+b

假设超平面能将训练样本正确分类,则有:
{ w T x i + b ≥ + 1 , y i = + 1 w T x i + b ≤ + 1 , y i = − 1 \begin{cases} w^Tx_i+b\geq +1, & y_i=+1\\ w^Tx_i+b\leq +1,& y_i=-1 \end{cases} {wTxi+b+1,wTxi+b+1,yi=+1yi=1
如下图所示,距离超平面最近的训练样本点使得上式的等号成立,他们称为支持向量,两类支持向量到超平面的距离之和称为间隔,为:
γ = 2 ∣ ∣ w ∣ ∣ \gamma=\frac{2}{\vert\vert w\vert\vert} γ=w2
在这里插入图片描述

要想找到最大间隔的超平面,就是要找满足上式中约束参数的 w w w b b b,使得 γ \gamma γ最大,即:
m a x a b 2 ∣ ∣ w ∣ ∣ max_{ab}\frac{2}{\vert\vert w\vert\vert} maxabw2
s . t . y i ( w T x i + b ≥ 1 ) , i = 1 , 2 , . . . , m s.t. y_i( w^Tx_i+b\geq 1),i=1,2,...,m s.t.yi(wTxi+b1),i=1,2,...,m
显然,为了最大化间隔,只需最大化 1 ∣ ∣ w ∣ ∣ \frac{1}{\vert\vert w\vert\vert} w1,等价于最小化 ∣ ∣ w ∣ ∣ 2 \vert\vert w\vert\vert ^2 w2

故上式可写为:
m a x a b 1 2 ∣ ∣ w ∣ ∣ 2 max_{ab}\frac{1}{2}{\vert\vert w\vert\vert}^2 maxab21w2
s . t . y i ( w T x i + b ≥ 1 ) , i = 1 , 2 , . . . , m s.t. y_i( w^Tx_i+b\geq 1),i=1,2,...,m s.t.yi(wTxi+b1),i=1,2,...,m

对偶问题

求解上式,可使用拉格朗日乘子法得到对偶问题。
具体推导略。

核函数

一般我们假设训练样本是线性可分的,即存在一个超平面能将训练样本正确分类;但实际中,原样本空间也许不存在一个能正确划分两类样本的超平面,对于这样问题,我们可将原始样本空间映射到一个更高维的特征空间,使得样本在这个空间里线性可分,那么就需使用核函数

常用的核函数及对比:

  • Linear Kernel 线性核 k ( x i , x j ) = x i T x j k(x_i,x_j)=x_i^{T}x_j k(xi,xj)=xiTxj 线性核函数是最简单的核函数,主要用于线性可分,它在原始空间中寻找最优线性分类器,具有参数少速度快的优势。 如果我们将线性核函数应用在KPCA中,我们会发现,推导之后和原始PCA算法一模一样,这只是线性核函数偶尔会出现等价的形式罢了。

  • Polynomial Kernel 多项式核 k ( x i , y j ) = ( x i T x j ) d k(x_i,y_j)=(x_i^{T}x_j)^d k(xi,yj)=(xiTxj)d 也有复杂的形式: k ( x i , x j ) = ( a x i T x j + b ) d k(x_i,x_j)=(ax_i^{T}x_j+b)^d k(xi,xj)=(axiTxj+b)d 其中 d ≥ 1 d\ge1 d1为多项式次数,参数就变多了,多项式核实一种非标准核函数,它非常适合于正交归一化后的数据,多项式核函数属于全局核函数,可以实现低维的输入空间映射到高维的特征空间。其中参数d越大,映射的维度越高,和矩阵的元素值越大。故易出现过拟合现象。

  • 径向基函数 高斯核函数 Radial Basis Function(RBF) k ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 ) k(x_i,x_j)=exp(-\frac{||x_i-x_j||^2}{2\sigma^2}) k(xi,xj)=exp(2σ2xixj2) σ > 0 \sigma>0 σ>0是高斯核带宽,这是一种经典的鲁棒径向基核,即高斯核函数,鲁棒径向基核对于数据中的噪音有着较好的抗干扰能力,其参数决定了函数作用范围,超过了这个范围,数据的作用就“基本消失”。高斯核函数是这一族核函数的优秀代表,也是必须尝试的核函数。对于大样本和小样本都具有比较好的性能,因此在多数情况下不知道使用什么核函数,优先选择径向基核函数。

  • Laplacian Kernel 拉普拉斯核 k ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ σ ) k(x_i,x_j)=exp(-\frac{||x_i-x_j||}{\sigma}) k(xi,xj)=exp(σxixj)Sigmoid Kernel Sigmoid核 k ( x i , x j ) = t a n h ( α x T x j + c ) k(x_i,x_j)=tanh(\alpha x^Tx_j+c) k(xi,xj)=tanh(αxTxj+c) 采用Sigmoid核函数,支持向量机实现的就是一种多层感知器神经网络。其实还有很多核函数,在参考博客里大家都可以看到这些核函数,对于核函数如何选择的问题,吴恩达教授是这么说的:如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况

【参考资料】
1.西瓜书
2.统计学习方法
3.DataWhale开源学习项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值