文章目录

  • 引入
  • 线性可分支持向量机与硬间隔最大化
  • 线性可分支持向量机
  • 函数间隔和几何间隔
  • 间隔最大化
  • 最大间隔分离超平面
  • 支持向量和间隔边界
  • 学习的对偶算法
  • 线性支持向量机与软间隔最大化
  • 线性支持向量机
  • 学习的对偶算法
  • 支持向量
  • 合页损失函数
  • 非线性支持向量机与核函数
  • 核技巧
  • 非线性分类问题
  • 核函数的定义
  • 核技巧在支持向量机中的应用
  • 正定核
  • 非线性支持向量机


引入

SVM三要素概述
支持向量机是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。

支持向量机还包括核技巧,这使他成为实质上的非线性分类器。

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

支持向量机的学习算法就是求解凸二次规划的最优化算法。

支持向量机的种类有

由简至繁

对应别名

对应数据集状态

线性可分支持向量机

硬间隔支持向量机(硬间隔最大化)

线性可分

线性支持向量机

软间隔支持向量机(软间隔最大化)

近似线性可分

非线性支持向量机

-(核技巧及软间隔最大化)

线性不可分

关于核函数
当输入空间为欧氏空间或离散集合、特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。

核函数可以学习非线形支持向量机,等价于隐式地在高维的特征空间学习线性支持向量机。

线性可分支持向量机与硬间隔最大化

线性可分支持向量机

考虑二分类问题。
假设有

  1. 假设输入空间与特征空间为两个不同的空间,输入空间为欧氏空间或离散集合,特征空间为欧氏空间或希尔伯特空间。
  2. 训练数据集线性可分。

学习的目标是在特征空间找到一个分离超平面。

当训练数据集线性可分的时候,存在无穷多个分离超平面。感知机采用的是误分类最小的策略,求得分离超平面,此时的解有无穷多个。线性可分支持向量机采用间隔最大化求最优分离超平面,这时,解是唯一的。

定义7.1(线性可分支持向量机)给定线性可分训练数据集,通过间隔最大化等价地求解相应的凸二次规划问题学习得到的分离超平面为支持向量机硬链接例题 支持向量机简单例题_数据集
以及相应的分类决策函数支持向量机硬链接例题 支持向量机简单例题_机器学习_02称为线性可分支持向量机。

函数间隔和几何间隔

一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。

定义7.2(函数间隔)对于给定的训练数据集支持向量机硬链接例题 支持向量机简单例题_支持向量机_03和超平面支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_04,定义超平面支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_04关于样本点支持向量机硬链接例题 支持向量机简单例题_数据集_06的函数间隔为支持向量机硬链接例题 支持向量机简单例题_特征空间_07
定义超平面支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_04关于训练数据集支持向量机硬链接例题 支持向量机简单例题_支持向量机_03的函数间隔为支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_04关于支持向量机硬链接例题 支持向量机简单例题_支持向量机_03中所有样本点支持向量机硬链接例题 支持向量机简单例题_数据集_06的函数间隔之最小值,即支持向量机硬链接例题 支持向量机简单例题_特征空间_13

虽然函数间隔能表示点到超平面的一种距离,但是是由缺陷的。如果成比例地改变系数的话,超平面不变,函数间隔会改变。因此我们需要对超平面的法向量加约束。此时的函数间隔称为几何间隔。

定义7.3(几何间隔)对于给定的训练数据集支持向量机硬链接例题 支持向量机简单例题_支持向量机_03和超平面支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_04,定义超平面支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_04关于样本点支持向量机硬链接例题 支持向量机简单例题_数据集_06的几何间隔为支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_18
同理能得到支持向量机硬链接例题 支持向量机简单例题_数据集_19

于是,函数间隔和几何间隔的关系是支持向量机硬链接例题 支持向量机简单例题_支持向量机_20

间隔最大化

支持向量机的学习策略是正确划分数据且几何间隔最大。

不仅能将正负例分开,而且对最难分的点实例点(离超平面最近的点)也有足够大的确信度。

最大间隔分离超平面

基于间隔最大化的约束最优化问题表示为:
支持向量机硬链接例题 支持向量机简单例题_机器学习_21

考虑函数间隔和几何间隔的关系的话,上述式子可以用函数间隔表示:
支持向量机硬链接例题 支持向量机简单例题_数据集_22

因为函数间隔的取值对优化的解不产生影响,所以不妨可以假设其为1,那么目标函数就成了最大化支持向量机硬链接例题 支持向量机简单例题_特征空间_23,即最小化支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_24。于是,最优化问题可以表示为:支持向量机硬链接例题 支持向量机简单例题_机器学习_25

这是一个凸二次规划问题。

算法7.1(线性可分支持向量机学习算法——最大间隔法)
输入:线性可分数据集;
输出:最大间隔分离超平面和分类决策函数。
(1) 构造并求解约束最优化问题。
(2)由此得到分离超平面和分类决策函数。

至此,我们一共学习的七个模型中,有四个需要用最优化的知识求解,即感知机、逻辑斯蒂回归、最大熵模型以及支持向量机。

定理7.1(最大间隔分离超平面的存在唯一性)若训练数据集支持向量机硬链接例题 支持向量机简单例题_支持向量机_03线性可分,则可将训练数据集中的样本点完全正确分开的最大间隔分离超平面存在且唯一。

支持向量和间隔边界

在线性可分情况下,训练数据集的样本点中与分离超平面最近的样本点的实例称为支持向量。支持向量是使约束条件等号成立的点,即支持向量机硬链接例题 支持向量机简单例题_机器学习_27

支持向量机硬链接例题 支持向量机简单例题_特征空间_28

注意到支持向量所在的超平面是相互平行的,分离超平面位于他们中间。间隔依赖于分离超平面的法向量支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_29,等于支持向量机硬链接例题 支持向量机简单例题_特征空间_30

支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_31称为间隔边界

学习的对偶算法

支持向量机这篇博客中介绍得很清楚,此处不再赘述。

关于对偶算法的优化对象,是通过KKT条件得到的。KKT条件是拉格朗日乘子法取得可行解的必要条件,详细可以参考这篇文章

总结来说:

  1. Lagrange乘子法将约束问题转化为无约束问题;
  2. 因为minmax不方便求解,所以需要转化为对偶形式。两者之间的解只在特定条件下等价;
  3. 计算过程先是通过导数得到支持向量机硬链接例题 支持向量机简单例题_支持向量机_32的值,然后代入式子。之后将max转化为min之后求解支持向量机硬链接例题 支持向量机简单例题_数据集_33。最后将支持向量机硬链接例题 支持向量机简单例题_数据集_33代入支持向量机硬链接例题 支持向量机简单例题_支持向量机_32

定理7.2支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_36是对偶最优化问题的解,那么存在下标支持向量机硬链接例题 支持向量机简单例题_机器学习_37,使得支持向量机硬链接例题 支持向量机简单例题_机器学习_38,并可按照下式求得原始最优化问题的解支持向量机硬链接例题 支持向量机简单例题_支持向量机_39

算法7.2

  1. 构造并求解约束最优化问题;
  2. 按照定理7.2计算支持向量机硬链接例题 支持向量机简单例题_支持向量机_32
  3. 求得分离超平面。

定义7.4(支持向量)考虑原属最优化问题及对偶优化问题,将训练数据集中,对对应于支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_41的样本点支持向量机硬链接例题 支持向量机简单例题_数据集_06的实例支持向量机硬链接例题 支持向量机简单例题_数据集_43称为支持向量。

为什么支持向量机硬链接例题 支持向量机简单例题_支持向量机_44就行呢?这是因为这个i啊,他满足约束条件,自然和我们之前的支持向量定义满足了。

线性支持向量机与软间隔最大化

线性支持向量机

线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,因为上述方法的不等式约束并不能成立。

训练数据中存在特异点,线性不可分意味着某些样本点不能满足函数间隔大于等于1的约束条件(支持向量机硬链接例题 支持向量机简单例题_支持向量机_45)。为了解决这个问题,引入了松弛变量支持向量机硬链接例题 支持向量机简单例题_支持向量机_46,使得函数间隔加上松弛变量大于等于1,这样约束条件就变为了支持向量机硬链接例题 支持向量机简单例题_数据集_47
同时,对每个松弛变量支持向量机硬链接例题 支持向量机简单例题_特征空间_48,支付一个代价支持向量机硬链接例题 支持向量机简单例题_特征空间_48,目标函数变为了支持向量机硬链接例题 支持向量机简单例题_特征空间_50C大时对误分类的惩罚大,反之小。

这一目标函数包含两层含义,分别是:第一项尽量小即函数间隔大;第二项尽量小即误分类点数少。C是调和二者的系数。

线性不可分的线性支持向量机可以写为如下形式的凸二次规划:
支持向量机硬链接例题 支持向量机简单例题_机器学习_51

因为该问题是一个凸二次规划问题,因而解是存在的。可以证明支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_29是唯一的,但支持向量机硬链接例题 支持向量机简单例题_特征空间_53不唯一,而是存在于一个区间。

定义7.5(线性支持向量机) 对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,得到的分离超平面为支持向量机硬链接例题 支持向量机简单例题_数据集_54以及相应的分类决策函数支持向量机硬链接例题 支持向量机简单例题_机器学习_02称为线性支持向量机。

学习的对偶算法

此处同样参照先前的链接。

定理7.3支持向量机硬链接例题 支持向量机简单例题_数据集_56是对偶问题的一个解,若存在支持向量机硬链接例题 支持向量机简单例题_支持向量机_57的一个分量支持向量机硬链接例题 支持向量机简单例题_机器学习_58支持向量机硬链接例题 支持向量机简单例题_机器学习_59,则原始问题的解与定力7.2的形式一致。

算法7.3 和 算法7.2保持一致,也是先求支持向量机硬链接例题 支持向量机简单例题_数据集_60,再求支持向量机硬链接例题 支持向量机简单例题_数据集_61,最后得到分离超平面。

支持向量

在线性不可分的情况下,将对偶问题的解支持向量机硬链接例题 支持向量机简单例题_支持向量机_57中对应于支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_41的样本点的实例称为支持向量。

软间隔的支持向量或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分类一侧。

所谓支持向量,应该是能影响超平面分类的向量。

在软间隔支持向量机中,间隔边界依然是满足支持向量机硬链接例题 支持向量机简单例题_机器学习_64的,不过我这个支持向量不一定在它上面了。

准确来说,它应该在函数间隔支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_65的位置,这个支持向量离间隔边界的几何距离为支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_66

位置关系

参数情况

在间隔边界上

支持向量机硬链接例题 支持向量机简单例题_支持向量机_57

在间隔边界和分离超平面之间

支持向量机硬链接例题 支持向量机简单例题_支持向量机_57

在分离超平面上

支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_69

误分类

支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_69

这些参数是怎么得到的呢?

我们关注一下原始优化问题的Lagrange函数:支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_69

进行简单的改写:支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_72

首先,支持向量机硬链接例题 支持向量机简单例题_数据集_73,超过的话,就说明,这个点在间隔边界外,不存在需要松弛变量的情况。

合页损失函数

线性支持向量机还有另一种解释,就是最小化以下目标函数:支持向量机硬链接例题 支持向量机简单例题_机器学习_74

目标函数的第一项是经验损失或经验风险,函数支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_75

这就是定理7.4:线性支持向量机原始最优化问题等价于最优化上述目标函数。

支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_76


虚线为感知机的损失函数,可见,合页损失函数不仅要求分类正确,而且还要一定的确信度。

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

核技巧

非线性分类问题

支持向量机硬链接例题 支持向量机简单例题_支持向量机_77


可以看到,无法用直线(线性模型)来将其分开,需要用一条椭圆曲线将它们正确分开。

如果能用支持向量机硬链接例题 支持向量机简单例题_机器学习_78中的一个超曲面将正例正确分开,则称这个问题为非线性可分问题。

非线性问题往往不好求解, 希望能用解线性分类问题的方法解决这个问题,所采取的方法是进行一个非线形变换,将非线形问题转化为线性问题。

比如说,我们可以通过一个非线形变换,将上图中的椭圆转变为下图中的之前。

支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_79

以这个问题为例,我们不妨设原空间为支持向量机硬链接例题 支持向量机简单例题_机器学习_80支持向量机硬链接例题 支持向量机简单例题_机器学习_81,新空间为支持向量机硬链接例题 支持向量机简单例题_特征空间_82支持向量机硬链接例题 支持向量机简单例题_数据集_83

我们定义映射为支持向量机硬链接例题 支持向量机简单例题_机器学习_84

于是,原空间中的椭圆就变为了新空间中的直线支持向量机硬链接例题 支持向量机简单例题_支持向量机_85

这个例子说明,用线性分类方法求解非线性分类问题分为两个步骤:

  1. 首先使用一个变换将原空间的数据映射到新空间;
  2. 然后在新空间里用线性分类学习方法从训练数据中学习分类模型。

将核技巧应用到支持向量机的基本思想是:通过一个非线性变换将输入空间对应于一个特征空间(希尔伯特空间),使得在输入空间中的超曲面模型对应于特征空间中的超平面模型。

核函数的定义

定义7.6(核函数)两个空间还是惯例,如果存在一个从支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_86的映射支持向量机硬链接例题 支持向量机简单例题_支持向量机_87使得对所有支持向量机硬链接例题 支持向量机简单例题_支持向量机_88,函数支持向量机硬链接例题 支持向量机简单例题_机器学习_89满足条件支持向量机硬链接例题 支持向量机简单例题_数据集_90
则称支持向量机硬链接例题 支持向量机简单例题_机器学习_89为核函数,支持向量机硬链接例题 支持向量机简单例题_数据集_92为映射函数,其中的运算是内积(注意,这里的支持向量机硬链接例题 支持向量机简单例题_数据集_93和之前的那个椭圆无关)。

核技巧的基本思想是:在学习与预测中只定义和函数,而不显式地定义映射函数支持向量机硬链接例题 支持向量机简单例题_特征空间_94。这是因为,直接计算支持向量机硬链接例题 支持向量机简单例题_机器学习_89比较容易。

值得一提的是,这个希尔伯特空间一般是高维甚至无穷维的。

支持向量机硬链接例题 支持向量机简单例题_数据集_96

核函数表示的是两个希尔伯特空间中的向量的内积。

核技巧在支持向量机中的应用

线性支持向量机的目标函数可化为为支持向量机硬链接例题 支持向量机简单例题_数据集_97

同样,分类决策函数也变成了支持向量机硬链接例题 支持向量机简单例题_数据集_98

在实际应用中,往往需要依赖领域知识来选择核函数,核函数选择的有效性需要通过实验验证。

正定核

不构造映射支持向量机硬链接例题 支持向量机简单例题_数据集_92,能否直接判断一个给定的函数支持向量机硬链接例题 支持向量机简单例题_机器学习_89是不是核函数?

通常所说的核函数是正定核,判断一个正定核的充要条件是:设支持向量机硬链接例题 支持向量机简单例题_特征空间_101是对称函数,则支持向量机硬链接例题 支持向量机简单例题_机器学习_89是正定核函数的充要条件是对任意支持向量机硬链接例题 支持向量机简单例题_支持向量机_103支持向量机硬链接例题 支持向量机简单例题_机器学习_89对应的Gram矩阵(这个东西在感知机的对偶形式见过,就是样本之间的内积矩阵):支持向量机硬链接例题 支持向量机简单例题_机器学习_105
是半正定矩阵。

非线性支持向量机

从非线性分类训练集,通过核函数与软间隔最大化,或凸二次规划,学习得到的决策函数支持向量机硬链接例题 支持向量机简单例题_支持向量机硬链接例题_106这称为非线性支持向量机,支持向量机硬链接例题 支持向量机简单例题_特征空间_107为正定核。

线性可分支持向量机的两个支持向量对应的支持向量机硬链接例题 支持向量机简单例题_数据集_60是相等的,因此得到的支持向量机硬链接例题 支持向量机简单例题_特征空间_109是唯一的。因为要求是支持向量机硬链接例题 支持向量机简单例题_数据集_110,所以线性支持向量机对应的支持向量机硬链接例题 支持向量机简单例题_数据集_60和前一种是一致的,但是因为支持向量机硬链接例题 支持向量机简单例题_机器学习_112不一样,所以b也会有好多。