支持向量机

第七章、支持向量机

  • 支持向量机(Support vector machines,SVM)
    • 模型:定义特征空间上最大的线性分类器,区别于感知机模型,具备核技巧,所以也是非线性分类器
      • 包括:线性可分支持向量机、线性支持向量机、非线性支持向量机
    • 策略:间隔最大化,形式化为求解凸二次规划问题,等价正则化合页损失函数最小化问题
      • 线性可分、线性支持、非线性支持向量机分别通过硬间隔最大化,软间隔最大化,核技巧及软间隔最大化来学习
    • 算法:求解凸二次规划最优化算法
  • 核函数:将输入从 输入空间映射 到特征空间得到的特征向量之间的内积,进而帮助我们学习非线性支持向量机,隐式地从高维特征中学习线性支持向量机。

7.1 线性可分支持向量机

7.1.1 线性可分SVM模型

给出训练数据集:

  • 符号说明:\(x_i\)表示第i个特征向量实例,\(y_i\)是类标记,取值为+1和-1,表示正例和负例。
  • 对于该模型,我们假设训练数据集线性可分(见定义2.2)
  • 训练目标:在特征空间中找到分离超平面,让实例分到不同的类,并通过间隔最大化求得最优分离超平面(区别于感知机,此时超平面是唯一的)

image-20241106161954098

image-20241106162347708

二类分类问题的示意图如下,下一小节,我们介绍如何度量点到平面的间隔,进而为后续的间隔最大化策略做铺垫。

image-20241106162545443

7.1.2 函数间隔与几何间隔

  • 通过点距离平面超平面的远近来表示分类预测的确信程度
    • 如上图所示,对于距分离超平面较远的A点,我们预测该点为正类则更加确信,对于较近的C点,则认为该点预测为正类则不那么确信
  • 函数间隔:对于\(w · x + b = 0\)超平面,\(|w · x + b|\)则表示点x距离超平面的远近,通过其符号与类标记y是否一致来表示分类是否正确
    • 考虑到平面系数变为原来的k倍后,超平面不变,函数间隔变为k倍,因此我们可以加入规范化约束\(\|w\|=1\)使得函数间隔固定
image-20241106163258238
  • 几何间隔:相对函数间隔,几何间隔则对应几何意义上真实的距离,距离为\(\gamma_i=y_i\left(\frac{w}{\|w\|}\bullet x_i+\frac{b}{\|w\|}\right)\)
    • 从图7.2中看到,点A(正例)到超平面的几何间隔为\(\gamma_i=\frac w{\|w\|}\bullet x_i+\frac b{\|w\|}\)
    • 那么负例点到超平面的几何间隔为\(\gamma_i=-\left(\frac{w}{\|w\|}\bullet x_i+\frac{b}{\|w\|}\right)\)

image-20241106165330625

image-20241106170120536

注:几何间隔是实例点到超平面的带符号距离,当样本点被正确分类时,才是实例点到超平面距离,后面说到软间隔的部分会提到误分类点的问题

  • 函数间隔和几何间隔的关系,一句话来说就是:几何间隔就是函数间隔基础上除以\(\|w\|\)(下标加i表示样本点)
    • 特别地,当\(\|w\|=1\)时,函数间隔和几何间隔相等,此时等比例改变w和 b,函数间隔成比例改变,几何间隔不变。

image-20241106170610055

7.1.3 硬间隔最大化策略

  • 硬间隔最大化:支持向量机的思路就是求解正确划分数据集并且几何间隔最大的分离超平面,对线性可分的训练数据集而言,是唯一的(区别于感知机是无穷多个)
  • 怎么找这唯一的超平面:几何间隔最大意味着确信度最大地对数据进行分类,那么思路就是:将 离超平面最近的点(支持向量)需要有足够大的确信度分开。

最大间隔分离超平面学习

  • 约束条件就是找到几何间隔最小的向量\(\gamma\),即离超平面最近的点,
  • 目标函数就是表明该向量要有最大的几何间隔,即求得足够大的确信度

image-20241106171610017

上述公式可以改写为函数间隔的形式,此时具有如下特性:

  • 考虑函数间隔的性质,函数间隔\(\hat{\gamma}\) 不会影响最优化问题的最终的解
  • 所以可以简化问题 \(\hat{\gamma}=1\) 来代入问题

image-20241106171904743

  • 又考虑到最大化 \(\frac{1}{\|w\|}\)和最小化 \(\frac{1}{2}\|w\|^2\)等价的,进一步简化我们的策略函数

image-20241106173826635

  • 这是一个凸优化问题,即关于如下的约束优化问题
    • 其中\(f(w)\)和约束函数\(g_i(w)\)都是\(R^n\)上的连续可微凸函数,约束函数\(h_i(w)\)仿射函数(即函数\(f(x)\)满足\(f(x)=a\bullet x+b\),矩阵线性变换+平移)

image-20241106172835201

此时,如果又满足目标函数\(f(w)\)为二次函数,且约束函数\(g_i(w)\)也是仿射函数时,我们可以将上述凸最优化问题转变为凸二次规划问题

通过二次规划求解后,得到解\(w^{*},b^{*}\),进而得到分离超平面\(w^{*}\bullet x+b^{*}=0\)和分类决策函数\(f(x)=\mathrm{sign}(w^*\bullet x+b^*)\) ,即得到最终的线性可分SVM模型。

【算法7.1】 最大间隔法描述

做了上述的分析后,得到最大间隔法的学习策略如下:

image-20241106173503622

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

image-20241106173626224

  • 存在性证明
    • 因为线性可分,所以最优化问题(7.13-7.14)存在可行解(注:在低维如果不可分,那么在高维应线性可分)
    • 又因为目标函数有下界,那么必定有解 \((w^{*},b^{*})\)
    • 又由于数据集既有正类又有负类,那么不可能有\((w^{*},b^{*})=(0,b)\)最优化可行解
    • 综上,最优解\((w^{*},b^{*})\)\(w \neq 0\) 就证明存在性
  • 唯一性证明
    • 李航老师主要是通过反证法证明的:即我假设如果存在两个最优化解,只要说明这两个点的w和b相同即可
    • 证明w变量时,大概思路是引入中间值(非最优解),然后通过向量三角不等式说明上界,得到两个向量在同一个方向上并且长度相同
    • 在证明b变量时,这里是引入两个平面对应4个可能的支持向量的关系,使用两个条件:
      • a. 支持向量的点距离平面的距离(几何间隔)为1; ---> 得到b1 b2关于w*和x的表达式
      • b. 其余的点距离平面的距离不低于1 ---> 得到 x1'' = x2'',x1' = x2'
image-20241106174510292 image-20241106174539683

支持向量和间隔边界

在上面的存在唯一性证明过程当中,提到了支持向量和间隔边界相关的概念,我们具体来说明。

  • 支持向量:分离超平面最近的样本点实例,即使得式7.14等号成立的点
  • 间隔边界:H1和H2为间隔边界
    • 间隔:H1和H2的距离为间隔(margin) 间隔的值依赖于分离超平面法向量w,为\(\frac{2}{w}\)

image-20241109222351350

给出了一个案例,实际上就是将每个点代入到原策略函数中,然后求解二次规划问题。

image-20241109222644061

7.1.4 对偶算法

为什么要进行对偶求解

  • 更容易求解(对偶问题一定是凸函数,即局部最优满足全局最优)
  • 便于后续引入核函数

对偶求解过程

  • 首先构造拉格朗日函数,\(α_i\)为拉格朗日因子,且满足\(α_i\geq0\)

    image-20241110201524584

  • 通过拉格朗日对偶性,原始问题的对偶问题就转变为极大极小问题(注:这里的α是由\((\alpha_1. \alpha_2...,α_n)^{T}\)构成的拉格朗日向量)

    • (为什么要取极大值?本章最后一小节说明,大概先看看整个过程怎么样的)

    image-20241110201737308

    • 首先求解L函数关于w,b 的极小值,通过偏导=0计算得到7.19和7.20约束式

      image-20241110202322035

    • 将7.19的w表达式代入原来的拉格朗日7.18式后,进一步得到外层最小化问题,而如果转化为最大最小问题,那么就是对偶问题了(先不急着回答为什么能转换成对偶问题,最后一小节会提到)

      image-20241110202433452

  • 考虑凸函数的标准形式,对偶问题可以等价为如下形式,可通过二次规划求出来解α*

image-20241110202531459

  • 得到α*后,可通过定理7.2得到w*和b*的表达式,进而得到最后的超平面

image-20241110202937627

定理证明过程如下:

  • w*是基于KKT条件直接得到(KKT是什么?为什么能用KKT条件?和对偶到底有什么关系?)
    • 其中KKT第三个式子来由:对于间隔边界的点,右边项为0,而对于其他点α=0,综上,相乘为0
  • 通过至少存在\(α_j^{*}>0\),即支持向量,得到KKT第四个取相等的条件,于是就可以得到b*的表达式

image-20241110203127260

最后通过定理求得参数w* b*后,就可以得到最终的超平面和决策函数

image-20241110203157034

【算法7.2】 线性可分SVM对偶算法描述

  • 最优化问题由7.22-7.24得到,即我们构造的拉格朗日函数求极值后的等式条件

  • 计算由式7.25-7.26得到,主要是通过对偶问题的KKT条件,可以发现w*和b*参数的求解只依赖于\(\alpha_i^{*}>0\)的样本点(支持向量

    image-20241110210315041

    • 求解α*可通过SMO算法进行求解

image-20241110203545251

给出该算法具体的例子便于快速理解回顾

  • 注意一点,这里的极值点如果不满足约束条件,极值应当取边界值

image-20241110210412401

*凸优化补充:KKT Slater 对偶 + 流程总结

凸优化最优解问题格式:

image-20241110203758672

什么是凸函数
1、目的是求取目标函数的最小值;
2、目标函数和不等式约束函数都是凸函数,定义域是凸集;
3、若存在等式约束函数,则等式约束函数为仿射函数;
4、对于凸优化问题具有良好的性质,局部最优解便是全局最优解。

对偶问题,slater条件,KKT条件

对于凸函数求解,我们一般是采用拉格朗日乘子法构建函数(其中α≥0、β任意,均为拉格朗日乘子,i=1,2,…,p且j=1,2,…,q)

image-20241110203942846

但是考虑到如果要直接全部求偏导,光参数α和β就有p+q个了,所以考虑使用对偶问题简化计算

考虑这样一个函数,思考:为什么要求最大值??

image-20241110204356998

不难得到这样的关系

  • (1)式表示,当约束条件满足时,拉格朗日函数最大值就是f(x)

  • (2)表明,约束条件只要有一个不满足,结果就是无穷大

image-20241110204410568

那么我们可以解答刚刚提出的问题,求最大值后,就可以对原问题的约束条件进行吸收,进而可以表示成能够进行对偶的形式

image-20241110204641969

进而转变为对偶问题

image-20241110204719905

看下面这种图,给定原问题和对偶问题的结果P和Q,一般来说P ≤ Q(矮个子里的高个子比不过凤凰的尾巴),没取到等号那就是弱对偶,此时对偶问题不能等价转换
但是如果我满足了Slater条件和KKT条件,就可以取到这个等号,那么就是强对偶,我就可以转换为对偶问题

image-20241110204804238

slater条件定义:存在x,使得不等式约束g(x)<=0严格成立,即保证了鞍点的存在。
KKT条件如下:

image-20241110205127178
  • 第一个条件表示满足约束条件
  • 第二个条件表示最优点x, ∇f必须是∇gi和∇hj的线性組合
  • 第三个条件是限制拉格朗日的条件,对每一个α都必须大于或等于零,而对于等式,β不等于0

这张图对上述过程总结的很到位。

img

参考资料:

第四话:拉格朗日对偶问题

凸优化(slater条件探讨)

支持向量机(SVM)必备知识(KKT、slater、对偶)

7.2 线性支持支持向量机

7.2.1 线性支持SVM模型

  • 问题:线性可分终究是理想情况,实际是会有特异点(outlier),即在采取硬间隔最大化时 7.14约束条件并不是所有点都成立的

image-20241110211256991

  • 解决方案:模型策略从硬间隔最大化优化为软间隔最大化,接下来详细说明软间隔是什么。

引入松弛变量\(\xi_{i}\geqslant0\),并对于每个松弛变量都需支付代价\(\xi_i\),目标函数和约束条件修改为如下:

  • 对约束条件的理解:

    • 对于正确分类点,\(\xi_i=0\),那么和前面的一样
    • 对于误分类点,\(\xi_i>0\),那么就允许约束条件大于更小的距离(包括负数)
  • 对于目标函数的理解

    • C > 0 是惩罚参数,用于协调函数间隔和误分类点个数

image-20241110211452633

那么采用软间隔得到的问题如下

image-20241110211557131

类似地,求解后的分类决策函数模型就是线性支持向量机

image-20241110211703845

7.2.2 对偶算法

有了上一节的铺垫,我们按照同样的方式进行对偶算法的分析,无非多了一个松弛变量进行约束。

  • 式7.49得到关于\(\alpha_i\)不等式的具体解释说明

image-20241110212431276

image-20241110212159479

一样地,求得α后,通过对偶问题KKT条件可以得到对应的w b的解,进而代入得到最终的模型

image-20241110212634408

解释一下,为什么存在\(0<α_j^{*}<C\)(支持向量),就有等号成立,以及b的表达式7.51具体是怎么推导的。

  • 等号成立看7.53,首先说明\(\xi_i^{*}=0\),然后左边式子不等于0就可以推得
  • b的表达式就是把这个结论代入w的表达式就可以得到,其中有一个隐含条件是yj的平方是1
image-20241110213318867

【算法7.3】 线性支持SVM算法描述

image-20241110212729995

7.2.3 支持向量

那么对偶问题的支持向量是满足什么条件呢?通过这个图来看

image-20241110213758701

对应的关系说明:

image-20241110214139267

为什么?

根据这些约束条件:

image-20241110214312963

而几何间隔d计算公式为:

image-20241110214516392

以第一种情况为例子:如果\(\alpha_i^{*}<C\),那么由式7.43得到,u*>0,那么就可以推得\(\xi_i^{*}=0\),进而由式7.53得到几何间隔为1,所以在间隔边界上。

其他同理(第二种情况对应0<d<1,第三种情况对应d=0,第四种情况对应d<0)

7.2.4 合页损失函数

对于线性支持向量机的学习,有另外一种等价形式:

image-20241110215110150

  • 这里第一项是经验损失,而下面这个函数就是合页损失函数,第二项则是一个L2范数的正则化项

image-20241110215140787

  • 右下角的+号表示取正值函数

image-20241110215236669

理解:之所以是等价描述,关键是第一项,当样本点被正确分类且函数间隔y(wx + b) > 1时,损失为0,否则损失为 1-y(wx+b)

image-20241110215559719

证明:

  • 实际上隐含了7.61和7.62两个隐藏条件
  • 小于等于0时得到的结果是因为不等式\(1-y_i(w\bullet x_i+b)\leqslant0\leqslant\xi_i\)

image-20241110215807828

结合上述的函数,给出0-1损失函数 感知机和合页损失函数的图像对比

  • 线性支持SVM的损失函数在0-1损失函数的基础是连续可导的,可作为0-1函数优化的上界(合页损失函数)目标函数

  • 因为SVM的确信度问题造成了偏移,因为SVM要求距离(确信度)大于等于1,而感知机只要求距离>=0

image-20241110220124862

7.3 非线性支持向量机与核函数

7.3.1 核技巧

非线性分类问题

这里给出了一个感性的理解图

image-20241111195804491

李航老师关于核函数理论的解释见下面这张图

  • 结合上面的图说明,什么是核技巧呢?
    • 实际上就是在二维平面中的\(x_1^2+x_2^2=0(w=1, b=0)\)(此时线性不可分),在三维平面就可以看成\(z_1+z_2=0\)(此时线性可分)
    • 然后我们的模型在这个三维平面上跑,学习得到最终的分类模型

image-20241111201130515

核函数定义

在说明核函数之前,涉及到一些概念进行补充理解

  • 什么是希尔伯特空间
  • 什么是内积内积空间是什么?完备又怎么理解?
    • 内积:对于一个线性空间中的任意三个矢量 ϕ,ψ,χ 和一个复数域上的数 a ,满足以下交换律结合律以及自乘率
    • 内积空间:定义内积的线性空间
    • 空间完备性:对于一个内积空间, 其任一柯希序列的极限也属于这个空间时,则这个性质叫空间的完备性。
      • 柯西(Cauchy)序列:简单理解,去掉有限个点后,剩下的最大向量长度小于任意正整数

李航老师给出的定义见下图

image-20241111201853115

这里放一下关于映射关系的例子(映射关系不是唯一的,只是演示不同维度的映射),并给出一些相关点

  • 这边核函数作用是降维吗?更深一步说,本质应该还是为了简化运算。

注:我们实际上只需直接计算核函数K(x, z) (简单),不需要把两个映射关系求出来(复杂)

image-20241111202930166

核函数在SVM的应用

我们之前7.37式子中的原有对偶问题,使用核函数代替,就可以通过核技巧来求解非线性问题了

  • 接下来的问题是核函数如何选择?我们下一小节会再深入说明。

image-20241111203246761

image-20241111203304095

7.3.2 正定核

前面提到,构造映射函数是一件复杂的事情,而我们一般是通过直接求核函数K(x, z)。那么可不可以直接通过一个给定的函数是不是核函数?

首先给出正定核的概念,核函数实际上也叫正定核函数(positive definite kernel function)。

假设:\(K(x,z)\text{ 是定义在 }\mathcal{X}\times\mathcal{X}\text{ 上的对称函数}\text{并且对任意的 }x_1,x_2,\cdots,x_m\in\mathcal{X}\text{,}K(x,z)\text{ 关于 }x_1,x_2,\cdots,x_m\text{ 的 Gram 矩阵是半正定的。}\)

Gram矩阵半正定证明

(等价的命题:对于任意 n 阶实对称半正定矩阵 M, 存在矩阵 A 使得 M=ATA 成立,核心思路是通过正交对角化的性质,然后对特征矩阵求根转换得到ATA的形式)

image-20241111204630407

定义映射

image-20241111205207953

注:这里线性组合是元素的集合S(因为αi取值),因为加法惩罚封闭的,所以可以定义向量空间。

定义内积空间S

  • 前面说过,核函数是两个映射函数的乘积,那么类似地定义另外一个线性组合,然后接下来要证明是否满足内积条件
image-20241111205401036 image-20241111205410446

7.74-7.76式,通过7.70-7.72得到和K(x, z)对称性得到(乘法交换律)

  • 7.75式子前面一项,整合一个1~(m+l)的求和和后面的式子等价

对于式7.77,由于半正定,所以可以得到大于等于0

image-20241111210022931

对于7.78,右边可以得到左边,主要说明左边推右边,即必要性。

这里给出一个不等式(证明思路是通过f + λg的线性组合代入7.77式后,看成关于λ未知函数,使用判别式得到)

image-20241111210135144

然后代入7.77式,得到一个式子

image-20241111210433371

这里通过7.73的运算定义

image-20241111210457898

将左边的式子替换后就是得到的结果

image-20241111210526976

至此,上述运算*就是内积运算,可以表示为:

image-20241111210623885

内积空间完备化为希尔伯特空间

通过内积得到范数

image-20241111210729956
  • 得到范数后,得到S是赋范向量空间,根据泛函分析理论,我们一定可以使得完备化,根据前面的希尔伯特空间定义,一旦完备就能得到希尔伯特空间H
  • 我们将该希尔伯特空间成为再生核希尔伯特空间(reproducing kernel Hilbert space RKHS),即满足再生核性质的希尔伯特空间:
image-20241111210914231

结论:正定核充要条件

实际上前面都是为了我们这个主题进行铺垫:到底什么函数满足正定核条件?

image-20241111211043526
  • 必要性证明思路:核函数转换成内积后,结合Gram对称性质,化简为一个平方相乘的格式,得到K是半正定矩阵结论
  • 充分性证明思路:前面的铺垫实际上都是为了证明充分性,根据Gram矩阵半正定的假设,可以得到希尔伯特映射,通过7.83的性质可以得到核函数可以通过映射函数相乘

给出等价定义

  • 对称函数在构造核函数的时候会比较友好
image-20241111211629049

实际上,在有限输入及判断Gram是否半正定也不容易。。我们往往直接拿已有的核函数

7.3.3 常用核函数

image-20241111211852031

字符串核函数

映射定义

image-20241111212021898

7.3.4 非线性支持向量机

该部分没啥内容,实际上就是在原有基础上将核函数修改即可,关键就是核函数的选择问题以及理清到底什么样的函数是核函数即可。

image-20241111212110788

算法【7.4】 非线性支持向量机

image-20241111212138151

7.4 序列最小最优化算法SMO

https://zhuanlan.zhihu.com/p/433150785

posted @ 2024-11-11 21:35  yuezi2048  阅读(14)  评论(0编辑  收藏  举报