机器学习学习笔记02 -- 支持向量机1

336 阅读6分钟

一、线性可分和线性不可分

--线性可分(Linear Separable)
--线性不可分(Nonlinear Separable

1 特征空间为二维

1.png 2.png

2 特征空间为三维

3.png 4.png

3 特征空间为二维数学表示

5.png 用数学严格定义训练样本以及他们的标签
假设:我们有N个训练样本和他们的标签: 6.png

这里我们可以规定如果Xi如果属于C1,则yi的值为1,如果Xi如果属于C2,则yi的值为-1

线性可分的严格定义:

一个训练样本集{(Xi,yi), ..., (Xn,yn)},在i=1~n线性可分,是指存在(w1,w2,b),使得对i=1~n,有:
7.png

4 用向量形式来定义线性可分

假设:
10.png
有:
11.png
最简化形式:

如果对于yi是等于1或-1的,一个训练样本集{(Xi,yi), ..., (Xn,yn)},在i=1~n线性可分,是指存在(w,b),
使得对于i=1~n,有:
12.png

二、如何解决线性可分问题

1 提出问题

Vladimir Vapnik提出:如果一个数据集是线性可分的,将存在无数多个超平面能够将各个类别分开,
在这无数多个分开各个类别的超平面中,到底哪一个是最好的?

2 二维特征空间中的二分类问题

13.png
根据没有免费的午餐定理,上图中的数据集是一个线性可分的且1,2,3三条线都是达到了将两个类别分开的目的。
但是我们大多数时候可能更倾向于2号线的分割:

假设训练样本的位置在特征空间上有测量误差:
14.png

从上图我们可以看出,2号线对训练样本所处的位置的误差的容忍程度是最高的,换句话说,2号线,相比于1号和3号线更能抵御训练样本位置的误差。

3 “2号线”是怎么画出来的

Vapnik给出的回答:
15.png

上图中将分割线分别朝着不同方向平移,直到与数据集中样本重合,如上图中与数据集中样本重合的样
本我们称为支持向量,两条直线间的距离称为间隔(Margin)。而产生间隔最大的就是我们要找的“2号线”或最好的那条线。

1,2,3号三条线对比:
16.png 17.png 18.png

当我们已经找到间隔(Margin)最大的两条平行线后,在这两条平行线之间依然可以作出无数条直线,
那么哪一条才是我们要找的最优的那条“2号线”,规定这两条平行的直线中间的那条线就是“2号线”。

4 总结

支持向量机寻找的最优分类直线应满足:
-- 该直线分开了两类;
-- 该直线最大化间隔(Margin);
-- 该直线处于间隔的中间,到所有支持向量的距离相等。

三、优化问题

支持向量机要找一个超平面,使它的间隔(Margin)最大,同时恰好在间隔的中间。

1 首先清楚两个数学概念

概念1:
19.png
概念2:
22.png

2 问题转化

根据概念1:因为(w,b)表示的超平面和(aw,ab)表示的超平面是同一个平面,此处可以通过二维中向量帮助理解,
假设向量t1=(a,b),t2=(2a,2b),实际上向量t1和t2指向的是同一个直线。
那么也就意味着我们可以用a对wb进行缩放:
23.png
再结合概念2我们可以把支持向量到超平面的距离d改写为如下:
24.png
回到寻找“2号线”问题上,我们要找到最大化的间隔(Margin),即找到最大化支持向量到超平面的距离,
就等价于找到最小化||w||(w的模)。

3 结论

根据以上,就可以把寻找具有最大间隔的“2号线”问题转化为目标更清晰的数学问题:

一个最小化:
25.png

这里最小化1/2||w||²和最小化||w||²本质上是一样的,之所以使用1/2||w||²是为了方便之后的求导。

一个限制条件:
26.png

上式中,在支持向量上是等于1的,在非支持向量上是大于1的。

四、线性不可分情况

已知在线性可分的情况下,支持向量机寻找最佳超平面的优化为题可以表示为:
27.png 28.png
在线性不可分的情况下,满足上面的限制条件是没有解的。所以对于线性不可分的情况,我们要放松限制条件:
29.png

改造后的支持向量机优化版本:

30.png
在线性可分的情况下,目标函数止需要最小化1/2||w||²;
而非线性可分情况下,在目标函数上增加了一项,即所有的δi的和。
目标函数中的C我们称为比例因子,起到平衡两项的作用,C的值是人为设定得(认为事先设定的参数叫做算法的超参数),
一般在实际的应用当中,会不断地变化C的值,同时对于每一个C测试算法的识别率。然后选取使识别率达到最大的超参数C。

五、低维到高维的映射

支持向量机通过将特征空间由低维映射到高维,然后在高维的特征空间中,仍然用线性超平面对数据进行分类。

1 通过一个例子实现低维到高维的映射

31.png
上图中两个×就是x1和x2,两个○是x3和x4,显然这个例子中两种数据×和○是现行不可分的,我们无法做到用一条直线,将它们分开成两类。
此时我们构造一个二维到五维的映射φ(x):
32.png

根据此映射我们可以得到:

33.png

设ω和b的值:
34.png

继而可以算出:
35.png

此时我们可以发现:我们将数据集样本由线性不可分变成了线性可分。

2 定理

假设:在一个M维空间上随机取N个训练样本,随机的对每个训练样本赋予标签1或-1,假设这些训练样本线性可分的
概率为P(M),则由当M趋于无穷大时,P(M)=1

3 结论

将训练样本由低维映射到高维,能够增大线性可分的概率。
此时支持向量机的优化应该作出改写:
36.png

六、核函数的定义

核函数(Kernel Function)
支持向量机的创始人Vapnik在回答φ(x)具体形式这一问题上:
指出我们可以不用知道φ(x)的具体形式,可以通过引入了核函数的概念完成对测试样本类别的预测:
37.png
分析上图核函数K(X1,X2)形式,我们可以发现,核函数K的计算结果会是一个实数。

1 核函数和φ(x)的关系

核函数K和映射φ是一一对应的关系,已知K可以求出φ,已知φ可以求出K。

2 核函数的形式

核函数的形式不能随意的取,只有满足一定的条件,核函数K才能表示为两个φ内积的形式:
39.png