LOADING

加载过慢请开启缓存 浏览器默认开启

CS229-3 Support Vector Machines

支持向量机SVM的原理。

1. 线性分类器

二分类问题中,标签为 y(i){1,1}(SVM 与 logistic regression 的记号差异)。

线性分类器:

hw,b(x)=g(wTx+b)

其中:

g(z)={1,z01,z<0

决策边界是 wTx+b=0wTx+b>0 预测正类,wTx+b<0 预测负类。

2. Functional Margin(函数间隔)

对样本 (x(i),y(i)),定义其关于参数 (w,b) 的 functional margin:

γ^(i)=y(i)(wTx(i)+b)
  • 分类正确时 y(i)(wTx(i)+b)>0,错误时 <0
  • 正负判断对错,大小表示"有多自信"

整个训练集的 functional margin 取最小值:γ^=mini=1,,mγ^(i)

Functional margin 的问题:尺度不唯一

缩放参数 (w,b)(2w,2b) 不改变分类边界(wTx+b=02wTx+2b=0 是同一超平面),但 functional margin 变成 2 倍。因此 functional margin 不是真正的几何距离——这引出了 geometric margin。

3. Geometric Margin(几何间隔)

x(i) 到超平面 wTx+b=0 的有符号距离为 wTx(i)+bw。考虑标签方向,定义 geometric margin:

γ(i)=y(i)wTx(i)+bw

核心想法: 在所有能正确分类的超平面里,选择 geometric margin 最大的那个。

maxγ,w,bγsubject toy(i)(wTx(i)+b)γw, i=1,,m

4. Canonical Scaling 与 Primal Problem

同时缩放 (w,b) 不改变边界,可规定 γ^=1(令离边界最近的样本满足 y(i)(wTx(i)+b)=1)。此时 geometric margin γ=γ^w=1w

最大化 geometric margin 等价于最小化 w,方便求导写成 12w2。hard-margin SVM 的 primal problem:

minw,b12w2subject toy(i)(wTx(i)+b)1, i=1,,m

5. Lagrangian

引入 Lagrange multipliers αi0,将约束合并进目标函数:

L(w,b,α)=12w2i=1mαi[y(i)(wTx(i)+b)1]

展开:

L(w,b,α)=12w2i=1mαiy(i)(wTx(i)+b)+i=1mαi

w 求偏导:

wL=wi=1mαiy(i)x(i)=0w=i=1mαiy(i)x(i)

b 求偏导:

Lb=i=1mαiy(i)=0i=1mαiy(i)=0

6. Dual Problem

将上述结果代回 Lagrangian,得到 dual problem:

maxαW(α)=i=1mαi12i=1mj=1mαiαjy(i)y(j)x(i),x(j)

subject to αi0, i=1,,mi=1mαiy(i)=0

关键结构: dual problem 只依赖样本之间的 inner product x(i),x(j)——这是使用 kernel 的基础。

7. Support Vectors

由 KKT complementary slackness:

αi[y(i)(wTx(i)+b)1]=0
  • 若样本不在 margin boundary 上(y(i)(wTx(i)+b)>1),则 αi=0
  • 只有 y(i)(wTx(i)+b)=1 的样本才可能有 αi>0——这些就是 support vectors

直觉: SVM 的决策边界只由最靠近边界的那些样本决定。

8. 预测函数的 Dual Form

w=i=1mαiy(i)x(i),对新样本 x

wTx+b=i=1mαiy(i)x(i),x+b

分类器:

hw,b(x)=g(i=1mαiy(i)x(i),x+b),g(z)={1,z01,z<0

因大部分 αi=0,实际预测仅由 support vectors 决定。

9. Kernel

Kernel 可理解为高维特征空间中的内积,但无需显式做特征映射:K(x,z)=ϕ(x)Tϕ(z)

常见 kernel:

  • Linear: K(x,z)=xTz
  • Polynomial: K(x,z)=(xTz+c)d
  • Gaussian / RBF: K(x,z)=exp(xz22σ2)

合法 Kernel 的条件

定义 kernel matrix Kij=K(x(i),x(j))。合法 kernel 要求 kernel matrix symmetric positive semidefinite:K=KT 且对任意向量 zzTKz0(Mercer condition)。

10. Soft-margin SVM

hard-margin 要求数据完全线性可分,现实中往往做不到。引入 slack variables ξi0,允许部分样本违反 margin:

y(i)(wTx(i)+b)1ξi

同时在目标中惩罚:

minw,b,ξ12w2+Ci=1mξi

subject to y(i)(wTx(i)+b)1ξiξi0

参数 C 控制 margin 大小与训练误差的 trade-off。C 大 → 更注重分类正确(少违反);C 小 → 更注重 margin 大。