SVM——线性可分支持向量机

一、概念

支持向量机是一种二类分类模型,它是定义在特征空间上的间隔最大的分类器,间隔最大使它有别于感知机并且是唯一的。支持向量机的学习策略就是间隔最大化,可以形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。

支持向量机学习方法包含线性可分支持向量机,线性支持向量机以及非线性支持向量机。当训练数据集线性可分的时候,通过硬间隔最大化,学习一个线性的分类器即线性可分支持向量机,也叫做硬间隔支持向量机。当训练数据集近似线性可分的时候,可通过软间隔最大化学习一个线性分类器即线性支持向量机,也叫做软间隔支持向量机。当训练数据集非线性可分时,可以通过核技巧和软间隔最大化学习一个非线性支持向量机。

二、线性可分支持向量机

2.1 数据集
假设给定特征空间上的一个线性可分数据集T={(x1,y1),(x2,y2),(x3,y3)…(xN,yN)},其中xi∈Rn,yi∈{+1, -1},xi是第i个特征向量,yi是xi的类别标记,y=1代表正类,y=-1代表负类。
2.2 线性可分支持向量机的模型
线性可分支持向量机的学习目标是在特征空间中找到一个分割超平面,该分割超平面可以将特征空间分割成两部分,一部分是正类,一部分是负类。当训练数据集线性可分时,存在无数个分割超平面可将数据集正确分开,感知机模型利用误分类最小策略求得的模型有无数个,而线性可分支持向量机利用间隔最大化求得的模型是唯一的。
分割超平面的方程:
w·x+b = 0 ,其中w为法向量,b为截距
线性可分支持向量机的模型:
f(x) = sign(w·x+b)
不懂的请参考感知机模型

2.3 函数间隔和几何间隔

  • 函数间隔
    函数间隔可以用来描述分割超平面预测类别的正确性和确信度。
    正确性:
    在超平面w·x+b = 0确定的情况下,给定数据点(xi, yi),yi与w·xi+b的符号是否一致能够表示该数据点是否被正确分类。
    确信度:
    数据点距离分割超平面的远近可以表示该分割超平面预测分类的确信程度,假设有一个数据点(xi, 1),它距离超平面越远则预测它为正类的确信程度就越高,| w·x+b |可以近似的表示数据点距离超平面的远近。

    • 分割超平面与数据点的函数间隔
      给定训练数据集T和分割超平面(w, b),定义训练数据集中任一数据点(xi, yi)距分割超平面的函数间隔为:
      在这里插入图片描述
    • 分割超平面与数据集的函数间隔
      分割超平面距数据集T的函数间隔定义为分割超平面距数据集T中所有数据点的函数间隔的最小值,即
      在这里插入图片描述
  • 几何间隔
    当超平面的w和b同时扩大k倍,函数间隔就扩大了k倍,超平面kw·x+kb = 0还是原来的超平面w·x+b = 0,基于间隔最大化思想当然会选择超平面kw·x+kb = 0,实际上它还是原来的超平面,所以光靠函数间隔来选择超平面是不够的。
    几何间隔一般是数据点距超平面的带符号的距离,只有当该数据点被正确分类时,几何间隔是该数据点距超平面的距离。

    • 分割超平面与数据点的几何间隔
      给定训练数据集T和分割超平面(w, b),定义训练数据集中任一数据点(xi, yi)距分割超平面的几何间隔为:
      在这里插入图片描述
    • 分割超平面与数据集的几何间隔
      分割超平面距数据集T的几何间隔定义为分割超平面距数据集T中所有数据点的几何间隔的最小值,即
      在这里插入图片描述
  • 函数间隔和几何间隔的关系
    在这里插入图片描述
    重要结论:当w和b同时扩大k倍时,函数间隔扩大k倍,而几何间隔不变。

2.4 间隔最大化
当数据线性可分时,间隔最大化又称为硬间隔最大化,使用几何间隔来度量硬间隔。
为求得一个具有最大间隔的超平面,得到如下约束最优化问题:
在这里插入图片描述
我们的目标是最大化超平面距训练数据集的几何间隔,约束条件是超平面关于每个训练数据点的几何间隔至少应该是γ。

由函数间隔和几何间隔的关系,上述约束优化问题转换为:
在这里插入图片描述
如果将w,b同时扩大k倍,则 ||w||扩大k倍,超平面距数据集的函数间隔r^ 也扩大k倍,但是上述约束优化问题并没有任何的改变,所以完全可以令r^ 等于一个常数,现令r^ = 1。
解释如下:超平面距数据集的函数间隔 r^等于超平面距数据集中某一点的距离,设这一点为(xt, yt), 再假设输入x有n个特征即w = (w1, w2, …, wn),那么可得r^ = yt(w·xt + b) = C1,||w|| = C2,现在将w,b同时扩大1/C1倍,则r^ = 1, ||w|| = (1/C1)*C2。原目标表达式 r^ / ||w||变为 (r^ * 1/C1) / (1/C2 * C2) ,还是等于r^ / ||w||。同理可得,约束条件也没有改变,所以为了方便求解上述约束优化问题,现令r^ =1。
令r^ =1,最大化1 / ||w|| 相当于最小化||w||,即最小化1/2 * ||w||2,加上1/2和平方是为了方便求导。所以上述约束优化问题变为:
在这里插入图片描述
假设输入x有n个特征,则目标表达式1/2 * ||w||2 = 1/2 * wTw = 1/2 * wTEw,其中E为nxn的单位矩阵,所以目标函数是一个二次函数。并且不等式约束是一个仿射函数,所以上述约束优化问题是一个二次规划问题,又因为E是正定矩阵,所以该二次规划问题是一个(严格)凸二次规划问题。
求解上述凸二次规划问题,得到最优解w*和b*,就得到了线性可分支持向量机f(x) = w* ·x + b*

2.5 利用对偶问题求得线性可分支持向量机

  • 定义拉格朗日函数
    对每个约束条件引进拉格朗日乘子αi >=0, i =1,2,…,N,定义拉格朗日函数如下:在这里插入图片描述

  • 转换为对偶问题

    原约束优化问题等价于:
    在这里插入图片描述
    因为在拉格朗日函数中1/2* ||w||2>=0,而1-yi(w·xi +b)<=0, 所以拉格朗日函数的最大值是max L(w, b, α)=1/2* ||w||2,这时再求解使得max L(w, b, α)最小的w和b。其实就等价于直接对1/2* ||w||2求解最优值w,之所以要加上max L(w, b, α)这个步骤,是想利用拉格朗日函数的对偶性将原问题化为对偶问题,更方便求解最优值。
    原始问题的对偶问题:
    在这里插入图片描述

  • 求解对偶问题
    (1)求对偶问题的内部极小化问题
    拉格朗日函数L(w,b,α)分别对w,b求偏导并令其等于0得:
    在这里插入图片描述
    解得:
    在这里插入图片描述
    将求解出的w以及等式带入拉格朗日函数得:
    在这里插入图片描述
    (2)求对偶问题的外部极大化问题
    根据对偶问题的内部极小化问题的解转换拉格朗日函数,现求解转换后的外部极大化问题:
    在这里插入图片描述
    将上述求解最大值问题,转换为求解最小值问题:
    在这里插入图片描述
    该最小值问题的最优解可以通过SMO方法来求解,后面会讲到。

  • 线性可分支持向量机
    如果对偶问题的最优解是α*,则得到:
    在这里插入图片描述
    那么线性可分支持向量机为f(x) = w*·x +b*

三、为什么可以使用对偶问题

先看一个定理:
在这里插入图片描述
在这里插入图片描述
分析原始问题:
在这里插入图片描述
因为1/2* ||w||2 = 1/2 *(w12 + w2 2 +…+ wn2),凸函数的非负权重和还是凸函数,所以目标函数是凸函数。不等式约束 yi(w·xi + b) -1>=0两边同乘yi可以转换为 w·xi + b>= yi,因为yi∈{-1, +1},所以不等式约束w·xi + b>= yi可以转换为w·xi + b>= 1和w·xi + b>= -1,根据 "[如果一个函数图像的上方区域是凸集,则该函数是凸函数。
综上所述,原始问题满足定理C.2,所以存在w*,b* ,α*,使得w*,b*是原始问题的解,α*是对偶问题的解。

四、如何根据对偶问题的最优解求原始问题的最优解

先看一个定理:

对内容三中的原始问题建立拉格朗日函数如下
在这里插入图片描述
在这里插入图片描述
根据定理C.3,让原始问题满足KKT条件,可得:
在这里插入图片描述
根据KKT条件的第1条可得:
在这里插入图片描述
因为肯定存在一个拉格朗日乘子αj*不等于0,则根据KKT条件第3条得yj(w*·xj + b*) -1=0,两边同时乘上yj,因为yj2=1,所以b* = yj - w*·xj,再将w*带入可得:
在这里插入图片描述
分割超平面可以写为:
在这里插入图片描述
线性可分支持向量机可以写为:
在这里插入图片描述

五、支持向量的定义及作用

训练数据集中对应于αi>0对应的数据点(xi, yi)就是支持向量。
根据KKT条件的第3条可得,αi>0对应的数据点(xi, yi)必须满足yi(w·xi + b) -1=0,即对于正类(yi=1)来说要满足w·xi + b =1,对于负类(yi = -1)来说要满足w·xi + b =-1,所以αi>0对应的数据点都位于w·xi + b =1和w·xi + b =-1这两个面上,其实这两个面就是最大间隔的分界面。
如图:
在这里插入图片描述
H1和H2就是最大间隔的分界面,位于H1和H2上的点就是支持向量。
在这里插入图片描述
支持向量的作用:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/watermelon12138/article/details/89066570