机器学习教程 之 支持向量机:模型篇1—支持向量与间隔

支持向量机是机器学习领域里最强的几种分类器之一,被广泛的运用于各种分类回归问题,如果不考虑集成学习算法以及近几年出现的深度学习算法,支持向量机的性能可以说是在学习领域具有统治地位,在一些中小型的数据集上它的性能甚至能够超过一些深度学习网络。其基本原理相当简单,但是模型的求解和优化却十分复杂,很难描述清楚,这里我会一步一步,尽我所能分章节的将它总结完善


##模型篇
· 支持向量机:模型篇1–支持向量与间隔
· 支持向量机:模型篇2–支持向量的拉格朗日对偶
· 支持向量机:模型篇3–对偶问题的求解: SMO算法
· 支持向量机:模型篇4–核函数与非线性优化
· 支持向量机:模型篇5–向量机的软间隔拓展

##代码篇
· 支持向量机:代码篇1-基于CVXPT优化函数求解
· 支持向量机:代码篇2-基于SMO算法求解


支持向量与间隔

支持向量机(Support Vector Machine),这一名称是令人疑惑的,在这一章节里我们会解释这一名称与支持向量机的最基本模型。让我们先从线性二分类支持向量机开始

对于一个给定的训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , y i ϵ { − 1 , + 1 } D = \{ (\mathbf{x_{1}},y_{1}),(\mathbf{x_{2}},y_{2}),...,(\mathbf{x_{m}},y_{m})\},y_{i}\epsilon\{-1 , +1\} D={(x1,y1),(x2,y2),...,(xm,ym)},yiϵ{1,+1} ,现在我们要考虑在数据集 X \mathbf{X} X 表示的一个高维空间中画出一个超平面来实现数据集中两个类型数据点的划分,为了方便表示,这里我们假设数据空间维度为2,用于划分的超平面为一条直线,可以作图如下
这里写图片描述
正如上图所示,对于一个线性可分问题来说,能够将两类样本分开的超平面(图中直线)往往不止一个,那么我们寻找哪一个比较好呢?在图中,直观上看来,应该去找位于两类训练样本“正中间“的那一条红色直线作为划分的超平面,因为该超平面对训练样本局部扰动的“容忍性“最好。例如,由于训练集的局限性或噪声的因素,测试集中的样本可能比图中训练集中的样本更加接近两个类的分隔界,这就有可能使得一些超平面出现划分错误的现象,在这种情况下,红色超平面会受到最小影响,换而言之,这个划分超平面所产生的分类结果是鲁棒的,对未见的测试点泛化性能最强

在样本空间中,划分超平面可通过如下的线性方程来描述

w T x + b = 0 \mathbf{w^{T}}\mathbf{x}+b = 0 wTx+b=0

其中 w = ( w 1 ; w 2 ; . . . ; w d ) \mathbf{w} = (w_{1};w_{2};...;w_{d}) w=(w1;w2;...;wd) 为超平面的法向量,决定了超平面的方向; b b b 为位移项,决定了超平面和原点之间的距离。显然,划分超平面可以由 w \mathbf{w} w b b b唯一确定。我们现在来看,空间中任意一个样本点到达超平面的距离 λ \lambda λ , 假定对于一个点 x x x 它投影到超平面上对应的点为 x 0 x_{0} x0 ,则根据平面几何的知识,我们可以得出
x = x 0 + λ w ∣ ∣ w ∣ ∣ x = x_{0} + \lambda\frac{\mathbf{w}}{||\mathbf{w}||} x=x0+λww

其中 ∣ ∣ w ∣ ∣ ||\mathbf{w}|| w w \mathbf{w} w 的二范数 , w ∣ ∣ w ∣ ∣ \frac{\mathbf{w}}{||\mathbf{w}||} ww 可以理解为单位法向量,又因为 x 0 x_{0} x0 是超平面上的点,所以有 w T x 0 + b = 0 \mathbf{w}^{T}\mathbf{x}_{0}+b = 0 wTx0+b=0 , 用此式与上式将 x 0 x_{0} x0 消去,就可以得到点 x x x 与超平面之间的距离关系

λ = w T x + b ∣ ∣ w ∣ ∣ \lambda = \frac{\mathbf{w}^{T}\mathbf{x}+b}{||\mathbf{w}||} λ=wwTx+b

为了得到距离,将上式取绝对值(或者乘上 y i ϵ { + 1 , − 1 } y_{i}\epsilon\{+1,-1\} yiϵ{+1,1})有

λ = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ = ∣ f ( x ) ∣ ∣ ∣ w ∣ ∣ \lambda = \frac{|\mathbf{w}^{T}\mathbf{x}+b|}{||\mathbf{w}||} = \frac{|f(x)|}{||\mathbf{w}||} λ=wwTx+b=wf(x)

在得到距离公式以后,我们假设超平面 ( w , b ) (\mathbf{w},b) (w,b) 能将训练样本正确分类,即对于任意 ( x i , y i ) (\mathbf{x}_{i},y_{i}) (xi,yi) ,若 y i = + 1 y_{i} = +1 yi=+1 ,则有 w T x + b > 0 \mathbf{w^{T}}\mathbf{x}+b > 0 wTx+b>0;若 y i = − 1 y_{i} = -1 yi=1 ,则有 w T x + b < 0 \mathbf{w^{T}}\mathbf{x}+b < 0 wTx+b<0,即可以表示如下

{ w T x + b > 0 , y i = + 1 w T x + b < 0 , y i = − 1 \left\{\begin{matrix}\mathbf{w^{T}}\mathbf{x}+b > 0 , y_{i} = +1\\ \mathbf{w^{T}}\mathbf{x}+b < 0 , y_{i} = -1\end{matrix}\right. {wTx+b>0,yi=+1wTx+b<0,yi=1

我们现在可以看看下图,距离超平面最近的几个训练样本点可以使上式中的等式成立。它们被称为“支持向量“,两个异类支持点到超平面的距离之和为

γ = 2 ∣ ∣ w ∣ ∣ \gamma = \frac{2}{||\mathbf{w}||} γ=w2

它被称为“间隔“
这里写图片描述

现在建立优化目标方程,找到使间隔最大的划分超平面参数 ( w , b ) (\mathbf{w},b) (w,b)

o b j { m a x w , b 2 ∣ ∣ w ∣ ∣ s . t y i ( w T x + b ) > = 1 , i = 1 , 2 , . . . , m obj \left\{\begin{matrix} max_{\mathbf{w},b}\frac{2}{||\mathbf{w}||}\\ s.t y_{i} (\mathbf{w^{T}}\mathbf{x}+b ) >=1 ,i = 1,2,...,m\end{matrix}\right. obj{maxw,bw2s.tyi(wTx+b)>=1,i=1,2,...,m

显然,为了最大化间隔,仅需要最大化 ∣ ∣ w ∣ ∣ − 1 ||\mathbf{w}||^{-1} w1 ,这等价于最小化 ∣ ∣ w ∣ ∣ 2 ||\mathbf{w}||^{2} w2 ,于是,可以将上式重写为

o b j { m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t y i ( w T x + b ) > = 1 , i = 1 , 2 , . . . , m obj \left\{\begin{matrix} min_{\mathbf{w},b}\frac{1}{2}||\mathbf{w}||^{2}\\ s.t y_{i} (\mathbf{w^{T}}\mathbf{x}+b ) >=1 ,i = 1,2,...,m\end{matrix}\right. obj{minw,b21w2s.tyi(wTx+b)>=1,i=1,2,...,m

这就是支持向量机的基本模型,由上面的分析我们可以知道,模型的求解其实仅仅于“支持向量“的分布有关,而与其他训练点无关,“支持向量“的分布决定了超平面的划分,这也是“支持向量机“名称的由来

更多资源下载

微信搜索“老和山算法指南”获取更多下载链接与技术交流群
在这里插入图片描述
有问题可以私信博主,点赞关注的一般都会回复,一起努力,谢谢支持。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liangjun_Feng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值