浅谈 SVM

SVM,全称是 support vector machine,中文名叫支持向量机。SVM 是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。
这里写图片描述
如上图所示, w⃗  为分割线(红线)的法向量,对平面上的某个样本点(向量 u⃗  ),如果满足:

w⃗ u⃗ c,.

:w⃗ u⃗ +b0,.

最大间隔假设:
w⃗ x++b1,w⃗ x+b1

之所以为1,是为了数学上的方便,实际上可以为任何值,可以伸缩法向量 w⃗  的长度而使其为1.

对与每个样本点的 yi 值,有 yi=+1/1 .
则有:

yi>0,yi(w⃗ x++b)1,yi<0,yi(w⃗ x+b)1

yi(w⃗ x⃗ +b)1

对街边(图中红色虚线)点的要求: yi(w⃗ x⃗ +b)=1 .

“街宽”(两条红虚线的宽度): WIDTH=(x+x)w⃗ ||w⃗ ||=x+w⃗ ||w⃗ ||xw⃗ ||w⃗ ||=1b||w⃗ ||1b||w⃗ ||=2||w⃗ ||

欲找到具有”最大间隔”的划分超平面,也就是要找到能满足 yi(w⃗ x⃗ +b)1 中约束的参数 w 和 b,使得 2||w|| 最大,显然,为了最大化间隔,仅需最大化 ||w||1 ,这等价于最小化 ||w||2 ,于是,可得到:

min12||w2||,w,b,使yi(w⃗ xi+b)1,i=1,2,...,m

这就是支持向量机(SVM)的基本型。

SVM 这个东西本身并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清楚。关于 SVM 更深入的理论和推导,会在后续博文中陆续给出,本篇博客不作详细说明。

这里再给出两个概念:硬间隔与软间隔

如上述所说的,所有的样本都必须划分正确,这成为”硬间隔“,而软间隔则是允许某些样本不满足约束

yi(w⃗ xi+b)1
当然,在最大化间隔的同时,不满足约束的样本应尽可能少。

支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机、线性支持向量机及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。