开心实习之第三十二天
今天学习的是向量机,授信我们先了解一下向量机。
支持向量机(Support Vector Machine, SVM)是机器学习中经典的监督学习模型,核心定位是解决二分类问题,其设计思路围绕 “找到最优划分超平面” 展开,兼具坚实的统计学习理论基础与优秀的泛化能力。本文将基于 PPT 内容,从核心目标、数学基础、优化推导、求解过程、拓展应用(软间隔与核变换)等维度,系统梳理 SVM 的学习要点,帮助深入理解其原理与实践逻辑。那么了解了它的原理我们就可以开始应用。
一、SVM 的核心目标:找到 “最优超平面”
首先,SVM 的本质是在样本空间中寻找一个划分超平面,将不同类别的样本彻底分离 —— 但并非所有能分离样本的超平面都是 “好的”,SVM 的核心追求是 “理想超平面”,其定义与优化目标可拆解为以下三层:
1. 基本需求:划分超平面的定义
超平面是 SVM 分类的 “决策边界”,其数学本质是n 维样本空间到 n-1 维子空间的映射,具体表现随空间维度变化:
- 若样本空间为 2 维(如平面上的点),超平面是 1 维直线;
- 若样本空间为 3 维(如空间中的点),超平面是 2 维平面;
- 推广到 n 维空间,超平面的统一方程为:wTx+b=0
其中,w 是超平面的法向量(决定超平面的方向),b 是截距(决定超平面的位置),二者共同唯一确定超平面。
2. 理想超平面:对扰动的 “容忍性” 最优
为什么需要 “理想超平面”?因为训练样本可能存在微小扰动(如测量误差、噪声),若超平面离某类样本过近,微小扰动就可能导致分类错误。因此,理想超平面需满足 “局部扰动容忍性最好”—— 即超平面与两类样本中 “最近点” 的距离尽可能大,这个 “最大距离” 就是 SVM 的核心概念:Margin(间隔)。
直观理解:假设有两个类别 A 和 B,平面上有多个能分离它们的直线(超平面),其中 “离 A 类最近点” 和 “离 B 类最近点” 距离最大的直线,就是理想超平面(如图 1 所示,中间直线的 Margin 远大于两侧直线)。
3. 优化目标:最大化 Margin
Margin 的定义与 “点到超平面的距离” 直接相关,需先明确点到超平面的距离公式:
- 对于 2 维空间的直线 Ax+By+C=0,点 (x0,y0) 到直线的距离为:d=A2+B2∣Ax0+By0+C∣;
- 推广到 n 维空间的超平面 wTx+b=0,任意样本点 xi 到超平面的距离为:di=∥w∥∣wTxi+b∣(其中 ∥w∥=w12+w22+...+wn2,是法向量 w 的 L2 范数)。
而 Margin 是 “两类样本中最近点到超平面距离的 2 倍”(即 Margin=2d,d 为最近点到超平面的距离)。要最大化 Margin,只需最大化 d—— 但 d 的最大值受限于 “最近点” 的约束:
由于超平面需正确分类所有样本,对任意样本 xi(标签 yi∈{+1,−1},+1 代表正例,-1 代表负例),需满足 yi(wTxi+b)>0(保证样本在超平面的正确一侧)。
进一步通过放缩变换简化约束:对 w 和 b 进行同比例缩放(不改变超平面位置),可使 “离超平面最近的样本” 满足 yi(wTxi+b)=1(即 ∣wTxi+b∣=1)。此时,最近点到超平面的距离 d=∥w∥1。
因此,SVM 的优化目标可转化为:
最大化 d=∥w∥1 → 等价于最小化 21∥w∥2(平方项是为了后续求导方便,且与原目标单调性一致),
约束条件为:yi(wTΦ(xi)+b)≥1(i=1,2,...,n),其中 Φ(x) 是样本的 “特征映射”,后续核变换会详细解释。
4. 支持向量:决定超平面的关键样本
在上述约束中,满足 yi(wTΦ(xi)+b)=1 的样本,就是支持向量(Support Vector)—— 它们是离超平面最近的样本,也是 “决定 Margin 大小” 的唯一因素。
核心特性:支持向量之外的样本(满足 yi(wTΦ(xi)+b)>1)对超平面的位置和 Margin 无影响。这使得 SVM 具有 “稀疏性”—— 模型最终仅依赖少数支持向量,而非所有训练样本,大幅提升了泛化能力。
二、SVM 的优化求解:拉格朗日乘子法与对偶问题
上述优化目标是带不等式约束的凸二次规划问题(目标函数 21∥w∥2 是凸函数,约束条件是仿射函数),直接求解难度较高,因此 SVM 引入 “拉格朗日乘子法”,将原问题转化为更易求解的 “对偶问题”。
1. 拉格朗日函数的构造
对于带约束的优化问题:
minw,b21∥w∥2
s.t.yi(wTΦ(xi)+b)−1≥0(i=1,..,n)
根据拉格朗日乘子法,构造拉格朗日函数(引入非负拉格朗日乘子 αi≥0):
L(w,b,α)=21∥w∥2−∑i=1nαi[yi(wTΦ(xi)+b)−1]
其中,αi 对应第 i 个约束的乘子,非负性(αi≥0)保证约束的有效性。
2. 对偶问题的转化:min-max → max-min
凸优化问题的 “对偶性” 表明:原问题 minw,bmaxα≥0L(w,b,α) 等价于对偶问题 maxα≥0minw,bL(w,b,α)(需满足 Slater 条件,SVM 中线性可分情况自然满足)。
转化为对偶问题的核心优势:
- 对偶问题的变量是 αi(共 n 个,与样本数量一致),而非原问题的 w(n 维)和 b(1 维),更易引入核函数;
- 对偶问题的目标函数仅涉及样本间的内积(Φ(xi)TΦ(xj)),为后续解决高维问题提供了关键入口。
3. 极小化拉格朗日函数(对w和b求偏导)
要计算 minw,bL(w,b,α),需对 w 和 b 分别求偏导,并令偏导数为 0(极值条件):
(1)对w求偏导并令其为 0
∂w∂L=w−∑i=1nαiyiΦ(xi)=0
整理得:w=∑i=1nαiyiΦ(xi)
含义:超平面的法向量 w 是支持向量特征 Φ(xi) 的线性组合,系数为 αiyi(非支持向量的 αi=0,不贡献)。
(2)对b求偏导并令其为 0
∂b∂L=−∑i=1nαiyi=0
整理得:∑i=1nαiyi=0
含义:拉格朗日乘子 αi 与样本标签 yi 的加权和为 0,是对偶问题的重要约束。
4. 代入化简:对偶问题的最终形式
将 w=∑i=1nαiyiΦ(xi) 和 ∑i=1nαiyi=0 代入拉格朗日函数,化简后得到对偶问题的目标函数:
maxα[∑i=1nαi−21∑i=1n∑j=1nαiαjyiyj⋅Φ(xi)TΦ(xj)]
约束条件:
- ∑i=1nαiyi=0
- αi≥0(i=1,..,n)
5. SVM 求解实例(以 PPT 示例为例)
PPT 中给出了具体的求解案例,核心步骤可总结为:
- 代入样本与标签:将已知样本的 xi、yi 代入对偶目标函数,化简得到仅含 αi 的表达式(如 PPT 中化简为 4α1+12α2+10α1α2−2α1−2α2);
- 求偏导找极值:对各 αi 求偏导并令其为 0,若解得的 αi 满足约束(αi≥0),则为最优解;若不满足(如 PPT 中 α2=−2/13<0),则需在约束边界上寻找最优解(如令 α1=0 或 α2=0);
- 计算w和b:将最优 αi 代入 w=∑i=1nαiyiΦ(xi) 计算 w;再利用支持向量满足 yi(wTΦ(xi)+b)=1,解出 b(如 PPT 中得到 b=−2);
- 确定超平面方程:将 w 和 b 代入 wTx+b=0,得到最终分类边界(如 PPT 中 0.5x1+0.5x2−2=0)。
三、SVM 的拓展 1:软间隔(处理噪声与线性不可分数据)
上述 “硬间隔 SVM” 假设样本完全线性可分,但实际数据中常存在噪声或异常点 —— 若强行要求 “完全分离”,会导致超平面过度偏向少数异常点,泛化能力大幅下降(过拟合)。为此,SVM 引入 “软间隔”,允许少量样本违反约束(即误分类或落在 Margin 内侧)。
1. 松弛因子的引入
为放松 “完全线性可分” 的约束,引入松弛因子 ξi≥0(ξi 表示第 i 个样本违反约束的程度):
- 若 ξi=0:样本完全满足硬间隔约束(yi(wTxi+b)≥1);
- 若 0<ξi<1:样本落在 Margin 内侧,但分类正确;
- 若 ξi≥1:样本被误分类。
此时,约束条件变为:yi(wTxi+b)≥1−ξi(i=1,..,n)。
2. 软间隔的目标函数
软间隔的目标函数需在 “最小化 21∥w∥2(保证 Margin 尽可能大)” 和 “最小化 ∑i=1nξi(保证违反约束的样本尽可能少)” 之间平衡,引入惩罚参数 C 控制二者权重:
minw,b,ξ21∥w∥2+C∑i=1nξi
s.t.yi(wTxi+b)≥1−ξi(i=1,..,n)
ξi≥0(i=1,..,n)
参数 C 的意义:
- C→+∞:惩罚极强,不允许任何样本违反约束(退化为硬间隔 SVM);
- C→0:惩罚极弱,允许大量样本违反约束(超平面趋近于 “无分类能力”)。
C 是 SVM 实践中需重点调参的参数,直接影响模型泛化能力。
3. 软间隔的对偶求解
与硬间隔类似,软间隔仍通过拉格朗日乘子法转化为对偶问题,核心差异在于约束条件的变化:
- 构造拉格朗日函数时,需引入对 ξi 的乘子 μi≥0;
- 最终对偶问题的目标函数与硬间隔一致,但 αi 的约束变为 0≤αi≤C(硬间隔中仅 αi≥0);
- 其他关键结论(如 w=∑i=1nαiyiΦ(xi)、∑i=1nαiyi=0)保持不变。
四、SVM 的拓展 2:核变换(处理低维不可分问题)
软间隔解决了 “噪声导致的线性不可分”,但当样本本身在低维空间中完全非线性可分(如异或问题)时,软间隔也无法解决 —— 此时需通过 “核变换” 将低维数据映射到高维特征空间,使数据在高维空间中线性可分。
1. 低维不可分的本质与高维映射
以异或问题为例:2 维平面上,“(0,0)、(1,1)” 为负例,“(0,1)、(1,0)” 为正例,不存在任何直线能分离两类样本;但将其映射到 3 维空间(如 Φ(x1,x2)=(x1,x2,x12+x22))后,可找到一个平面(如 z=0.5)分离两类样本。
核心逻辑:低维空间的非线性关系,可能对应高维空间的线性关系。因此,SVM 的思路是:
- 通过特征映射 Φ:输入空间→高维特征空间,将低维数据映射到高维;
- 在高维特征空间中训练硬 / 软间隔 SVM,得到线性超平面;
- 将高维超平面映射回低维空间,即为非线性分类边界。
2. 核函数:解决 “维度灾难”
高维映射的核心问题是 “维度灾难”:若输入空间为 d 维,映射到 k 维特征空间(k≫d),则计算 Φ(xi)TΦ(xj)(对偶问题的核心项)的复杂度会急剧上升(如 PPT 中 3 维映射到 9 维,内积计算量从 O(3) 变为 O(9);更高维时计算量不可承受)。
核函数(Kernel Function) 完美解决了这一问题:定义 K(xi,xj)=Φ(xi)TΦ(xj),即 “核函数的结果等于高维特征空间中样本的内积”—— 无需显式构造 Φ(x),直接通过核函数计算高维内积,大幅降低计算复杂度。
PPT 中的经典案例验证了核函数的有效性:
- 输入空间:3 维样本 x=(1,2,3),y=(4,5,6);
- 特征映射:Φ(x)=(x1x1,x1x2,x1x3,x2x1,x2x2,x2x3,x3x1,x3x2,x3x3)(3 维→9 维);
- 直接计算高维内积:Φ(x)TΦ(y)=1024;
- 核函数计算:K(x,y)=(xTy)2=(4+10+18)2=322=1024,结果完全一致。
3. 常见核函数
核函数的选择需根据数据特点确定,常用核函数包括:
核函数类型 | 数学表达式 | 适用场景 |
---|---|---|
线性核 | K(xi,xj)=xiTxj | 低维线性可分数据(等价于硬 / 软间隔 SVM) |
多项式核 | K(xi,xj)=(xiTxj+c)d(c≥0,d 为次数) | 中等复杂度的非线性数据(如文本分类) |
高斯核(RBF) | K(xi,xj)=exp(−2σ2∣xi−xj∣2)(σ>0 为带宽) | 复杂非线性数据(如图像识别、异常检测),适用范围最广 |
其中,高斯核的优势是 “无参数维度限制”,可将数据映射到 “无限维特征空间”,能处理几乎所有非线性场景,但需调优参数 σ(σ 越小,核函数越 “尖锐”,易过拟合;σ 越大,核函数越 “平滑”,易欠拟合)。
五、SVM 的核心总结与特点
1. 核心逻辑梳理
SVM 的完整逻辑链可概括为:
线性可分→硬间隔 SVM(最大化 Margin)→拉格朗日对偶(简化求解)→线性不可分(噪声)→软间隔 SVM(松弛因子 + 惩罚参数 C)→非线性不可分→核变换(核函数 + 高维映射)→非线性 SVM。
2. 优缺点
优点:
- 泛化能力强:基于统计学习理论,通过最大化 Margin 降低过拟合风险;
- 稀疏性:仅依赖支持向量,模型复杂度与样本数量无关(仅与支持向量数量相关);
- 非线性能力:通过核函数轻松处理复杂非线性问题,无需手动设计特征;
- 鲁棒性:软间隔对噪声有一定容忍度。
缺点:
- 计算复杂度高:对偶问题求解需 O (n³) 时间,不适合大规模数据(需结合 SMO 等优化算法);
- 参数敏感:惩罚参数 C、核函数参数(如高斯核的 σ)需精细调优,否则性能波动大;
- 多分类支持弱:原生 SVM 仅支持二分类,多分类需通过 “一对多”“一对一” 等策略间接实现。
3. 实践建议
- 数据预处理:SVM 对特征尺度敏感,需先对特征标准化(如 Z-score 归一化);
- 参数调优:优先使用交叉验证(如 5 折 CV)调优 C 和核函数参数;
- 核函数选择:若数据线性可分或维度高(如文本),优先用线性核;若数据非线性且维度低,优先用高斯核。
通过以上梳理,就可以基本的系统掌握 SVM 的原理、推导与应用 —— 其 “最大化 Margin”“对偶问题”“核变换” 三大核心思想,不仅是 SVM 的灵魂,也为其他机器学习模型(如核逻辑回归)提供了重要借鉴。