当前位置: 首页 > news >正文

开心实习之第三十二天

今天学习的是向量机,授信我们先了解一下向量机。

支持向量机(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,b​21​∥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,b​maxα≥0​L(w,b,α) 等价于对偶问题 maxα≥0​minw,b​L(w,b,α)(需满足 Slater 条件,SVM 中线性可分情况自然满足)。

转化为对偶问题的核心优势:

  • 对偶问题的变量是 αi​(共 n 个,与样本数量一致),而非原问题的 w(n 维)和 b(1 维),更易引入核函数;
  • 对偶问题的目标函数仅涉及样本间的内积(Φ(xi​)TΦ(xj​)),为后续解决高维问题提供了关键入口。

3. 极小化拉格朗日函数(对w和b求偏导)

要计算 minw,b​L(w,b,α),需对 w 和 b 分别求偏导,并令偏导数为 0(极值条件):

(1)对w求偏导并令其为 0

∂w∂L​=w−∑i=1n​αi​yi​Φ(xi​)=0
整理得:w=∑i=1n​αi​yi​Φ(xi​)
含义:超平面的法向量 w 是支持向量特征 Φ(xi​) 的线性组合,系数为 αi​yi​(非支持向量的 αi​=0,不贡献)。

(2)对b求偏导并令其为 0

∂b∂L​=−∑i=1n​αi​yi​=0
整理得:∑i=1n​αi​yi​=0
含义:拉格朗日乘子 αi​ 与样本标签 yi​ 的加权和为 0,是对偶问题的重要约束。

4. 代入化简:对偶问题的最终形式

将 w=∑i=1n​αi​yi​Φ(xi​) 和 ∑i=1n​αi​yi​=0 代入拉格朗日函数,化简后得到对偶问题的目标函数:

maxα​[∑i=1n​αi​−21​∑i=1n​∑j=1n​αi​αj​yi​yj​⋅Φ(xi​)TΦ(xj​)]

约束条件:

  1. ∑i=1n​αi​yi​=0
  2. αi​≥0(i=1,..,n)

5. SVM 求解实例(以 PPT 示例为例)

PPT 中给出了具体的求解案例,核心步骤可总结为:

  1. 代入样本与标签:将已知样本的 xi​、yi​ 代入对偶目标函数,化简得到仅含 αi​ 的表达式(如 PPT 中化简为 4α1​+12α2​+10α1​α2​−2α1​−2α2​);
  2. 求偏导找极值:对各 αi​ 求偏导并令其为 0,若解得的 αi​ 满足约束(αi​≥0),则为最优解;若不满足(如 PPT 中 α2​=−2/13<0),则需在约束边界上寻找最优解(如令 α1​=0 或 α2​=0);
  3. 计算w和b:将最优 αi​ 代入 w=∑i=1n​αi​yi​Φ(xi​) 计算 w;再利用支持向量满足 yi​(wTΦ(xi​)+b)=1,解出 b(如 PPT 中得到 b=−2);
  4. 确定超平面方程:将 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​αi​yi​Φ(xi​)、∑i=1n​αi​yi​=0)保持不变。

四、SVM 的拓展 2:核变换(处理低维不可分问题)

软间隔解决了 “噪声导致的线性不可分”,但当样本本身在低维空间中完全非线性可分(如异或问题)时,软间隔也无法解决 —— 此时需通过 “核变换” 将低维数据映射到高维特征空间,使数据在高维空间中线性可分。

1. 低维不可分的本质与高维映射

以异或问题为例:2 维平面上,“(0,0)、(1,1)” 为负例,“(0,1)、(1,0)” 为正例,不存在任何直线能分离两类样本;但将其映射到 3 维空间(如 Φ(x1​,x2​)=(x1​,x2​,x12​+x22​))后,可找到一个平面(如 z=0.5)分离两类样本。

核心逻辑:低维空间的非线性关系,可能对应高维空间的线性关系。因此,SVM 的思路是:

  1. 通过特征映射 Φ:输入空间→高维特征空间,将低维数据映射到高维;
  2. 在高维特征空间中训练硬 / 软间隔 SVM,得到线性超平面;
  3. 将高维超平面映射回低维空间,即为非线性分类边界。

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)=(x1​x1​,x1​x2​,x1​x3​,x2​x1​,x2​x2​,x2​x3​,x3​x1​,x3​x2​,x3​x3​)(3 维→9 维);
  • 直接计算高维内积:Φ(x)TΦ(y)=1024;
  • 核函数计算:K(x,y)=(xTy)2=(4+10+18)2=322=1024,结果完全一致。

3. 常见核函数

核函数的选择需根据数据特点确定,常用核函数包括:

核函数类型数学表达式适用场景
线性核K(xi​,xj​)=xiT​xj​低维线性可分数据(等价于硬 / 软间隔 SVM)
多项式核K(xi​,xj​)=(xiT​xj​+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 的灵魂,也为其他机器学习模型(如核逻辑回归)提供了重要借鉴。

http://www.dtcms.com/a/351292.html

相关文章:

  • Python爬虫实战:Uiautomator2 详解与应用场景
  • Android SystemServer 系列专题【篇四:SystemServerInitThreadPool线程池管理】
  • android 事件分发源码分析
  • STL库——vector(类函数学习)
  • 【51单片机】萌新持续学习中《矩阵 密码锁 点阵屏》
  • 矩阵初等变换的几何含义
  • 血缘元数据采集开放标准:OpenLineage Integrations Apache Spark Configuration Usage
  • 重写BeanFactory初始化方法并行加载Bean
  • 信息网络安全视角下的在线问卷调查系统设计与实践(国内问卷调查)
  • 记一个Mudbus TCP 帮助类
  • Linux 内核 Workqueue 原理与实现及其在 KFD SVM功能的应用
  • LeetCode - 844. 比较含退格的字符串
  • LeetCode 438. 找到字符串中所有的字母异位词
  • 微算法科技(NASDAQ:MLGO)通过修改 Grover 算法在可重构硬件上实现动态多模式搜索
  • LeetCode - 946. 验证栈序列
  • 智慧园区:从技术赋能到价值重构,解锁园区运营新范式
  • 透视光合组织大会:算力生态重构金融AI落地新实践
  • 亚马逊类目合规风暴:高压清洗机品类整顿背后的运营重构与风险防御
  • 便携屏选购指南:常见作用、移动性优势及多场景应用详解
  • 前端性能优化新维度:渲染流水线深度解析
  • 【前端开发实战】从零开始开发Chrome浏览器扩展 - 快乐传播者项目完整教程
  • DeepSeek分析
  • spring如何通过实现BeanPostProcessor接口计算并打印每一个bean的加载耗时
  • 【数据结构】树和二叉树——二叉树
  • pytorch_grad_cam 库学习笔记—— Ablation-CAM 算法的基类 AblationCAM 和 AblationLayer
  • OneCode RAD:揭秘前端开发的配置化魔法
  • 【RAGFlow代码详解-14】知识图谱处理
  • Linux之SELinux 概述、SSH 密钥登录、服务器初始化
  • IUV5G专网排障(下)
  • 开源大模型本地部署