cs229 笔记 5:支持向量机

本节首先介绍函数间隔和几何间隔的概念,进而引出最优间隔分类器和拉格朗日对偶,最后介绍核函数和 SMO algorithm

直观解释

逻辑回归算法中,使用 hθ(x)=g(θTx) 对概率 p(y=1|x;θ) 建模。对于一个输入 x,若 hθ(x)0.5 则预测为 1 (即 θTx0 预测结果为 1),否则预测结果为 0。

考虑正样本的情况 (y=1)。θTx 的值越大,则 hθ(x)=p(y=1|x;ω;b) 的值越大,我们越有理由预测结果为 1。

也就是说如果 θTx 远大于 0 则认为 y=1,若 θTx 远小于 0 则认为 y=0。

对于给定的训练集,如果能够找到一个分界线,使得当 y(i)=1θTx0,并且当 y(i)=0θTx0,那么可以认为我们找到了一个对数据的合理划分方法

下图中 x 表示正样本,o 表示负样本,分界线为 θTx=0,A、B、C 表示 3 个样本

很明显对于 A 的预测结果应为 y=1,而对于 C,预测结果也应为 y=1,由于它离分界线很近,稍微移动就会是结果变为 y=0,直观上认为 A 的预测结果可信度比 C 更高,B 则介于两者之间

符号表示

同样是二分类问题,考虑线性分类器,与之前不同的是,这里 y {-1,1} 表示分类标签,w,b 为参数

(1)hw,b(x)=g(wx+b)

其中当 z0g(z)=1,当 z<0g(z)=1。该分类器直接产生结果 1 或 - 1,不需要先计算 y=1 的概率再生成结果 (逻辑回归使用的方法)

函数间隔和几何间隔

给定训练集 (x(i),y(i)),定义函数间隔如下

(2)γ^(i)=y(i)(wTx+b)

y(i)=1 时,若要使函数间隔很大,则需要令 wTx+b 为一个很大的正数。相反,当 y(i)=1 时,若要使函数间隔很大,则需要令 wTx+b 为一个绝对值很大的负数。进一步可得,如果 y(i)(wTx+b)>0,说明我们的预测是正确的。函数间隔越大,结果的可信度就越高

对于函数间隔的参数,如果将 wb 换成 2w2bg(wx+b)=g(2wx+2b) 保持不变,不影响分类器的分类结果,但是函数间隔却变成了原来的 2 倍,这意味着我们可以随意等比例缩放 w 和 b 而不影响分类结果

给定训练集 S = {(x(i),y(i));i=1,,m},定义最小函数间隔为

(3)γ^=mini=1,mγ^(i)

下面讨论几何间隔,首先看下图

图中展示了决策边界、向量 w (和决策边界垂直)。A 点表示一个输入为 x(i)、标签为 y(i)=1 的样本,它到决策边界的距离 γ(i) 可由线段 AB 表示。w 方向的单位向量可表示为 w||w||,则 B 点可表示为 x(i)γ(i)w||w||。因为 B 点在决策边界上,所以它满足 wTx+b=0。因此

(4)wT(x(i)γ(i)w||w||)+b=0

求解 γ(i) 可得 (其中第 1 步也可根据点到平面的距离公式求得,可参考点到平面距离)

(5)γ(i)=wTx(i)+b||w||=(w||w||)Tx(i)+b||w||

这表示的是正样本的情况。更一般地,几何间隔定义如下

(6)γ(i)=y(i)((w||w||)Tx(i)+b||w||)

注意如果 ||w||=1,函数间隔和几何间隔相等,根据这个性质可以将两种间隔联系起来。最后,同样定义最小几何间隔

(7)γ=mini=1,mγ(i)

最优间隔分类器

根据之前的讨论,一个很自然的想法是最大化几何间隔,这样可以对训练集进行很好地分类。

假定训练集是线性可分的,也就是说可以用超平面对正样本和负样本进行划分。如何找到这个使得几何间隔最大化的超平面呢?给出如下最优化问题

我们的目标是最大化 γ,需满足每个样本的函数间隔不小于 γ。条件 ||w||=1 使得函数间隔等于几何间隔,也就保证了几何间隔不小于 γ。求解此问题即可得到最大的几何间隔。

因为条件 ||w||=1 是非凸的,使得该问题不能直接使用标准的最优化软件求解。将该问题转换为如下问题

我们最大化的目标变成了 γ^||w||,需满足函数间隔不小于 γ^。几何间隔和函数间隔可通过 γ=γ^||w|| 联系起来。γ^||w|| 是非凸的,问题仍未解决

根据前面的讨论,我们可以随意等比例缩放 w、b 而不影响最终分类结果。这里考虑通过缩放使函数间隔满足

(8)γ^=1

问题变为最大化 γ^||w||=1||w||,等价于最小化 ||w||2

这是一个仅包含线性限制的凸二次最优化问题,可以很容易解决。这就是最优间隔分类器。

拉格朗日对偶

拉格朗日乘子法

考虑如下问题

定义拉格朗日函数

(9)L(w,β)=f(w)+i=1lβihi(w)

这里 βi 是拉格朗日乘子,令 Lwi=0;Lβi=0 可求出 w 和 β

原始问题

考虑如下原始最优化问题

它的广义拉格朗日函数为

(10)L(w,α,β)=f(w)+i=1kαigi(w)+i=1lβihi(w)

对于它的最大值 (其中 P 表示 “原始的”)

(11)θP(w)=maxα,β:αi>0L(w,α,β)

如果 w 违反了任何原始限制 (比如 gi(w)>0hi(w)0),则可以得到如下结果

相反,如果满足限制则 θP(w)=f(w)

原始问题的值

(12)p=minwθP(w)=minwmaxα,β:αi>0L(w,α,β)

对偶问题

另一个问题,定义

(13)θD(α,β)=minwL(w,α,β)

其中下标 D 表示 “对偶”。对偶最优化问题如下

(14)d=maxα,β:αi>0θD(α,β)=maxα,β:αi>0minwL(w,α,β)

很容易证明,这两种问题之间的关系如下 (先取 max 再取 min 的值总是大于等于先取 min 再取 max 的值),并且在特定条件下两者相等

(15)d=maxα,β:αi>0minwL(w,α,β)minwmaxα,β:αi>0L(w,α,β)=p

KKT 条件

KKT 条件是拉格朗日乘子法的推广。如果只包含等式约束条件,可以用拉格朗日乘子法求解最优值。如果约束条件中还包含不等式约束,则可以用 KKT 条件求解。

假设: 1. f 和 g 是凸函数 2. h 是仿射函数 3. 存在 w 使得对于所有的 i 均满足 gi(w)<0。基于以上假设,一定存在 w,α,β 使得 w 是原始问题的解、α,β 是对偶问题的解,并且 p=d=L(w,α,β)。更进一步,如果某些 w,α,β 满足如下 KKT 条件 (Karush-Kuhn-Tucker conditions),则它们是原始问题和对偶问题的解

仿射函数

仿射函数是特殊的凸函数,它是线性函数和常数之和

最优间隔分类器

回忆如下原始问题

可以把约束条件写为如下形式

(16)gi(w)=y(i)(wTx(i)+b)+10

补充

点到平面的距离

平面的表示

平面的常用表示方法有点法式、一般式和截距式。

假设 n=(A,B,C) 为平面的法向量。(x0,y0,z0) 为平面上的一点,令 (x,y,z) 表示平面上的任意一点,(xx0,yy0,zz0) 表示平面上的一个向量。

因为法向量垂直于平面上任意的向量,所以 (A,B,C)(xx0,yy0,zz0)=0(平面上的向量与法向量的内积为 0),展开后可得

(17)A(xx0)+B(yy0)+C(zz0)=0

这就是平面的点法式方程。替换常量,得到平面的一般式方程如下

(18)Ax+By+Cz+D=0

向量的投影长度

向量 a 在向量 b 上的投影长度可表示为 |a|cosθ(其中 θ 为两个向量的夹角),因为 ab=|a||b|cosθ,两边同时除以 |b|

(19)ab|b|

点到平面距离

点 (x,y,z) 为平面外一点,则它到平面的距离如下

(20)d=(xx0,yy0,zz0)(A,B,C)|(A,B,C)|(21)=Ax+By+Cz(Ax0+By0+Cz0)A2+B2+C2(22)=Ax+By+Cz+DA2+B2+C2

其中 (xx0,yy0,zz0) 为平面上的点,其满足平面的方程 Ax0+By0+Cz0+D=0。上式第 3 步用到该等式