深入理解SVM

机器学习 专栏收录该内容
11 篇文章 0 订阅

深入理解SVM

martin


SVM核心思想一:最大间隔

对于一个分类算法,想要画出一条决策边界,但是由于决策边界有很多条我们想要通过某种衡量手段来确定一条在此条件下最好的一条决策边界,所以就会有个问题: 于是最大边界应运而生。

svm-1.png-12.4kB

让最大间隔作为衡量一条决策边界的好还的原因是,如果一条决策边界有最大间隔,那么这条决策边界就具有很好的 ,相当于增加了一个缓冲地带,再来一个数据集我可以很从容的包容你进行分类不至于分错类别。

下面讲下最大间隔的概念,如上图,假如存在一条图中的决策边界, A 为边界上的某一点,那么连接原点可以作出通过A点的一个向量 u ,找到一个垂直于决策边界的法向量w,那么决策边界与虚线的距离 AB 可以用向量 w 与向量u的内积来表示,我们知道, w.u 即为向量 u w上的投影的长度,那么我现在规定一个距离 C 即为间隔,令wu=C,当 wu>=C 我就很有自信的认为这一点为正类,当 wu<=C 我就很有自信的认为这一点为负类。我们来换一种形式来表达这个 wu=C 式子:

对于训练集中的正类:

wx++b>=1

对于训练集中的负类:
wx+b<1

我们先将这里的间隔设为1,当然,可以设置为5,10或者50,100等,但通过左右消除都可以变成1,所以这里就是用1来作为间隔距离。


SVM核心思想二:决策公式

y 的取值给出:

y={+1x-1x

对于训练集中的正类:

wx++b>=1

对于训练集中的负类:
wx+b<1

所以我们可以将上面三个公式合并起来得到一个决策公式,来表示对样本的正确分类:

yi(wxi+b)1>=0

而在决策边界的边界上的,可以理解为在 上的点符合下面的公式:

yi(wxi+b)1=0

SVM核心思想三:目标函数

现在我想要求得这条包含两个间隔的“马路”的宽度,所以我分别选取了在路两边上的点, OCOD ,那么这两个向量之差就是”路”的宽度。

svm-2.png-13.4kB

写成公式就是,这里的 ww 是对法向量单位化。:

=ODOC=(x+x)ww

因为这两个点在”路边上”,满足:

yi(wxi+b)1=0

所以可以将第一个式子代入到第二个式子:

=1w(wx+wx)=1w[(1b)+(b+1)]=2w

到上步我们就已经给出了间隔的一般表示,那么我们的目标就是最大化这个间隔,

max 2w

等价于
max 1w

等价于
min w

等价于
min 12w2

因为 12w2 对于后续计算比较方便故选用。

SVM核心思想四:优化理论

运用拉格朗日来对上节中的目标函数进行优化,给出拉格朗日函数:

L=12w2i=1nαi[yi(wxi+b)1]

接下来对 w 求偏导

Lw=wi=1nαiyixi

wi=1nαiyixi=0

解得
w=i=1nαiyixi

接下来对 b 求偏导
Lb=i=1nαiyi

i=1nαiyi=0

解得
i=1nαiyi=0

得出以上两个值 w=ni=1αiyixi ni=1αiyi=0 ,将这两个值分别带入到拉格朗日函数 L 中,得

L=i=1nαi12i=1nj=1nαiαjyiyjxixj

这样就转化成了

min L=i=1nαi12i=1nj=1nαiαjyiyjxixj

然后我解得一个最优解 α 之后分别可以求出对应的 w b ,于是就又有了:
wxtest+b=0

上式就变得非常厉害了,它是什么含义呢?原来并不是所有点都是在”路”的两边,只有极少数点也就是支持向量在这个地方,也就是KKT定理中所说的,只有支持向量才符合 α>0 ,其他的点都是 α=0 。所以,对于一个新测试点我们只要跟这些 的支持向量 就可判断他是不是正类或者负类。于是乎就有了一个对于判断测试集的公式:
f=sign(wxtest+b)

SVM核心思想五:损失函数

1.png-153.6kB

我们知道SVM使用的损失函数是hinge loss,即

Li=jyimax(0,f(xi,W)jf(xi,W)yi+Δ)

这个公式意思就是当我有三个类别要分类,比如猫,狗,鸭子,那么我确定知道该类别是小狗了,按着公式的意思即取猫的得分和鸭子得分的和即可,不用把狗的得分算入即 jyi ,而 Δ 就是我们定的最大间隔,一个安全距离,该公式的意思就是 通过调整权重 W 降低那些与目标类别分数相近的其他类别的分数,而对于那些与目标分数大于“间隔”的类别分数不予理睬,因为分数相差很大很容易就可以判别与目标类别不相同

2.png-127.7kB

SVM核心思想六:核方法

上几节中我们都是拿线性可分的例子来讲解得,那么SVM是否可以对线性不可分的数据集进行划分呢?答案是肯定的。那么这个方法就是利用核函数。通俗的讲,核函数所要做的事就是在某一空间的原始数据集是线性不可分的,如果我把这些数据集转化到另一个空间中说不定就会线性可分。如图:

svm-3.png-18.8kB

转化成数学符号就是:ϕ(x),但是这个映射 ϕ 很难求得所以我们通过一种曲线救国的方式来解决:选取 x ,通过 K(xx)=ϕ(x)ϕ(x) 做内积的形式来求解。为什么要这样呢,原因是我如果直接求这个映射函数是很难求的,但是通过计算内积来确定就变得很容易了。

SVM核心思想七:SMO

在之前的第四节中我们说到了最优化拉格朗日函数然后求得一个 α ,有了 α 才可以求出 w b,但是并没有说明这个 α 怎么求出来的,而这节的SMO方法就是介绍怎么求解 α 的。

大体上可以将SMO方法看成是变化了的梯度上升。SMO要解决如下凸二次规划的对偶问题:

min L=i=1nαi12i=1nj=1nαiαjyiyjxixj

在这个问题中变量是拉格朗日乘子 α ,一个变量 αi 对应于一个样本点 (xi,yi) 变量的总数等于训练样本容量N。SMO的大体思路就是:

  • 1、如果所有变量都满足最优化问题的KTT条件那么就会得到最优解,
  • 2、否则选择两个变量,固定其他变量,针对这两个变量构建二次规划问题。

子问题的两个变量中只有一个是自由变量。假设 α1,α2 为两个变量, α3,α4,...αN 固定,那么:

α1=y1i=2Nαiyi

如果 α2 确定,那么 α1 也随之确定,所以子问题中同事更新两个变量。

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值