支持向量机之线性可分支持向量机(一)

简介

支持向量机(support vector machines,SVM)是一种二分类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使得它有别于感知机;支持向量机还包括核技巧,这使得它成为实质上的非线性分类器。

支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优算法。

支持向量机的方法包括:线性可分支持向量机(linear support vector machine in linearly)、线性支持向量机(linear support vector machine)以及非线性支持向量机(non-linear support vector machine)。上面三个方法由简到繁,简单模型是复制模型的基础,也是复杂模型的特殊情况。

当训练数据线性可分时,通过硬间隔最大化(hard margin maximization),学习一个线性的分类器,即线性可分支持向量机,又称硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化(soft margin maximization),学习一个线性的分类器,即线性支持向量机,又称软间隔支持向量机;当训练数据线性不可分时,通过核技巧(kernel trick)及软间隔最大化,学习非线性支持向量机。

当输入空间是欧式空间或者离散集合、特征空间为希尔伯特空间时,核函数(kernel function)表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机,这种方法称为核技巧。核方法(kernel method)是比支持向量机更为一般的机器学习方法。

线性可分支持向量机

对于 二分类问题。假设输入空间与特征空间为两个不同的空间,输入空间为欧氏空间或者离散集合,特征空间为欧氏空间或希尔伯特空间。线性可分支持向量机,线性支持向量机假设这两个空间的元素一一对于,并将输入空间中的输入映射为特征空间中的特征向量。非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量。所有,输入都是由输入空间转换成特征空间,只需向量机的学习是在特征空间进行的。

假设给定一个特征空间上的训练数据集: T={(x1,y1),(x2,y2),...,(xN,yN)} 其中, xiϵχ=RnyiϵY={+1,1}i=1,2,3,...,N,xi 是第 i 个特征向量,也称为实例, yi xi 的类标记,当 yi=+1 时称为正类,当 yi=1 的时候称为负类 。 xi,yi 称为样本点。

线性可分定义

对上面给的数据集,存在某个超平面 S:wx+b=0 ,能够将数据集中的正实例点和负实例点完全的划分到超平面的两侧,即对所有的 yi=+1 的实例 i ,有 wx+b>0 ,对所有的 yi=1 的实例 i ,有 wx+b<0 ,则称数据集 T 为线性可分数据集,否则称为线性不可分。

一般地,当训练数据集线性可分时,存在无穷多个超平面可将两类数据正确的分开。感知机利用误差分类最小的策略求得分离超平面,不过这个时候的解也是无穷多个。线性可分支持向量机利用间隔最大化求得分离最大化的最优分离超平面,这个解释唯一的。

线性可分支持向量机

给定线性可分训练数据集,通过硬间隔最大化或者等价的求解相应的凸二次规划问题学习得到的分离超平面为 wx+b=0 以及相应的分类决策函数 f(x)=sign(wx+b) 称为线性可分支持向量机。


支持向量机之线性可分支持向量机(一)_第1张图片

如上图所示,对于特征向量是二维特征空间的二分类问题,训练数据集线性可分,存在超平面使数据集正确的分成两类。

函数间隔和几何间隔

对于一点距离分离超平面的远近可以表示分类预测的确信程度。在超平面 wx+b=0 确定的情况下, |wx+b| 表示点 x 到超平面的距离, wx+b 的负号与类别标签 y 相对应,所有 y(wx+b) 表示分类正确性及确信程度,这个就是函数间隔(functional margin)

函数间隔

对于给定的训练数据集 T 和超平面 (w,b) ,定义超平面 (w,b) 关于样本点 (xi,yi) 的函数间隔为 γi^=yi(wxi+b)
定义超平面 (w,b) 关于训练数据集 T 的函数间隔为超平面 (w,b) 关于 T 中所有样本点 (xi,yi) 的函数间隔的最小值,即:
γ^=mini=1,..,Nγi^

函数间隔可以表示分类预测的正确性及确信度,但是选择分离超平面时,当 w,b 成倍的变化时候,超平面没有变,但是函数间隔也成倍的变化。所有要对 w 增加约束,一般使 ||w||=1 ,使得间隔是确定的,这个时候的函数间隔就成了几何间隔(geometric margin)


支持向量机之线性可分支持向量机(一)_第2张图片

如上图,超平面 (w,b) 以及其法向量 w .点 A 表示某一个实例点 xi ,类标记 yi=+1 。点 A 到超平面的距离记作 γi
γi=w||w||xi+b||w||
其中 ||w|| w 的二范数。
若点 A 在超平面的负测, yi=1 ,那么点与超平面的距离为:
γi=w||w||xi+b||w||

一般地,样本点 (xi,yi) 被超平面真确分类时,点 xi 与超平面 (xi,yi) 的距离就是:


γi=yi(w||w||xi+b||w||)

几何间隔

对于给定的训练数据集 T 和超平面 (w,b) ,定义超平面 (w,b) 关于样本点 (xi,yi) 的几何间隔为:
γi=yi(w||w||xi+b||w||)

定义超平面 (w,b) 关于训练数据集 T 的几何间隔为超平面 (w,b) 关于 T 中所有样本点 (xi,yi) 的几何间隔的最小值,即:
γ=mini=1,..,Nγi
定义超平面 (w,b) 关于样本点 (xi,yi) 的几何间隔,在被正确分类时候,值是正的,错误分类时候是负的。在后面的计算中考虑的是带符号的距离。

函数间隔和几何间隔的关系:


γi=γi^|w||
γ=γ^|w||

||w||=1 时候函数间隔等于几何间隔。

间隔最大化

支持向量机学习的基本想法是:求解能够正确的划分训练数据集并且几何间隔最大的分离超平面。对于线性可分的训练数据集,线性可分的超平面有无穷多个,但是几何间隔最大的分离超平面式唯一的。这里的间隔最大化又称为硬间隔最大化。

间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据集进行分类。也就是说,能够将正负样本点本开,对于难分的实例点,也能过以最大的确信度将它们分开。这样的超平面对于未知的新数据也能够很好的分类预测。

最大间隔分离超平面

几何间隔最大的分离超平面
转换成约束最优解问题:


maxw,b γ
s.t. yi(w||w||xi+b||w||)γ,i=1,2,...,N

即我们希望最大化超平面 (xi,yi) 关于训练数据集的几何间隔 γ ,约束条件表示的是超平面 (w,b) 关于每个训练样本的几何间隔至少是 γ

改写成含有函数间隔的形式:


maxw,b γ^||w||
s.t. yi(wxi+b)γ^,i=1,2,...,N

对于 w,b 变化为 λw,λb ,函数间隔变化成 λγ^ .可以看出,函数间隔的改变对上面最优化问题没有影响。所有可以取 γ=1^ 。最大化 γ^||w|| ,转化为最大化 1||w|| ,再转化为最小化 12||w||2

线性可分支持向量机学习的最优化问题:


maxw,b 12||w||2
s.t. yi(wxi+b)10,i=1,2,...,N

这是一个凸二次规划问题(convex quadratic programming)

凸优化问题

对于如下约束的最优化问题:


minwf(w)
s.t.gi(w)0i=1,2,...,k
hi(w)=0i=1,2,...,l

其中,目标函数 f(w) 和约束函数 gi(w) 都是在 Rn 上的 ,约束函数 hi(w) 是在 Rn 上的放射函数。
当目标函数 f(w) 是二次函数且约束函数 gi(w) 是放射函数时,上述凸最优化问题成为凸二次规划问题。

线性可分支持向量机学习算法–最大间隔法

输入:线性可分训练数据集 T={(xi,y1),(x2,y2),...,(xN,yN)} ,其中: xiϵχ=RnyiϵY={+1,1}i=1,2,3,...,N
输入:间隔最大分离超平面和分类决策函数

(1)构建并求解约束最优化问题:


maxw,b 12||w||2
s.t.yi(wxi+b)10,i=1,2,...,N

求得最优解 w,b
(2)分离超平面:

wx+b=0

分类决策函数:

f(x)=sign(wx+b)

最大间隔分离超平面的存在唯一性

若训练集线性可分,则将训练数据集的样本点完全正确的分开的最大间隔分离超平面存在并且唯一。
(1)存在性
训练数据集线性可分–>约束问题存在可行解。
目标函数存在下界–>约束问题必有解
训练数据集中有正也有负+(0,b)不是最优的可行解

===>>>存在分离超平面
(2)唯一性
假设存在两个最优解 (w1,b1),(w2,b2) ,显然 ||w1||=||w2||=c
w0=w1+w22
则: c||w0||||w1||2+||w2||2=c

||w0||=||w1||2+||w2||2

w1=kw2
k=1 时候 w0=0 显然不是问题的可行解,不可取
k=1
w1==w2=w
x1,x2 (w*,b1),(w*,b2)
wx1+b1=1wx2+b1
wx2+b2=1wx1+b2
得到 w(x1x2)0wx(x2x1)0
w(x1x2)=0
x3,x4
wx3+b1=1
wx4+b2=1
同上 w(x3x4)=0

b1=w(x1+x3)2

b2=w(x2+x4)2

b1b2=12[w(x1x2)+w(x3x4)]

所有 b1==b2=b
得证

在线性可分情况下,训练数据集的样本点与分离超平面 称为 (supportvector)
也即: 使
也即: yi(wxi+b)1=0

yi=+1 正例点支持向量在超平面 :


H1:wx+b=1

yi=1 正例点支持向量在超平面 :


H2:wx+b=1


支持向量机之线性可分支持向量机(一)_第3张图片

如上图: H1,H2 上的点就是支持向量,我们可以看到它们上面各有两个支持向量。
同时也发现 H1,H2 是平行的,中间没有实例点落在它们中间
H1,H2(margin)

间隔依赖于分离超平面的法向量 w ,等于 2||w||




你可能感兴趣的:(机器学习,数据挖掘)