6 支持向量机

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

1.1 线性可分支持向量机

对于一个线性可分的二分类问题, 感知机 用一个超平面分割空间中的点, 以误分类最小为策略寻找超平面, 解可以有多个; 但是线性可分支持向量机用间隔最大化求出最优的分离超平面, 解只有一个. 这样的意义是, 对于即是最难区分的点 (最靠近分离超平面的点), 也有足够高的置信度将它成功分类.

线性可分支持向量机

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

1.2 函数间隔 几何间隔

为了表示点距离超平面的远近, 引入函数间隔.

函数间隔

给定 T={(xi,yi),1iN},(ω,b), yi{+1,1}. 定义 (ω,b) 和样本点 (xi,yi)函数间隔(1.3)γ^i=yi(ωxi+b), 定义 (ω,b)T 的函数间隔为 (1.4)γ^=mini=1,,Nγ^i.

如果等比例地将(ω,b)变为(2ω,2b), 则超平面不变, 但函数间隔发生了改变. 为了解决这一点, 可以加入限制 (如||ω||=1). 这样约束条件下的间隔称为几何间隔. 也即, 几何间隔的定义式为(1.5)γ=mini=1,,Nyi(ω||ω||xi+b||ω||)=γ^||ω||.

1.3 间隔最大化

1.3.1 最大间隔分离超平面

为了寻找几何间隔最大化, 考察如下的优化问题maxω,b γs.t. yi(ω||ω||xi+b||ω||)γ,i=1,,N.
(要求几何间隔至少是γ, 也即有足够的置信度, 并寻找这样的置信度的最大值.) 问题等价于为maxω,b γ^||ω||s.t. yi(ωxi+b)γ^
需要指出, γ^的取值不影响问题的解, 因为随时可以用(ω,b)(λω,λb)来调整γ^, 且不会改变问题本身. 因此, 取γ^=1即可. 由注意到最大化1/||ω||与最小化||ω||2/2等价, 因此将问题转化为凸二次规划问题

minω,b 12||ω||2(1.6)s.t. yi(ωxi+b)10.
线性可分支持向量机-最大间隔法

输入 线性可分数据集T, Y={1,+1}
输出 最大间隔分离超平面, 分离决策函数

  1. 求解优化问题 (1.6), 得到最优解ω,b.
  2. 由此得到超平面 ωx+b=0 和分离决策函数 f(x)=sgn(ωx+b).

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

1.3.3 支持向量 间隔边界

将与分离超平面距离最近的样本点实例称为支持向量. 对于支持向量, 需要使这里的约束条件成立, 也即 yi(ωxi+b)1=0. 也即, 对 yi=+1 的正例点, 支持向量在 H1:ωx+b=1 上; 对 yi=1 的负例点, 在 H2:ωx+b=1 上.
因此, 在超平面的附近由H1,H2形成了一条条带, 没有样本点在其中. 将H1,H2的距离2||ω||称为间隔, H1,H2称为间隔边界.
可以注意到, 间隔的位置只会随着支持向量而改变, 与其他实例点无关. 支持向量机由很少的重要的训练样本确定.

1.4 学习的对偶算法

对偶问题的好处是更容易求解, 和更容易推广到非线性分类问题.
首先构建 Lagrange 函数

(1.7)L(ω,b,α)=12||ω||2i=1Nαiyi(ωxi+b)+i=1Nαi,

其中 α=(α1,,αN)T. 对偶问题 为极大极小问题 maxαminω,bL(ω,b,α).

L(ω,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi[(j=1Nαjyjxj)xi+b]+i=1Nαi=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi.

(黄色项与前面合并, 绿色项为0.)

maxα 12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαis.t. i=1Nαiyi=0,αi0,i=1,,N

等价于

minα 12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t. i=1Nαiyi=0,(1.8)αi0,i=1,,N
线性可分支持向量机学习算法

输入 线性可分T
输出 分离超平面, 决策函数

  1. 求解 (1.8), 得到最优解 α=(α1,,αN)T;
  2. 计算ω=i=1Nαiyixi, 选择α的一个正分量αj>0(即寻找支持向量). 计算b=yji=1Nαiyi(xixj);
  3. 得到超平面ωx+b=0和分离决策函数f(x)=sgn(ωx+b).

满足 (1.8)αi>0 的样本点的实例 xi 可以作为支持向量的另一等价定义. 事实上, 由 KKT条件αi[yi(ωxi+b)1]=0ωxi+b=±1.

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

2.1 线性支持向量机

如何求解线性不可分问题? 需要把硬间隔变成间隔.
给定T设定同上, 但不是线性可分的. 引入松弛变量ξi0, 将约束条件变为yi(ωxi+b)1ξi.
但是, 不允许ξ无限制的小, 因此需要支付代价Cξi(C称为惩罚参数), 目标函数为(2.1)12||ω||2+Ci=1Nξi.
目标函数的意义是使最小间隔尽可能大(对应ω尽可能小, 参见 (1.6)), 误分类点个数尽可能小. 因此等价于如下凸二次规划

minω,b,ξ 12||ω||2+Ci=1Nξi,s.t. yi(ωxi+b)1ξi,i=1,,N,(2.2)ξi0,i=1,,N.
线性支持向量机

输入 线性不可分的T
输出 最大软间隔分离超平面, 分离决策函数
求解 (2.2), 得到分离超平面ωx+b=0f(x)=sgn(ωx+b).

2.2 学习的对偶算法

(2.2) 的 Lagrange 函数为L(ω,b,ξ,α,μ)=12||ω||2+Ci=1Nξii=1Nαi[yi(ωxi+b)1+ξi]i=1Nμiξi,
其中αi0,μi0. 考虑极大极小问题maxα,μminω,b,ξL(ω,b,ξ,α,μ).

minα 12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi,s.t. i=1Nαiyi=0,Cαiμi=0,αi,μi0,i=1,,N,

消去μi, 就得到了

minα 12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi,s.t. i=1Nαiyi=0,(2.3)0αiC,i=1,,N.
定理 2.1

α=(α1,,αN)T是对偶问题 (2.3) 的解, 若存在α的分量αj,0<αj<C, 则原始问题 (2.2) 的解ω,b由下式求得:(2.4)ω=i=1Nαiyixi,b=yji=1Nyiαi(xixj).

线性支持向量机学习算法

输入 T
输出 分离超平面和分类决策函数

  1. 选择惩罚参数C>0, 求解 (2.3), 得到最优解α=(α1,,αN)T;
  2. 定理2.1 得到ω,b;
  3. 求得分离超平面ωx+b=0和分离决策函数f(x)=sgn(ωx+b).

2.3 支持向量

此时相应的, 也有 (软间隔的) 支持向量.

αi<C αi=C
ξi=0 间隔边界 --
0<ξi<1 -- 分类正确, 在间隔边界与分离超平面之间
ξi=1 -- 在分离超平面上
ξi>1 -- 分类错误, 在误分类一侧

2.4 合页损失函数

定义 L(y(ωx+b))=[1y(ωx+b)]+=max{y(ωx+b),0}合页损失函数 (hinge loss function).
线性支持向量机除了依据软间隔最大化寻找分离超平面的解释之外, 还可以用最小化目标函数 i=1N[1yi(ωxi+b)]++λ||ω||2 来解释. 这里的第一项是经验损失. 也即正确分类时确信度 yi(ωxi+b)>0, 损失为 0. 第二项是正则化项.

定理 2.2

原始优化问题 (2.2) 等价于优化问题 (2.5)minω,bi=1N[1yi(ωxi+b)]++λ||ω||2.

Pasted image 20241123001141.png|300
合页损失函数和 0-1 损失函数图像如上所示. 它可以看作 0-1 损失函数的上界, 在光滑性方面做出了优化.

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

3.1 核技巧

3.1.1 非线性分类问题

如果一个二分类数据集T需要用Rn的超曲面来划分, 则称为非线性可分问题.
目标是使用一个非线性变换, 将非线性问题转化为线性问题.

例如, 超曲面是一个椭圆. 设原空间XR2,x=(x(1),x(2))TX; 新空间ZR2,z=(z(1),z(2))TZ. 定义映射z=ϕ(x)=((x(1))2,(x(2))2)T.
经过变换, 原空间的椭圆ω1(x(1))2+ω2(x(2))2+b=0变换为新空间的直线ω1z(1)+ω2z(2)+b=0. 因此问题的关键在于映射的寻找.

3.1.2 核函数的定义

核函数

XRn是输入空间, H是特征空间. 如果存在ϕ(x):XH, 使得所有的x,zX, 函数K(x,z)满足条件(3.1)K(x,z)=ϕ(x)ϕ(z),
则称K(x,z)核函数, ϕ(x)为映射函数. 这里的乘积表示内积.

核技巧的想法是, 只考虑K(x,z), 而不去显式地定义ϕ.
对于给定的核函数K(x,z), H,ϕ并不一定唯一.

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

用核函数K(xi,xj)=ϕ(xi)ϕ(xj)来代替对偶问题 (2.3) 的损失函数:

W(α)=12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi.

对于分类决策函数, 由 决策函数(2.4), 得

f(x)=sgn(i=1NsaiyiK(xi,x)+b).

在变换ϕ下的新定义空间中学习线性支持向量机.

3.2 正定核

通常所说的核函数指正定核函数. 我们关心满足怎样的条件, 函数 K(x,z) 可以用 ϕ 拆分, 以便是核函数. 首先给出结论

定理 3.1 (正定核的充要条件)

K:X×XR 是对称函数, 则 K(x,z) 是正定核函数的充分必要条件是 xiX,1im, Gram 矩阵 K=[K(xi,xj)]m×m 是半正定矩阵.

这样我们可以给出正定核的等价定义(所以"正定"得名于此)

正定核的等价定义

XRn, K(x,z) 是定义在 X×X 上的对称函数. 如果 xiX, K(x,z) 的 Gram 矩阵半正定, 则 K(x,z)正定核.

在实际应用中, 很难证明: 任意给定有限的 {x1,,xm} 都有 K 是半正定的.

3.3 常用核函数

关于核函数可以参见这个概率论笔记.

3.3.1 Polynomial Kernel Function

K(x,z)=(xz+1)p,$$$$f(x)=sgn(i=1Nsaiyi(xix+1)p+b).

3.3.2 Gaussian Kernel Function (RBF)

K(x,z)=exp(||xz||22σ2).

3.3.3 String Kernel Function

3.4 非线性支持向量机

只需利用核技巧进行替换, 就可以得到非线性支持向量机.

非线性支持向量机

非线性分类训练集, 通过核函数和软间隔最大化或者凸二次规划(2.3), 学习得到分类决策函数 (3.2)f(x)=sgn(i=1NαiyiK(x,xi)+b) 的模型成为非线性支持向量机.

然后总结一下学习算法

非线性支持向量机学习算法

输入 T
输出 分类决策函数

  1. 选取适当的 K(x,z) 和参数 C, 构造 minα 12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi,s.t. i=1Nαiyi=0,(3.3)0αiC,i=1,,N. (在 (2.3) 的基础上简单修改) 得到最优解 α=(α1,,αN)T.
  2. 选择 α 的一个正分量 0<αj<C, 计算 b=yji=1NαiyiK(xi,xj).
  3. 构造决策函数 (3.2).

4 序列最小最优化算法