1、间隔与支持向量
给定训练样本集 D={(x1,y1),...,(xm,ym)},yi∈{−1,+1}。其中xi是向量。在样本空间中,划分超平面可以通过如下线性方程来描述:
w⊤x+b=0
其中w=(w1,...,wd)为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。划分超平面可被法向量和位移b确定。样本空间中任意点x到超平面(w,b)的距离可写为(点到平面距离公式):
r=∣∣w∣∣∣w⊤x+b∣
假设超平面(w,b)能将训练样本正确分类,即对于(xi,yi)∈D,若yi=+1,则有w⊤xi+b>0,若yi=−1,则有w⊤xi+b<0,令
w⊤xi+b≥+1,yi=+1
w⊤xi+b≤−1,yi=−1
这个通过放缩w,b是肯定可以做到的。距离超平面最近的几个训练样本使上式的等号成立,则这几个向量被称为“支持向量”,两个异类支持向量到超平面的距离之和为:
γ=∣∣w∣∣2
它们被称之为“间隔”。要找到最大间隔的划分平面,也就是要找到能满足上面两个不等式约束的参数w,b,使得γ最大,即:
w,bmax∣∣w∣∣2,s.t.yi(w⊤xi+b)≥1,i=1,2,..,m.
等价于:
w,bmin21∣∣w∣∣2,s.t.yi(w⊤xi+b)≥1,i=1,2,..,m.
这就是支持向量机(SVM)的基本型。求解可以使用拉格朗日乘子法。
2、核函数
如果训练样本不是线性可分的,那么我们就要将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。令ϕ(x)表示将x映射后的特征向量,于是在特征空间中划分超平面所对应的模型可以表示为:
f(x)=w⊤ϕ(x)+b
则有:
w,bmin21∣∣w∣∣2,s.t.yi(w⊤ϕ(xi)+b)≥1,i=1,2,..,m.
其对偶问题是:
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjϕ(xi)⊤ϕ(xj)
s.t.i=1∑mαiyi=0
αi≥0,i=1,2,...,m
求解上式涉及到计算ϕ(xi)⊤ϕ(xj),这通常很难计算。我们可以设想这样一个函数:
κ(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩=ϕ(xi)⊤ϕ(xj)
即xi与xj在特征空间的内积等于它们在原始样本空间中通过函数(核函数)κ(⋅,⋅)计算的结果。只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。
几种常用的函数:
- 线性核:κ(xi,xj)=xi⊤xj
- 多项式核:κ(xi,xj)=(xi⊤xj)d
- 高斯核:κ(xi,xj)=exp(−2σ2∥xi−xj∥2)
- 拉普拉斯核:κ(xi,xj)=exp(−σ∥xi−xj∥)
- Sigmoid核:κ(xi,xj)=tanh(βxi⊤xj+θ)
3、软间隔
引入软间隔是为了防止出现过拟合,允许在一些样本上分类出错,保证泛化性。允许某些样本不满足约束
yi(w⊤xi+b)≥1
在最大化间隔的同时,不满足约束的样本应该尽量的可能少,于是优化目标可以写为:
w,bmin21∣∣w∣∣2+Ci=1∑mℓ0/1(yi(w⊤xi+b)−1)
其中C>0是一个常数,ℓ0/1是“0/1损失函数”:
ℓ0/1(z)={1,0,if z<0otherwise
当C为无穷大时,会迫使所有样本都满足约束条件。三种常用的替代损失函数:
- hinge损失:ℓhinge(z)=max(0,1−z);
- 指数损失:ℓexp(z)=exp(−z);
- 对率损失:ℓlog(z)=log(1+exp(−z));
采用hinge损失,目标函数变为
w,bmin21∣∣w∣∣2+Ci=1∑mmax(0,1−yi(w⊤xi+b))
引入“松弛变量”ξi≥0,可将上式重写为
w,b,ξmin21∣∣w∣∣2+Ci=1∑mξi
s.t.yi(wTxi+b)≥1−ξi
ξi≥0,i=1,2,...,m.
这就是常用的"软间隔支持向量机",优化该目标函数,同样使用拉格朗日乘子法。
4、支持向量回归
和支持向量机不同,支持向量回归要将尽可能多的样本限制在超平面某个范围内,所以同样要最大化间隔,可以看作这是为了防止过拟合。
在 SVR 中,我们的目标是找到一个函数,使其尽量接近所有数据点,并且超出某个阈值的误差最小。具体来说,SVR 采用了 ϵ-不敏感损失函数,即在误差小于 ϵ 时不考虑损失。
SVR 的优化问题可以表示为:
minw,b21∥w∥2+C∑i=1n(ξi+ξi∗)
同时满足约束条件:
⎩⎨⎧yi−(w⋅xi+b)≤ϵ+ξi(w⋅xi+b)−yi≤ϵ+ξi∗ξi,ξi∗≥0
其中,ξi 和 ξi∗ 是松弛变量,用于表示超过 ϵ 的误差,C 是权衡间隔和损失的超参数。
在 SVR 中,最大化间隔意味着找到一个使误差在 ϵ 范围内的最平滑的函数,这样可以避免过拟合,提高模型的泛化能力。具体来说,SVR 的目标函数:
21∥w∥2
与 SVM 相同,表示我们在最小化 w 的范数,这实际上是在最大化数据点到回归平面(函数)的间隔。