在前⼀部分中,我们研究了许多基于⾮线性核的学习算法。这种算法的⼀个最⼤的局限性是核函数必须对所有可能的训练点对支持向量机 - 图1进⾏求值,导致对新的数据点进⾏预测时也会花费过多的时间。本章中,我们会看到具有稀疏解的基于核的算法,其对新数据的预测只依赖于训练集的⼀个⼦集上计算的核函数。

1 最大边缘分类器(SVM)

1.1 硬间隔二分类SVM

对于一个分类问题,假设训练数据是线性可分的,很多算法可以找到能精确分类训练集点的决策平面。以感知器算法为例,该方法使用随机梯度下降算法求解模型参数,当训练数据线性可分,感知器算法可以保证能在有限的步骤内找到一个精确解,但由于可能存在多个解,最终哪个解会被找到依赖于参数的初始化以及数据点出现的顺序。
实际应用中,当存在多个解,由于我们希望模型在新数据点上的表现要尽可能好,即尝试找到泛化误差最小的那个解。

1.1.1 边缘

最大边缘决策面

支持向量机的提出就是为了找到能使得泛化误差尽可能小的决策平面,主要通过引入边缘(margin)——决策平面与任意样本之间的最小距离。这里的最小距离指的是决策平面与最近的训练数据点之间的垂直距离。通过最大化边缘,我们可以从多个能精确分割训练集点的决策平面中(这里假定数据点在特征空间中是线性可分的),找到一个特定的选择
截屏2021-01-05 下午8.00.55.png

采⽤最⼤边缘解的动机

可以通过计算学习理论(computational learning theory)或者统计学习理论(statistical learning theory)进⾏理解。
Restricted Bayes Optimal Classifiers.pdf
上述论文中给出了使⽤最⼤边缘解的⼀个简单的原因。文中⾸先使⽤带有共同参数支持向量机 - 图3的⾼斯核Parzen密度估计对每个类别的输⼊支持向量机 - 图4的分布进⾏建模。通过最⼩化学习到的模型的错误率来寻找最优的超平⾯。在极限支持向量机 - 图5的情况下,可以证明最优超平⾯是有着最⼤边缘的超平⾯。这个结果背后的直观含义是,随着支持向量机 - 图6的减⼩,距离超平⾯较近的点对超平⾯的控制能⼒逐渐⼤于距离较远的点。在极限情况下,超平⾯会变得与⾮⽀持向量的数据点⽆关。

1.1.2 支持向量机

a. 边缘约束与最优化目标

首先,我们对二分类线性基函数模型进行如下表示
支持向量机 - 图7
为了便于理解,我们将偏置支持向量机 - 图8设置为阈值。如果输入项支持向量机 - 图9则输入被分类到支持向量机 - 图10中(对应支持向量机 - 图11),否则为类别支持向量机 - 图12(对应支持向量机 - 图13),即决策函数为支持向量机 - 图14。此时的决策面直接对应支持向量机 - 图15的点集。此前已推导出任意输入支持向量机 - 图16到决策面的垂直距离大小为支持向量机 - 图17。注意当前我们的要求是:

  1. 线性可分情况下,训练集的点均被正确分类,此时对于所有训练集的数据点有支持向量机 - 图18
  2. 最大化决策面与最近的训练样本点在输入空间中的距离;

将二者统一在一个式子中,我们将点支持向量机 - 图19距离决策面的距离表示为
支持向量机 - 图20
边缘由训练集中垂直距离最近的点给出,即支持向量机 - 图21,我们希望通过最优化参数支持向量机 - 图22支持向量机 - 图23来最大化这个距离支持向量机 - 图24
但直接求解这个最优化问题相当复杂,因此我们要把它转化为⼀个更容易求解的等价问题。
注意到这里的支持向量机 - 图25对于所有样本一致,可以从支持向量机 - 图26问题中提出来。进一步简化这个相对复杂的优化问题,因为 对模型参数进行缩放( w → κw 以及b → κb)并不改变点支持向量机 - 图27距离决策⾯的几何距离支持向量机 - 图28。利用该性质,我们可以调整模型参数,使得对于距离决策⾯最近的点满足
支持向量机 - 图29
且整个训练集的数据点满足
支持向量机 - 图30
这被称为决策超平⾯的标准表⽰。对于使上式取得等号的数据点,我们称限制被激活,对应于距离决策面最近的点,而对于剩余数据点,我们说限制未激活。由于总会有⼀个距离最近的点,因此总会存在⾄少⼀个激活限制,并且⼀旦边缘被最⼤化,会有⾄少两个激活的限制(要最大化则多于一个数据点)。因此我们得到了一个约束条件下的最大化问题
约束条件:
支持向量机 - 图31
最大化问题(最大化支持向量机 - 图32等价于最小化支持向量机 - 图33):
支持向量机 - 图34
这是一个⼆次规划(quadratic programming)问题,常数因子支持向量机 - 图35的引入是为了方便后续计算。

b. 带约束的最优化问题求解

在之前的最大化似然函数求解中,我们会将问题转换为最小化负对数似然或者是等价的平方和误差函数,这类函数通常是凸函数,因此可以通过寻找令该函数导数为零的驻点来直接找到对应的极值点,属于无约束的最优化问题。
由于当前的优化目标中有额外的约束条件,这是一个包含不等式约束的最优化问题,无法直接以上方法。一种解决的思路是将其转化为一系列的无约束问题进行求解,主要通过求解拉格朗日对偶问题来解决。
更多关于Lagrange对偶的内容可参考有约束的优化问题

c. 最大化边缘的对偶表示

下面我们通过引入拉格朗日乘子来加入惩罚项,令乘数支持向量机 - 图36,先将带约束的优化目标函数转化为以下的拉格朗日函数
支持向量机 - 图37
注意到加入的乘数项前为负号,对于符合约束的项支持向量机 - 图38,而支持向量机 - 图39非负,和式中对应项支持向量机 - 图40,将使得支持向量机 - 图41变小,反之不符合约束的样本项将使使支持向量机 - 图42增大,给予“惩罚”。这相当于我们隐式地使⽤了⼀个误差函数——当数据点被错误分类时,这个误差函数等于⽆穷⼤,⽽当数据点被正确分类时,这个误差函数等于零。
我们最终的目的是最小化整个拉格朗日函数,对于支持向量机 - 图43中的第一项,我们的目标始终是要最小化,而对于后一个惩罚项,我们的需要近似约束项的作用,也就是说当存在违反约束的数据点支持向量机 - 图44时,要能够使得惩罚尽可能大,即相应的支持向量机 - 图45要尽可能大,从而使得支持向量机 - 图46接近于无穷大。因此我们需要关于支持向量机 - 图47最小化支持向量机 - 图48,且关于支持向量机 - 图49最大化支持向量机 - 图50。先令支持向量机 - 图51关于支持向量机 - 图52的导数为零,得
支持向量机 - 图53
使用这两个条件从支持向量机 - 图54中消去支持向量机 - 图55,定义核函数支持向量机 - 图56
支持向量机 - 图57
约束条件为
支持向量机 - 图58
这称为最大化边缘问题的对偶表示,目标是关于支持向量机 - 图59最大化支持向量机 - 图60
M个变量的⼆次规划问题的求解,通常的时间复杂度为支持向量机 - 图61。通过将原始问题转化为对偶问题,我们将涉及到M个变量的最⼩化公式的问题转化为了涉及到N 个变量的对偶问题。对于⼀组固定的基函数,其中基函数的数量M⼩于数据点的数量N,转化为对偶问题似乎没有什么好处。但是,对偶问题使得模型能够⽤核函数重新表⽰,因此最⼤边缘分类器可以被⾼效地应⽤于维数超过数据点个数的特征空间,包括⽆穷维特征空间。核公式也让核函数正定这⼀限制条件存在的原因变得更显然,因为这能确保了拉格朗⽇函数支持向量机 - 图62有上界,从⽽使得最优化问题可解。

d. 支持向量

假设我们已经完成了对偶问题的求解,想使用模型预测新的数据点类别,可直接使用以下公式
支持向量机 - 图63
根据KKT条件,需要满足下列三个性质
支持向量机 - 图64
从第三个性质我们可以知道对于每个数据点,要么支持向量机 - 图65,要么支持向量机 - 图66。因此在(9)的和式中所有支持向量机 - 图67对应的数据点对预测的贡献为零。我们将剩余的对预测结果有影响的数据点称为支持向量(support vector),这些支持向量满足支持向量机 - 图68,正对应于特征空间中位于最大边缘超平面上的点,即支持向量点位于超平面支持向量机 - 图69支持向量机 - 图70上。
如图7.1所示,这部分点通常只是全量训练数据集的一个很小的子集。这个性质是⽀持向量机在实际应⽤中的核⼼,⼀旦模型被训练完毕,相当多的数据点都可以被丢弃,只有⽀持向量被保留。
截屏2021-01-06 下午5.19.19.png
上面的图7.2给出了⼀个分类问题的例⼦。分类⽤的模型使⽤⽀持向量机训练,训练数据是⼀个简单的⼈⼯⽣成的数据集,核函数为⾼斯核。虽然数据点在⼆维空间中不是线性可分的,但是它在隐式地由⾮线性核函数定义的⾮线性特征空间中是线性可分的。图中的最⼤边缘超平⾯由⽀持向量的位置定义,其他数据点可以⾃由移动(只要仍然在边缘区域之外)⽽不改变决策边界。

1.2 软间隔二分类SVM

⽬前为⽌,我们假设训练数据点在特征空间中是线性可分的。然⽽在实际情况中,对于固定的基函数而言类别可能是线性不可分的,此时类条件分布可能重叠,这种情况下对训练数据的精确划分会导致较差的泛化能⼒。
因此我们需要修改⽀持向量机,允许⼀些训练数据点被误分类,放宽约束使得数据点允许在边缘边界的“错误侧”,但是增加⼀个惩罚项,这个惩罚项随着与决策边界的距离的增⼤⽽增⼤,对应于约束条件的修改。

1.2.1 松弛变量

为了便于最优化问题的求解,令这个惩罚项是距离的线性函数⽐较⽅便。为此我们引⼊松弛变量支持向量机 - 图72,将式(5)中的硬性约束支持向量机 - 图73替换为下式
支持向量机 - 图74
这是因为当训练数据点并非线性可分时,我们需要
此时对于不同位置数据点,我们希望

  • 当数据点被正确分类:
    • 若位于边缘平面上,或边缘正确的外侧时,并无惩罚:支持向量机 - 图75
    • 若位于边缘内部,但是在决策面的正确侧时,给予一个较小的惩罚:支持向量机 - 图76
  • 当数据点被错误分类:
    • 若位于决策面错误的一侧,被误分时则给予较大的惩罚:支持向量机 - 图77

截屏2021-01-06 下午5.38.17.png
与硬间隔时的情况不同,此时虽然边缘超平面仍为支持向量机 - 图79,但这并非是距离决策面最近的点了,之前在硬约束支持向量机 - 图80下,不存在支持向量机 - 图81的数据点,而此时我们通过加入非负的松弛变量对约束进行了放宽,所以是存在令支持向量机 - 图82的数据点的。而最终我们得到的支持向量机 - 图83其实是一个软边缘(soft margin)。需要注意的是,虽然软边缘使得SVM对于线性不可分的数据点仍能给出决策面,但决策面却对异常点十分敏感,尤其是距离真实决策面很远的异常点,这是因为惩罚项随着数据点与决策边界间的距离增大而增大。
此时我们的目标变成了最大化边缘的同时,以一种比较柔和的方式惩罚位于边缘边界错误一侧的数据点支持向量机 - 图84
其中惩罚系数C控制了松弛变量惩罚与边缘间的折中,因为最小化上式意味着同时要最小化第一项(等于最大化间隔)和第二项(等于最小化误分类点的数量)。可知C越大则对误分类的惩罚越大,模型也越接近于硬间隔的SVM。

1.2.2 软边缘对偶问题

对于上面提出的软边缘设定,仍然是在求解一个有约束的最优化问题
约束条件:
支持向量机 - 图85
优化目标函数:
支持向量机 - 图86
同样可转化为Lagrange函数
支持向量机 - 图87
以及KKT条件
支持向量机 - 图88

同样,由此找到相应的对偶问题,根据KKT条件,最终得到
支持向量机 - 图89

这与硬间隔情况下仅仅是约束条件存在差异。

1.2.3 SMO学习算法

虽然对新输⼊的预测只通过⽀持向量完成,但是训练阶段(即确定参数 a 和b的阶段)使⽤了整个数据集, 因此找到⼀个解决⼆次规划问题的⾼效算法很重要。因为我们⽬标函数支持向量机 - 图90是⼆次的,而限制条件定义了⼀个凸区域(根据限制条件的线性性质),那么任意局部最优解也是全局最优解。
使⽤传统的⽅法直接求解⼆次规划问题通常是不可⾏的,因为需要的计算量和存储空间都相当⼤, 因此我们需要寻找更实际的⽅法。⼀种最流⾏的训练⽀持向量机的⽅法被称为顺序最⼩化优化(sequential minimal optimization),或者称为SMO。这种⽅法考虑了分块⽅法的极限情况,每次只考虑两个拉格朗⽇乘数。 这种情况下⼦问题可以解析地求解, 因此避免了数值⼆次规划。选择每⼀步骤中需要考虑的拉格朗⽇乘数对时,使⽤了启发式的⽅法。
TODO

1.3 使用核函数的非线性SVM

核函数对应于特征空间中的内积。特征空间可以是⾼维或⽆穷维的。通过直接对核函数操作,⽽不显式地引⼊特征空间,⽀持向量机或许在⼀定程度上避免了维度灾难的问题。

1.4 多分类问题SVM

参考之前探讨过的关于一般线性分类器如何推广到支持向量机 - 图91个类别的情景,通常有“一对多”和“一对一”这两种方案。

*1.5 回归问题SVM

2 相关向量机

⽀持向量机被⽤于⼀系列的分类和回归的应⽤中。尽管这样,⽀持向量机还是有许多局限性,某些局限性已经在本章中讨论过了:

  • SVM直接输出⼀个决策结果⽽不是后验概率;
  • SVM最开始⽤于处理⼆分类问题,推⼴到K>2类时有很多问题;
  • 有⼀个复杂度参数C或者ν(以及回归问题中的参数ϵ )必须使⽤诸如交叉验证的⽅法确定;
  • 预测是⽤核函数的线性组合表示的,核函数以训练数据点为中⼼,并且必须是正定的;

相关向量机(relevance vector machine)RVM是⼀个⽤于回归问题和分类问题的贝叶斯稀疏核⽅法,它具有许多SVM的特征,同时避免了SVM的主要局限性。此外,它通常会产⽣更加稀疏的模型,从⽽使得在测试集上的速度更快,同时保留了可⽐的泛化误差。

2.1 用于回归的RVM

2.2 用于分类的RVM