四、SVM(支持向量机)
SVM(Support Vector Machine)是经典的二分类模型,核心思想是找一条 "最优分类线(超平面)",让两类样本的间隔最大,泛化能力最强。
4.1 最大间隔的思想(对应图 4-3)
先从最简单的 "线性可分" 场景(两类样本能被一条直线完全分开)讲起。
核心概念
1. 分类超平面(线性可分)
在二维空间是 "直线",高维空间是 "超平面",公式:WTX+b=0
- W:超平面的法向量(决定超平面方向);
- b:偏置项(决定超平面位置);
- 分类规则:
- 若 WTX+b>0,样本属于正类(y=+1);
- 若 WTX+b<0,样本属于负类(y=−1)。
2. 函数间隔
衡量样本到超平面的 "粗略距离",公式:γ^i=yi(WTXi+b)
- 若样本分类正确:γ^i>0(比如正类样本y=+1,WTX+b>0);
- 若分类错误:γ^i<0;
- 函数间隔的缺点:缩放W和b(比如W×2,b×2),超平面不变,但函数间隔会翻倍,无法准确衡量真实距离。
3. 几何间隔(真实距离)
对函数间隔归一化,消除W缩放的影响,公式:γi=∥W∥yi(WTXi+b)
- ∥W∥:W的 L2 范数(∥W∥=w12+w22+...+wd2);
- 几何间隔是样本到超平面的垂直距离,是真实的距离度量。
最大间隔核心目标
在所有能正确分类样本的超平面中,找到几何间隔最大的那个超平面(最优超平面)。
- 间隔:两类样本中,到超平面最近的样本的几何间隔的2 倍(对应图 4-3 中,两条平行于超平面的 "间隔边界" 之间的距离);
- 支持向量:到最优超平面最近的样本(间隔边界上的样本),SVM 的参数仅由这些样本决定,其他样本不影响。
数学表达(线性可分 SVM)
目标:最大化几何间隔 γ=∥W∥1(简化后),约束条件是所有样本分类正确(γi≥γ),最终转化为:minW,b21∥W∥2s.t.yi(WTXi+b)≥1
- 约束条件 yi(WTXi+b)≥1:保证所有样本的函数间隔≥1,几何间隔≥∥W∥1;
- 目标函数 21∥W∥2:最大化间隔等价于最小化∥W∥2(因为γ=∥W∥1)。
人话解释
你可以把 SVM 的最大间隔理解为:"在两类样本之间拉一道墙,让墙到两边最近样本的距离尽可能大",这样墙的 "稳定性" 最好,新样本过来时不容易分错。
4.2 带松弛因子的 SVM:软间隔的思想
现实中数据几乎不可能 "完全线性可分"(总有个别样本混在另一类里),因此引入 "软间隔"------ 允许少量样本分类错误,或落在间隔边界内。
核心改进:引入松弛因子ξi
对每个样本i,添加松弛因子ξi≥0,表示该样本的 "违规程度":
- ξi=0:样本分类正确,且在间隔边界外(无违规);
- 0<ξi<1:样本分类正确,但落在间隔边界内(轻微违规);
- ξi≥1:样本分类错误(严重违规)。
软间隔 SVM 的目标函数
minW,b,ξi21∥W∥2+C∑i=1mξis.t.yi(WTXi+b)≥1−ξi,ξi≥0
- C:惩罚系数(超参数),控制 "间隔大小" 和 "违规样本惩罚" 的平衡:
- C越大:对违规样本惩罚越重,模型越想把所有样本分类正确,容易过拟合;
- C越小:对违规样本惩罚越轻,间隔越大,允许更多样本违规,容易欠拟合;
- 约束条件 yi(WTXi+b)≥1−ξi:允许样本违规,但违规程度由ξi限制。
人话解释
软间隔相当于 "墙可以稍微歪一点,允许个别样本蹭到墙上甚至穿过墙,但蹭得越狠,惩罚越重",C就是 "惩罚力度"------C越大,越不允许样本蹭墙;C越小,对蹭墙的容忍度越高。
4.3 合页损失函数
SVM 的目标函数可以转化为 "损失函数 + 正则项" 的形式,核心损失函数是合页损失(Hinge Loss)。
4.3.1 核心损失函数公式
1. 0-1 损失函数(理想损失,不可导)
0-1 损失是分类任务的 "理想损失",直接判断分类是否正确:L0−1(y,f(X))={01if yf(X)≥0otherwise
- f(X)=WTX+b(超平面输出);
- yf(X)≥0:分类正确,损失为 0;分类错误,损失为 1;
- 缺点:非凸、不可导,无法用于梯度下降优化。
2. 合页损失函数(公式 4-23)
合页损失是 0-1 损失的 "凸近似",可导且能优化,公式:Lhinge(y,f(X))=max(0,1−yf(X))
- yf(X):即软间隔中的yi(WTXi+b);
- 解读:
- 若yf(X)≥1(样本分类正确且在间隔外):损失 = 0;
- 若0<yf(X)<1(样本分类正确但在间隔内):损失 =1−yf(X)(违规程度);
- 若yf(X)≤0(样本分类错误):损失 =1−yf(X)(错误越严重,损失越大)。
3. 带正则的合页损失(SVM 等价形式)
SVM 的目标函数等价于:minW,bm1∑i=1mmax(0,1−yi(WTXi+b))+λ∥W∥2
- λ=2C1(和软间隔的C对应);
- 第一部分:合页损失(衡量分类误差);
- 第二部分:L2 正则(∥W∥2,对应最大间隔,防止过拟合)。
4.3.2 各类损失函数的共同特征(对应图 4-6)
图 4-6 通常展示二分类任务中常见损失函数的曲线(横轴:yf(X),纵轴:损失值),核心特征:
| 损失函数 | 曲线特征 | 共同特征 |
|---|---|---|
| 0-1 损失 | 阶跃函数,yf(X)<0时损失 = 1,否则 = 0 | 1. 当yf(X)→+∞(分类极正确),所有损失都趋近于 0;2. 当yf(X)→−∞(分类极错误),所有损失都单调递增;3. 合页损失 / 交叉熵损失都是 0-1 损失的凸近似,可导,适合优化;4. 损失函数的核心作用:惩罚分类错误 / 违规的样本,奖励分类正确的样本。 |
| 合页损失 | 折线,yf(X)≥1时损失 = 0,yf(X)<1时线性递增 | |
| 交叉熵损失(Logistic 回归) | 对数曲线,yf(X)越小,损失增长越快 |
人话对比
- 0-1 损失:"非黑即白",分类错就罚 1,对就不罚,但没法优化;
- 合页损失:"循序渐进",分类对且离边界远→不罚;分类对但离边界近→轻罚;分类错→重罚,且罚得越错越重;
- 交叉熵损失:"指数惩罚",分类错得越离谱,损失增长越快(比合页损失更激进)。
4.4 核方法:思路和作用、常见核函数
SVM 的核方法是解决 "线性不可分" 问题的核心(比如样本呈环形分布,无法用直线分开),能把低维线性不可分的数据映射到高维,使其线性可分。
4.4.1 核方法的核心思路
1. 问题背景
低维空间中线性不可分的样本,映射到高维空间后可能线性可分。比如:
- 二维空间中 "环形分布" 的样本(内层负类,外层正类),无法用直线分开;
- 映射到三维空间(比如z=x12+x22),就能用一个平面分开。
2. 直接映射的问题
高维映射的计算量极大(比如从 2 维映射到 1000 维),尤其是计算样本间的内积XiTXj(SVM 优化的核心计算),会导致 "维度灾难"。
3. 核函数的核心思想
核函数 = 高维内积的低维计算:不用显式把样本映射到高维,而是直接在低维空间计算高维空间的内积,公式:K(Xi,Xj)=ϕ(Xi)Tϕ(Xj)
- ϕ(X):低维→高维的映射函数;
- K(Xi,Xj):核函数,直接输出ϕ(Xi)和ϕ(Xj)的内积,无需计算ϕ(X)。
4.4.2 核方法的作用
- 解决线性不可分问题:把低维线性不可分的数据转化为高维线性可分;
- 降低计算复杂度:避免高维映射的巨大计算量,仅在低维空间计算核函数;
- 提升 SVM 的泛化能力:核函数能捕捉数据的非线性特征。
4.4.3 常见核函数
| 核函数类型 | 公式 | 适用场景 |
|---|---|---|
| 线性核(Linear Kernel) | K(Xi,Xj)=XiTXj | 数据本身线性可分,等价于原始线性 SVM,计算最快 |
| 多项式核(Polynomial Kernel) | K(Xi,Xj)=(XiTXj+c)d | c:常数(通常取 1),d:多项式次数(超参数)适用:中等复杂度的非线性数据,比如文本分类 |
| 高斯核(RBF 核,径向基核) | K(Xi,Xj)=exp(−2σ2∣Xi−Xj∣2) | σ:带宽(超参数),σ越小,模型越复杂适用:绝大多数非线性场景(最常用),比如图像分类、复杂的结构化数据 |
| Sigmoid 核 | K(Xi,Xj)=tanh(αXiTXj+c) | 模拟神经网络的激活函数,适用:非线性分类,但不如 RBF 核常用 |
人话解释
核函数相当于 "放大镜":
- 线性核:不用放大镜,直接看数据(线性可分);
- 高斯核:用放大镜把数据的局部特征放大,能处理任意复杂的非线性分布(比如环形、螺旋形数据);
- 多项式核:用 "多项式曲线" 拟合数据的非线性特征,复杂度介于线性核和高斯核之间。
总结
- SVM 的核心是 "最大间隔",线性可分场景找最优超平面,线性不可分场景用软间隔允许少量违规;
- 合页损失是 SVM 的核心损失函数,是 0-1 损失的凸近似,可导且能优化;
- 核方法通过 "低维计算高维内积" 解决线性不可分问题,高斯核是最常用的非线性核函数;
- 超参数C(惩罚系数)和核函数参数(如高斯核的σ)决定 SVM 的性能,需通过交叉验证调优。