ML旅程——第一站:SVM学习笔记(3)

上一篇笔记中,讲述了SVM在处理线性可分样本集合的思路和优化模型的建立过程?那么对于非线性可分样本集合SVM该如何处理呢?举一个最简单的例子。

图1   异或问题的简单示意

如图1所示,我们无法在示例的特征空间中直接画一条直线,将红色的样本和绿色的样本分开。是不是SVM就不适用了呢?答案是否定的。SVM最为精彩的思想很巧妙的解决了这个问题,即把这个特征空间映射到更高维的特征空间中,在高维特征空间中去寻找超平面将两类样本合理分开。

1 非线性可分样本优化问题

首先回顾一下上一篇中,对于线性可分样本集建立的优化问题模型:(问题一

① 最小化:\frac{1}{2} || \omega||^{2}

② 限制条件: y_{i}(\omega ^{T}x_{i}+b)\ge 1

先写出结论。

可以对上述优化问题做一些改动,添加一个正则项(Regulation Term,让原本不容易求解的目标函数变得更加容易求解;让原本求到的解向我们的目标解靠拢,就是添加正则项目之前求得的解不是我们想要的,通过添加正则项让这个解变成我们想要的),则优化问题可以变成(目标问题):

① 最小化:\frac{1}{2} || \omega||^{2} + C\sum_{i=1}^{N}\xi_{i} \,\,\,\, i \sim N

② 限制条件:\left\{\begin{matrix} y_{i}(\omega ^{T}x_{i}+b)\ge 1 - \xi_{i}\\ \xi_{i} \ge0 \end{matrix}\right.

这里的 C 称为松弛变量,C\sum_{i=1}^{N}\xi_{i} 是一个正则项。

③ 找一个 \varphi (x) ,使得 x \overset{\varphi}{\rightarrow} \varphi(x) , x 为原始低维的特征向量,\varphi (x) 为高维的特征向量。

我们结合图1的“异或问题”来量化举例,我们来找一个 \omega ^{T}x_{i}+b 来将两类样本分开。

先写出样本集合:

x_{1} = [0,0]^{T} , \epsilon \,\, Class 1

x_{2} = [1,1]^{T} , \epsilon \,\, Class 1

x_{3} = [1,0]^{T} , \epsilon \,\, Class 2

x_{1} = [0,1]^{T} , \epsilon \,\, Class 2

由于原问题在二维的特征空间里是线性不可分的,所以我们定义一个 \varphi (x),使得 \varphi (x): \, x=[a, b]^T \overset{\varphi}{\rightarrow} \varphi(x)=[a^2, b^2, a, b, ab]^T 将原来的二维特征映射成更高维度(5维),则有:

\varphi(x_{1}) = [0,0,0,0,0]^{T} , \epsilon \,\, Class 1

\varphi(x_{2}) = [1,1,1,1,1]^{T} , \epsilon \,\, Class 1

\varphi(x_{3}) = [1,0,1,0,0]^{T} , \epsilon \,\, Class 2

\varphi(x_{4}) = [0,1,0,1,0]^{T} , \epsilon \,\, Class 2

这样我们就把低维的原样本,经过 \varphi (x) 映射成了更高维的特征样本。

这里我们可以主管的构造一个 \omega = [-1,-1,-1,-1,4]^T, b=1 的线性模型。可以得到:

\omega ^{T}\varphi(x_{1})+b = 1

\omega ^{T}\varphi(x_{2})+b = 1

\omega ^{T}\varphi(x_{3})+b = -1

\omega ^{T}\varphi(x_{4})+b = -1

这样我们就可以根据线性模型结果的正负成功分开两类样本。由此可见,我们可以通过这种方式来将SVM应用至线性不可分的样本集合。那么如何选取这个 \varphi (x) 呢?

2 核函数

理论上,我们如果把特征空间的维度映射至无限,那么样本被线性模型分开的概率也是无限接近于1的。我们无法想象出来那样具象的特征空间,举个形象的例子,我们在桌面上撒上了红色和绿色的豆子,它们掺杂到一起了,在这个桌面上我们没有办法用一条线将两种颜色的豆子分开来。但是假如桌子有很好的弹力,我们的力气也足够大,空间中还有不定方向的风会吹动豆子,我们使用一个巧妙的力量拍桌子,将这两种颜色的豆子弹到空中,那么把这些豆子弹的越高(最上面的豆子离最下面的豆子越远),那么弹在空间里的这些豆子在某一个瞬间就可以找到一条线(超平面)刚好将这两种豆子分开。这里我们施加的力气、空间中的风以及桌子的弹力,就是接下来要介绍的核函数的角色。

如何真的把特征空间上升到无限维度,那么对于求解来说也是困难的。于是SVM引入一种手段,有限维度的手段:

可以不知道 \varphi (x) 的显式表达,只需要知道一个核函数 K(x_1, x_2) = \varphi(x_1)^T\varphi(x_2),则可以求解上述(目标问题)。

这里的 K(x_1, x_2) 满足如下条件:

① 交换性  K(x_1, x_2) = K(x_2, x_1)

② 半正定性 \forall C_i, x_i, i=1 \sim N, \sum_{i=1}^N \sum_{j=1}^N C_i x_i K(x_i, x_j)\ge0

举一个核函数的例子:

(高斯核)K(x_1, x_2) = e^{- \frac {||x_1-x_2||^2}{2\sigma ^2}}

我们可以将(目标问题)中的 x_i 替换成 \varphi (x_i),就可以实现将特征空间映射至更高维度。

3 原问题与对偶问题、KKT条件

见学习笔记(1)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值