支持向量机(SVM)实现MNIST手写体数字识别

一、SVM算法简述支持向量机即Support Vector Machine,简称SVM。一听这个名字,就有眩晕的感觉。支持(Support)、向量(Vector)、机器(Machine),这三个毫无关联的词,硬生生地凑在了一起。从修辞的角度,这个合成词最终落脚到”Machine”上,还以为是一种牛X的机器呢?实际上,它是一种算法,是效果最好的分类算法之一。 SVM是最大间隔分类器,它能很好地...
摘要由CSDN通过智能技术生成

一、SVM算法简述

支持向量机即Support Vector Machine,简称SVM。一听这个名字,就有眩晕的感觉。支持(Support)、向量(Vector)、机器(Machine),这三个毫无关联的词,硬生生地凑在了一起。从修辞的角度,这个合成词最终落脚到”Machine”上,还以为是一种牛X的机器呢?实际上,它是一种算法,是效果最好的分类算法之一。 
SVM是最大间隔分类器,它能很好地处理线性可分的问题,并可推广到非线性问题。实际使用的时候,还需要考虑噪音的问题。 
本文只是一篇学习笔记,主要参考了July、pluskid等人相关文章。将要点记录下来,促进自己的进步。

SVM是最大间隔分类器

既然SVM是用来分类的,咱就举个简单的例子,看看这个SVM有啥特点。如下图所示,有一个二维平面,平面上有两种不同的数据,分别用圈和叉表示。由于这些数据是线性可分的,可以用一条直线将这两个数据分开,这样的直线可以有无数条。 
大间隔分类器 
绿线、粉红线、黑线都能将两类区分开。但是那种更好呢?感觉上黑线似乎更好些。粉红线和绿线都离样本太近。要是样本或分界线稍稍有些扰动,分类就可能出错。黑线好就好在离两类都有一个安全间隔(蓝线与黑线间的间隔),即使有些扰动,分类还是准确的。这个安全间隔,也就是“Margin”,当然我们觉得间隔越大分类越准确。 
这种分类思想该作何理解呢,他和逻辑回归的分类有何区别呢? 
当用逻辑回归的思想来处理分类问题时(将数据分成正负两类:正类y=1,负类y=0)。逻辑回归函数反映的是数据是正类的概率,当这个概率大于0.5时,预测这个数据是正类,反之,小于0.5时,预测这个数据是负类。它优化的目标是预测出错的概率越小越好。可以参看这里 
SVM则不同,它要找出一条离两类都有一定安全间隔的分界线(专业点叫超平面)。优化的目标就是安全间隔越大越好。 
因此,SVM也被叫做最大间隔分类器。

线性可分的情况

SVM是通过间隔来分类。我们怎么来定量地表达呢?先来看看线性可分的情况,分类函数

f(x)=wTx+bf(x)=wTx+b


xx是特征向量,ww是与特征向量维数相同的向量,也叫权重向量,bb是一个实数,也叫偏置。当f(x)=0f(x)=0时,表达的就是SVM的分类边界,也就是超平面。SVM分成的类y可以为1或-1(注意,与逻辑回归不同,不是1和0)。f(x)f(x)大于0的点对应y=1的数据,f(x)f(x)小于0的点对应y=-1的数据。那我们关心的间隔怎么表达? 
先来看看函数间隔,用γ^γ^表示:γ^=y(wTx+b)=yf(x)γ^=y(wTx+b)=yf(x)。|f(x)||f(x)|值越大,也就是yf(x)yf(x)越大,数据点离超平面越远,我们越能确信这个数据属于哪一类别,这是最直观的认识。 
那这个是不是就完美表达了我们想要的间隔呢?看看这种情况,固定超平面,当ww,bb同时乘以2,这个间隔就扩大了两倍。那怎么表达不受参数缩放的变化影响的间距呢?老老实实来画个图看看咯。 
这里写图片描述 
xx是超平面外的一点,它离超平面的距离是γγ,显然ww是超平面的法向量,x0x0是xx在超平面的投影。则x=x0+γw||w||x=x0+γw||w||,其中||w||||w||是范数,用初等数学来理解就是向量的长度,也叫向量的模。因为在超平面上,f(x0)=0f(x0)=0,等式两边乘以wTwT,再加上一个bb,化简可得γ=wTx+b||w||=f(x)||w||γ=wTx+b||w||=f(x)||w||。注意这个γγ是可正可负的,为了得到绝对值,乘以一个对应的类别y,即可得出几何间隔(用γ~γ~表示)的定义: 

γ~=yf(x)∥w∥=γ^∥w∥γ~=yf(x)‖w‖=γ^‖w‖


这个γ~γ~是不受参数缩放影响的。于是,我们的SVM的目标函数就是

maxγ~maxγ~


,当然它得满足一些条件,根据margin的含义

yi(wTxi+b)=γ^i≥γ^,i=1,…,nyi(wTxi+b)=γ^i≥γ^,i=1,…,n

  • 8
    点赞
  • 163
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一摩尔自由

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

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

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

打赏作者

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

抵扣说明:

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

余额充值