软间隔支持向量机
硬间隔 SVM 存在两个问题:
- 如果数据不是线性可分的,则算法将会失效;
- 对极端值(outliers)敏感,例如右图添加了一个极端值,严重改变了决策边界。
异常值造成了决策边界的偏移
软间隔支持向量机:通过引入松弛变量,允许一些样本点违背最小间隔的约束,此时约束条件可以变为
yi(Xi⋅w+α)≥1−ξi其中 ξi 为引入的松弛变量,满足 ξi≥0。只有当样本点违背最小间隔约束时,松弛变量 ξi 不为 0。
松弛变量存在的情况
此时,仍然定义间隔为 1/∥w∥,为了防止松弛变量的滥用,我们在目标函数中添加一个损失项对其进行约束
Find w,α,ξi that minimize ∥w∥2+Ci=1∑nξisubject to yi(Xi⋅w+α)≥1−ξiξi≥0for all i∈[1,n]for all i∈[1,n]这是一个 d+n+1 维空间的、具有 2n 个约束项的二次规划问题。其中 C>0 是一个正则化超参数(regularization hyperparameter)。
|
较小C |
较大C |
目标 |
最大化间隔 1/∥w∥ |
保持大多数松弛变量为零或很小 |
风险 |
欠拟合(误分类许多训练数据) |
过拟合(训练效果好,测试效果差) |
异常值 |
不太敏感 |
非常敏感 |
边界(非线性时) |
更“平坦” |
更曲折 |
不同C值的决策边界,右下方C更大
特征与非线性
非线性决策边界:通过创建非线性特征将样本点提升到高维空间,那么高维的线性分类器等价于低维的非线性分类器
样例 1:抛物线提升映射(The parabolic lifting map)
定义一个非线性映射,将 d 维空间的点 x 提升为 d+1 维空间的抛物面
Φ:Rd→Rd+1Φ(x)=[x∥x∥2]
点被提升到抛物面
上图中样本点由二维空间的点,经过非线性映射被提升到三维空间的抛物面。此时二维平面的球形决策边界,等价于三维平面的线性决策边界。
定理:Φ(X1),Φ(X2),…,Φ(Xn) 线性可分 ↔ X1,X2,…,Xn 可以被超球面分离
证明:考虑 Rd 中的超球面,它的球心为 c,半径为 ρ。x 在超球面内当且仅当
∥x−c∥2<ρ2∥x∥2−2c⋅x+∥c∥2<ρ2[−2cT1][x∥x∥2]<ρ2−∥c∥2其中 [−2cT1] 是 Rd+1 中的法向量,而 Φ(x) 表示 Rd+1 中的一个点,所以 Rd 中的超球面内等价于 Rd+1 中的超平面以下。
样例 2:椭球体/双曲面/抛物面决策边界
不同的二次曲面
对于式
Ax12+Bx22+Cx32+Dx1x2+Ex2x3+Fx3x1+Gx1+Hx2+Ix3+α=0
可以表示上图中的任意一个二次曲面。
所以,我们可以定义非线性映射
Φ(x)=[x12x22x32x1x2x2x3x3x1x1x2x3]T[ABCDEFGHI]⋅Φ(x)+α此时,决策函数可以为任意二次多项式,决策超曲面可以为任意二次曲面。Φ− 空间的线性决策边界等价于 x− 空间的二次曲面分类边界。
样例 3:p 次多项式作为决策函数
拥有不同次方的决策函数的硬支持向量机:1,2,5
增加决策函数的最高次
- 线性不可分的数据可能由于最够高的非线性变为线性可分
- 高维提供了更高的自由度,可能找到更大的间隔,可能提升决策边界的鲁棒性
核技巧
支持向量机的学习算法
在训练软间隔支持向量机时,我们可以使用如下学习算法(基于拉格朗日对偶性,推过过程参考李航-《统计学习方法》):
输入:训练数据集 T=(x1,y1),(x2,y2),…,(xn,yn),其中 xi∈Rd,yi∈{−1,1}
输出:决策超平面和决策函数
(1)选择一个正则化超参数 C>0, 求解以下凸二次规划问题(软间隔支持向量机的原始问题的对偶问题):
αmin21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)−i=1∑nαis.t. i=1∑nαiyi=00≤αi≤C,i=1,2,…,n求解最优解 α∗=(α1∗,α2∗,…,αn∗)
(2)计算 w∗=∑i=1nαi∗yixi
选择一个下标 j,满足 0<αj∗<C,计算
b∗=yj−i=1∑nyiαi∗(xi⋅xj)(3)求得决策超球面
w∗⋅x+b∗=0
以及决策函数
f(x)=w∗⋅x+b∗=i=1∑nαi∗yi(x⋅xi)+b∗在上述算法中,w∗ 和 b∗ 只依赖于 αi∗>0 的样本点 xi,称这些样本点为支持向量。
可以看出在支持向量机学习算法中,无论优化的目标函数还是决策函数都只涉及两个向量之间的点积,例如 xi⋅xj 和 x⋅xi。
核函数
我们已经知道,低维空间的非线性决策曲面可以等价为高维空间的线性决策平面。
但是如果特征的维度 d 非常高,此时使用非线性映射 Φ(x) 得到的高次多项式特征维度非常大,Φ(xi)⋅Φ(xj) 的计算复杂度非常大。
于是,我们希望找到一个低维空间核函数,等价于高维空间的点积运算
定义:设 X 是一个低维输入空间,H 是一个高维特征空间,如果存在一个映射
Φ(x):X→H
使得对所有的 x,z∈X,函数 K(x,z) 满足
K(x,z)=Φ(x)⋅Φ(z)
则称 K(x,z) 为核函数。
如果我们不显示指定一个非线性映射 Φ(x),而是使用一个特定的核函数 K(x,z) 替代高维空间的点积 Φ(xi)⋅Φ(xj) ,那么支持向量机的优化目标可以写成
αmin21i=1∑nj=1∑nαiαjyiyjK(xi,xj)−i=1∑nαis.t. i=1∑nαiyi=00≤αi≤C,i=1,2,…,n此时我们可以在核函数 K(x,z) 对应的高维特征空间 H 中寻找一个线性决策超平面,但是参数学习是在低维输入空间 X 进行的,这称为支持向量机的核技巧。