针对普通感知机的三个问题:
实际上当样本可分时,会有无穷多种线性分类器
- (P1): 哪一个才是最优线性分类器
- (P2): 如何学习?
- (P3): 如何推广到线性不可分情形?
最优线性分类器-基本概念#
定义1:超平面:
在 d 维空间中,超平面是一个 d−1 维的子空间,可以用一个线性方程来表示:wTx+b=0,其中 w 是法向量,b 是偏置项。
定义2:点到超平面的欧氏距离:
对于一个线性分类器 g(x)=wTx+b,点 x0 到超平面的距离定义为:
d(x0)=∥w∥∣g(x0)∣=w12+w22+…+wd2∣wTx0+b∣定义3:分类间隔/几何距离/几何间隔/间隔:对于一个线性分类器 g(x)=wTx+b,分类间隔定义为:
γ=imin∥w∥yig(xi)=iminw12+w22+…+wd2yi(wTxi+b)
- 间隔 γ 是所有训练样本点到超平面的距离的最小值。
- 其中 yi 是样本 xi 的类别标签(通常为+1或-1)乘上去就是对样本做规范化。
- ∥w∥ 是权重向量的欧几里得范数。
- 分类间隔有正负,正数表示分类正确,负数表示分类错误。(对于规范化后的样本)
线性可分时的SVM=极小极大问题=最大化分类间隔#
支持向量机(SVM)的核心思想是找到一个线性分类器,使得分类间隔 γ 最大化。SVM 试图找到一个超平面,使得离它最近的训练样本点(即支持向量)与超平面的距离最大。
SVM 的优化问题可以表述为一个最大化分类间隔的极小极大问题:
w,bmaximizeγ=xi∈Dmin∥w∥2yi(wTxi+b)subject toyi(wTxi+b)≥0,∀i
- 注意这里是对所有训练样本 (xi∈D) 的约束条件
- subject to 确保每个样本点都被正确分类。
做两点变换,等价但更易求解:
1. 让式子满足缩放不变性#
即如果我们将 w 和 b 同时乘以一个正数 α,分类结果不变,但 γ 会被放大 α 倍。为了消除这个问题,我们认为规定一个尺度:令最小的那个值等于 1:
subject toyi(wTxi+b)≥1,∀i2. 方便求导#
因为 γ=∥w∥1,这时候最大化 γ 就等价于最小化 ∥w∥。因此,我们可以将优化问题转化为 21∥w∥22 的形式,方便后续求导。
线性可分时的SVM原问题#
w,bminimize21∥w∥22=21i=1∑nwi2subject to1−yi(wTxi+b)≤0,∀i
- 约束写成 1−yi(wTxi+b)≤0 是为了符合拉格朗日乘子法的标准形式。
TIP二次优化标准型:
xminimize21xTQx+cTxsubject toAx≤b
线性可分时SVM的求解#
原问题中,需要对每个数据 xi∈D 都有一个约束条件,导致求解困难。我们引入拉格朗日乘子 αi 来将约束条件合并到目标函数中:
线性可分SVM的拉格朗日函数#
引入拉格朗日乘子 αi≥0,构造 拉格朗日函数:
L(w,b,α)=21∥w∥22+i=1∑nαi[1−yi(wTxi+b)]=21∥w∥22+i=1∑nαi−i=1∑nαiyi(wTxi+b)线性可分SVM的对偶问题#
得到原问题的 对偶问题,即对于 拉格朗日函数 的 最大最小问题:
- 先对 w 和 b 求最小化
- 再对 α 求最大化:
α≥0maxw,bminL(w,b,α)α≥0maxw,bmin(21∥w∥22+i=1∑nαi−i=1∑nαiyi(wTxi+b))线性可分SVM的目标函数#
对 w 和 b 求导并令其为零:
∂w∂L(w,b,α)=w−i=1∑nαiyixi=0∂b∂L(w,b,α)=−i=1∑nαiyi=0⇒w=i=1∑nαiyixi⇒i=1∑nαiyi=0加上TTK条件,代入拉格朗日函数中,得到对偶问题的 目标函数:
α≥0maxL(α)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxiTxjsubject toi=1∑nαiyi=0,αi≥0,∀i极大化目标函数 L(α) 等价于极小化 −∑i=1nαi+21∑i=1n∑j=1nαiαjyiyjxiTxj,可以用梯度下降,因此写成:
α≥0min21i=1∑nj=1∑nαiαjyiyjxiTxj−i=1∑nαisubject toi=1∑nαiyi=0,αi≥0,∀i从对偶问题的解恢复原问题的解#
该优化问题的解 α∗=(α1∗,α2∗,…,αn∗)T 可以用来恢复原问题的解 w∗ 和 b∗:
根据KKT条件中的原问题可行性条件+互补松弛条件,定义 支持向量:
xi 是支持向量⟺yi(wTxi+b)=1 且 αi>0
-
支持向量是那些距离超平面 最近 的训练样本点。
-
支持向量 xs 加上其对应的拉格朗日乘子 αi∗ 可以求出权重向量
- w∗=∑i=1nαi∗yixi
-
偏置项 b∗ 用任意一个支持向量 xs 来计算:
- b∗=ys−w∗Txs
-
其他非支持向量的 αi∗ 都为零,对最终的分类器没有贡献。决策函数只由支持向量决定。
不完全线性可分时的软间隔SVM=引入松弛变量=惩罚分类错误#
当训练数据不完全线性可分时,我们引入松弛变量 ϵi≥0 来允许某些样本点违反分类约束。新的优化问题称为软间隔SVM:
参考线性可分的问题思路,线性不可分情况的 原问题:
w,b,ϵminimize21∥w∥22+Ci=1∑nϵisubject toyi(wTxi+b)≥1−ϵi,ϵi≥0,∀i
- 其中 C>0 是一个超参数,控制分类错误的惩罚程度。
- ϵi 是第 i 个样本的松弛变量,表示该样本点违反分类约束的程度。
- 写成 1−ϵi−yi(wTxi+b)≤0 是为了符合拉格朗日乘子法的标准形式。
ϵi 的两种选择:
- 定义为分类错误的个数,但这个定义不可导,无法使用梯度方法求解。
- 定义为分类错误的程度,即 ϵi=max(0,1−yi(wTxi+b)),这个定义是可导的,可以使用梯度方法求解。
TIP这个其实借鉴了感知机的损失函数,称为合页损失(Hinge Loss):
省略推导,直接给出目标函数:
αminL(α)=21i=1∑nj=1∑nαiαjyiyjxiTxj−i=1∑nαisubject toi=1∑nαiyi=0,0≤αi≤C,∀i
- 软间隔SVM的对偶问题与线性可分时的SVM非常相似,唯一的区别是 αi 的约束从 αi≥0 变为 0≤αi≤C。
设 αi∗=(α1∗,α2∗,…,αn∗)T 是软间隔SVM对偶问题的最优解,那么原问题的解 w∗ 和 b∗ 可以通过以下方式恢复:
w∗=i=1∑nαi∗yixib∗=ys−w∗Txs(任意一个满足 0<αs∗<C 的样本点 xs)由于 b∗ 的值可能不唯一,实际可以通过所有满足 0<αi∗<C 的样本点来计算 b∗,然后取平均值。
核技巧可将线性 SVM 扩展为非线性分类器。核函数 K(xi,xj)=ϕ(xi)Tϕ(xj) 隐式地将样本映射到高维空间,只需将对偶问题中的内积 xiTxj 替换为 K(xi,xj) 即可。该内容在核方法一章中展开。
SVM不用增广#
偏置项 b 不能吸收进权重向量 w
如果使用增广的权重向量 w′=[w;b],那么目标函数 min21∥w′∥22=21(∥w∥22+b2) 会导致偏置项 b 也被最小化。
并且后面拉格朗日函数没法对 b 求导,因为 b 也被包含在 w′ 中了。直接少了对 b 的约束条件 ∑i=1nαiyi=0,导致求解的结果不正确。