支持向量机

Posted 一蓑烟雨晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机相关的知识,希望对你有一定的参考价值。

文章目录

6.1 间隔与支持向量

从几何角度,对线性可分数据集,支持向量机就是找距离正负样本都最远的超平面,相比于感知机,其解是唯一的,且不偏不倚,泛化性能更好。

给定训练样本集,分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开,支持向量机倾向找到产生分类结果具有鲁棒性,对未见示例的泛化能力最强的划分超平面。

假设超平面能将训练样本正确分类,即
w T x i + b ⩾ + 1 , y i = + 1 w T x i + b ⩽ − 1 , y i = − 1 \\begincases\\boldsymbolw^\\mathrmT \\boldsymbolx_i+b \\geqslant+1, & y_i=+1 \\\\ \\boldsymbolw^\\mathrmT \\boldsymbolx_i+b \\leqslant-1, & y_i=-1\\endcases wTxi+b+1,wTxi+b1,yi=+1yi=1
距离超平面最近的几个训练样本点使得上式的等号成立,它们被称为“支持向量”,两个异类支持向量到超平面的距离之和为
γ = 2 ∥ w ∥ \\gamma=\\frac2\\|\\boldsymbolw\\| γ=w2
它被称为“间隔”。
支持向量机是要找到具有“最大间隔”的划分超平面,即建立如下基本型:
min ⁡ w , b 1 2 ∥ w ∥ 2  s.t.  y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , … , m \\beginaligned \\min _\\boldsymbolw, b & \\frac12\\|\\boldsymbolw\\|^2 \\\\ \\text s.t. & y_i\\left(\\boldsymbolw^\\mathrmT \\boldsymbolx_i+b\\right) \\geqslant 1, \\quad i=1,2, \\ldots, m \\endaligned w,bmin s.t. 21w2yi(wTxi+b)1,i=1,2,,m
此处,有另一种解释得到上式

6.2 对偶问题

注意到本身上式是一个凸优化规划问题,能直接用现成的优化计算包求解,但是我们可以有更高效的方法。

下图来自B站白板推导

原问题等价于对偶问题的充要条件就是满足KKT条件

如何从下式求解 α i \\alpha_i αi呢?
max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \\max _\\boldsymbol\\alpha \\sum_i=1^m \\alpha_i-\\frac12 \\sum_i=1^m \\sum_j=1^m \\alpha_i \\alpha_j y_i y_j \\boldsymbolx_i^\\mathrmT \\boldsymbolx_j αmaxi=1mαi21i=1mj=1mαiαjyiyjxiTxj  s.t.  ∑ i = 1 m α i y i = 0 α i ⩾ 0 , i = 1 , 2 , … , m \\beginarrayll \\text s.t. & \\sum_i=1^m \\alpha_i y_i=0 \\\\ & \\alpha_i \\geqslant 0, \\quad i=1,2, \\ldots, m \\endarray  s.t. i=1mαiyi=0αi0,i=1,2,,m
人们通过利用问题本身的特性,提出了很多高效算法,SMO是其中一个著名的代表。

6.3 核函数

在前面的讨论中,我们假设训练样本是线性可分的,然而现实中原始样本空间内也许并不存在一个能正确划分两类样本的超平面。
幸运的是,如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分。


但是直接计算 ϕ ( x i ) T ϕ ( x j ) \\phi\\left(\\boldsymbolx_i\\right)^\\mathrmT \\phi\\left(\\boldsymbolx_j\\right) ϕ(xi)Tϕ(xj)通常是困难的,为了避开这个障碍,可以设想这样一个函数,即核函数:

κ ( x i , x j ) = ⟨ ϕ ( x i ) , ϕ ( x j ) ⟩ = ϕ ( x i ) T ϕ ( x j ) \\kappa\\left(\\boldsymbolx_i, \\boldsymbolx_j\\right)=\\left\\langle\\phi\\left(\\boldsymbolx_i\\right), \\phi\\left(\\boldsymbolx_j\\right)\\right\\rangle=\\phi\\left(\\boldsymbolx_i\\right)^\\mathrmT \\phi\\left(\\boldsymbolx_j\\right) κ(xi,xj)=ϕ(xi),ϕ(xj)=ϕ(xi)Tϕ(xj)
以下是常用的几个核函数:

6.4 软间隔与正则化

现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;退一步说,即便恰好找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的。
缓解该问题的一个方法是允许支持向量机在一些样本上出错。

软间隔允许某些样本不满足约束,但在最大化间隔的同时,不满足约束的样本应尽可能少。于是有如下优化目标:
min ⁡ w , b 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ℓ 0 / 1 ( y i ( w T x i + b ) − 1 ) , \\min _\\boldsymbolw, b \\frac12\\|\\boldsymbolw\\|^2+C \\sum_i=1^m \\ell_0 / 1\\left(y_i\\left(\\boldsymbolw^\\mathrmT \\boldsymbolx_i+b\\right)-1\\right), w,bmin21w2+Ci=1m0/1(yi(以上是关于支持向量机的主要内容,如果未能解决你的问题,请参考以下文章

西瓜书学习—支持向量机之最优化

求助半监督最小二乘支持向量机的MATLAB程序

优化分类基于matlab遗传算法优化支持向量机分类(多输入多分类)含Matlab源码 QF003期

反向支持向量机:计算预测

连续受限玻尔兹曼机

支持向量机SVM模型中C和gamma参数分别是什么?对模型有什么影响?