支持向量机理论及用libsvm的实现

Section 1.最小间隔最大化

刚才不知道你们在看左面的图时,有没有这样一个问题 ——这样岂不是有无穷个超平面可以线性划分出正负类样本呢??答案是确实,那么预测新样本的时候,我们应该选哪一个超平面作为决策边界呢??

当然是最好的那个超平面啦。那怎么定义一个超平面比其他呢,我们可以给这无穷个超平面定义一个新属性——”最小间隔( min Margin)“

我们不妨把一个决策边界(超平面) 的ωTx+b=0的 ⋆ min Margin ⋆ 定义为该超平面和两个样本群的最小距离的和 ⇓样本样本,其中样本样本到超平面的距离d+样本+d−样本,其中d±样本=min{样本xi到超平面的距离i=1,2,....n} 由此可知这个minMargin属性显然越大越好,因为minMargin越大,说明决策边界对于样本的容错率越高

Section 2.支撑向量:事实上,距离超平面最近的样本点就是我们所说的支撑向量(Support Vector)

但是这样由于距离是绝对值的缘故,也就意味着在这个距离之间的区域,只要法向量为 ω 的超平面都能满足这一距离和,那么这个属性仍然不能区分无穷个超平面之间的优劣。 但是如果加一个限定条件的话就能解决这个问题了,即所有能够划分数据集的超平面必须满足 样本样本d+样本−d−样本=0 ,这样即可确保超平面的唯一性,使我们求解最优条件更加容易。

而SVM的目标,即是找到所有满足限定条件决策边界里minMargin最大的那一个。

用数学描述该优化问题的目标函数则是

f(w,b)=argmax( min|ωTxi+b|||w||),i=1,2,⋯,ns.t.  yi(ωTxi+b)≥0(γ^xi≥1)

⇑ 其中 f 为 n+1 元函数, argmax 函数返回一个取到最大值minMargin时的坐标,而minMargin也就是样本点 xi 到超平面的距离 |ωTxi+b|||w|| 的最小值,函数下面的s.t. 表示 subject to ,意思是"约束于..",这里的约束条件 yi(ωTxi+b)≥0 表示所有的样本都被正确的线性划分,即函数的所有点都基于满足正确划分的前提

{\color{green}{\begin{eqnarray}    \label{eq}  &又&∵ \alpha\boldsymbol{\omega}^T\boldsymbol x +\alpha b\Leftrightarrow\boldsymbol{\omega}^T\boldsymbol x + b,  \alpha\in R^+\\ &∴&\exists \alpha\in R^+,使得\hat\gamma_{x_{sv} }=1  \end{eqnarray} }}{\color{green}{\begin{eqnarray}    \label{eq}  &又&∵ \alpha\boldsymbol{\omega}^T\boldsymbol x +\alpha b\Leftrightarrow\boldsymbol{\omega}^T\boldsymbol x + b,  \alpha\in R^+\\ &∴&\exists \alpha\in R^+,使得\hat\gamma_{x_{sv} }=1  \end{eqnarray} }} 我们发现等式两边同乘实数 α 不改变超平面的法向量,所以我们无论遇到怎样的超平面,都显然可以通过选定一个合适的 α 使得支持向量 x0 与决策边界的函数间隔(function margin)放缩为 1

那么原目标函数就成了

※最大化等价于最小化是为了求导方便,平方是为了去掉范数函数带来的根号,注意约束条件修改为因为我们将支撑向量与边界的缩放为,而支撑向量又是离边界最近的样本点,所以任意样本与边界的函数间隔都应该比大f(w,b)=argmax(1||w||)⇔f(ω)=argmin(12||ω||2)s.t.  yi(ωTxi+b)≥1(γ^xi≥1)※ 最大化1||w||等价于最小化12||w||2(12是为了求导方便,平方是为了去掉范数函数||w→||=w12+w22+⋯+wn2带来的根号,注意约束条件修改为γ^≥1,因为我们将支撑向量xsv与边界的γ^xsv缩放为1,而支撑向量xsv又是离边界最近的样本点,所以任意样本与边界的函数间隔γ^xi都应该比γ^xsv大

Section 3.硬间隔SVM(Hard Margin SVM)

f(ω,b)=argmin(12||ω||2)s.t.  yi(ωTxi+b)≥1(γ^xi≥1) 可以注意到,刚才我们得到的目标函数是这样的,而SVM的目的就是找到最优的 ω 来确定超平面去完全划分正确的样本空间,这个过程也叫作硬间隔SVM(Hard Margin SVM)

硬间隔最大的好处就是能完完全全地正确划分出正负样本集合硬间隔SVM最大的好处就是能完完全全地正确划分出正负样本集合

但是.............可悲的是——如果样本空间是线性不可分的,,,

那么 f(ω) 将会遭遇 GAME OVER 的尴尬情况,也就是无解。这是为啥呢?咱们再看一下上次用到的例子

Section 4.软间隔SVM (Soft Margin SVM)

比如说这张图里的样本空间分布, SVM 使了吃奶的劲也找不到一个线性决策边界可以把两类样本区分开.......实在是惨烈,而屋漏偏遭连夜雨——现实世界当中的样本空间99%都是线性不可分的(╥╯^╰╥)

那怎么办?伟大的工人阶级先锋王进喜说过一句话

有条件上,没有条件创造条件也要上。

于是我们引入了软间隔SVM方法,这个方法与硬间隔SVM最大的区别就是可以处理线性可分&&线性不可分的样本空间,它是如何实现的呢?

既然想要继续用线性边界划分线性不可分的样本空间,那必然要做出一些妥协...........这个妥协就是我们为了顾全大局要容忍一些小错误

用数学语言来讲,就是在原来的目标优化函数中,引入一个松弛变量(slack variable) ξ 来容忍一定的误差,使SVM面对数据时有更强的鲁棒性(Robust),而且对于每个样本 xi ,都有给予 xi 一定的容忍度 ξi ,使得 yi(ωTxi+b)≥?

这个 ? 其实就是我们松弛的目标——首先 ? 是用来控制函数间隔的最小值

那么 增大?增大 ,意味最近的 xi 离边界的函数间隔越来越远,也就是分类分的越彻底!但是在线性不可分情况下,因为我们只能选择线性边界,有的 xi 甚至被分到另一个类别了,那么它的函数间隔显然是 γ^xi<0 的,但我们想要顾全大局而容忍这个被分错一点点的样本!!所以就对于这个样本就让它的 γ^xi 稍微变大一些,怎么变大?当然是把原来的函数间隔加上容错度(✪ω✪) →γ^i+ξi 使得 γ^i+ξi≥1⇔γ^xi≥1−ξi

这个不等式的目的,其实就是假装本来分错的被边界分类成功了狗头↑这个不等式的目的,其实就是假装本来分错的xi被边界分类成功了(狗头) 但是一个很严肃的问题立马出现了,如果我把每个容忍度都设为无限大,那岂不是什么错误都能容忍了,所有样本都假装分对还有什么意义呢?

所以当然我们的目的是将整体样本的容忍度尽可能小一些

于是软间隔SVM的目标优化函数如下
f(ω,b,ξ)=argmin(12||ω||2+C∑i=1nξi)s.t.yi(ωTxi+b)≥1−ξi(γ^xi≥1−ξi)ξi≥0 紫色项紫色项 右侧即为引入的松弛变量,我们对每个样本的容忍度 ξi 求和引入到目标函数中,以求取整体尽量小,而 C 是一个用来放缩松弛变量和 ∑i=1nξi 在整个目标函数中的权重的值,因为有的时候,有一些噪声样本会异常的偏离边界,我们可以选择放缩 C 来实现是否要容忍这些噪声样本

绿色项绿色项 是新的不等式约束条件,也就是我们之前所说的 ? 那里。

下面 ξi≥0 限定了松弛变量,意思很显然,我们把 ξi 的值代表容忍度

那么如果 ξi<0 那岂不是代表 ξi 成了严肃度吗哈哈哈哈哈

Section 5*.无限维空间的线性可分性(补充知识)

随着上一小节我们对样本空间的分类过程进一步优化,使得线性不可分的情况得到了一些解法,但是我们仍然想要找到一种方法能最好完全分开线性不可分的样本空间

发表于1965年的 Cover, T.M., Geometrical and Statistical properties of systems of linear inequalities with applications in pattern recognition 这篇文章在文章中给出了一个结论

这一个结论意味着 当样本规模 N 为常数时,样本空间的维度 d 越高,样本空间线性可分的可能性(Probability)越高,直到样本空间维度 d 超过样本规模 N ,样本空间线性可分的可能性=1(必然)

什么意思呢,这个结论告诉我们:在无限维空间中的样本一定是线性可分的,且随着维数越多,样本空间越容易线性可分的概率越大,其实在现实中这个理论是非常直观的,大家可以在二维至三维的情况下想象

那么对于一个硬间隔SVM无法处理的线性不可分样本空间,原始的样本空间的样本 (xi→,yi) 一定能找到一个特殊的映射 φ(xi→) 将 xi→ 映射到高维空间,从而使得样本空间线性可分。

几何角度来看:举一个二维→三维的简单例子

笔者绘画技术有限....请多见谅

可以看到左边的样本空间显然是线性不可分的
而通过一个简单的映射 φ(x→)=(x1,x2,x1·x2) 将 x→ 映射到三维空间中,可以发现在三维样本空间中找到了一个平面 wTx+b 可以正好将正负样本分开

例———————————例2⇑——————————————

所以为了进一步加强软间隔SVM方法面对样本空间时的鲁棒性,我们将原来的样本 xi 都映射到能够线性可分的高维空间上去(如果原始样本空间本身就可分的话,该映射 φ 是线性映射)

即使用映射后新的样本 φ(xi→) 替换 xi

Section 5.5 核函数技巧(Kernel Function Method)

(这一节建议看完Section7 后再阅读)

紧接上一节,我们找到了 φ(x→) 将样本空间映射至高维空间,这个高维空间意思是:大多时候我们想要映射到无限维空间,但是第一个问题是,枚举高维空间的映射是一件极其困难的事情

第二个问题是而大多数时候我们会进行巨大的向量运算,不得不涉及到频繁的两个向量内积(对偶问题的优化),比如 <x→i,x→j>=(xi)Txj ,而无限维或者高维的向量内积运算时间复杂度是很高的,这时候SVM中一个最有创造力的优化技巧——核函数技巧便排上了用场

核技巧的本质是找到了一个能同时满足 1.缩小时间复杂度又2.映射到高维空间3.不需要枚举出高维空间的显式表达,三个需求的技巧,这是如何做到的呢?

这里我们定义一个正定核函数 K(x→i,x→j)=<φ(x→i),φ(x→j)> ,显然我们如果知道 K(x→i,x→j) 就可以不需要那么多麻烦就得到了两个向量的内积 <φ(x→i),φ(x→j)> !!

但是想找到一个正定核函数还是不那么容易的,它需要满足Mercer定理,这个定理还是极其冷门,在很多资料上都找不到详细解释,只在很多核函数的论文里提到过(经过查阅Mercer定理是来自于泛函分析中希尔伯特空间构造的问题)

它给出了这样两个条件——

1.对称性:内积运算定义上是对称的

2.正定性:对于样本空间对应的 Gram 矩阵 Gi,j=[K(xi,xj)] 是半正定的

满足1.2.则该函数是正定核函数

通常常用的只有几个核函数,这里我们介绍其中一个——径向基核函数(RBF kernel)

K(x1,x2)=e−||x1−x2||22σ2 (其中σ2 是样本方差)

因为 和高斯函数有些相似,径向基核又叫做高斯核(Gaussian Kernel)

这里由泰勒公式对高斯核函数展开得 e−||x1−x2||22σ2=ex12+x222σ2·(1+x1x2σ2+(x1x2)22!·σ4+(x1x2)33!·σ6+⋯+(x1x2)nn!·σn2)

通过泰勒展开,显然可以看出它能将有限维空间映射至无限维空间的多项式内积

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值