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

支持向量机(SVM)学习总结

支持向量机(Support Vector Machine, SVM)是机器学习中经典的监督学习模型,核心目标是在样本空间中找到最优划分超平面,实现对不同类别样本的精准分类,尤其在小样本、高维数据场景中表现优异。本次学习围绕 SVM 的基本原理、优化逻辑、求解方法及拓展应用展开,现将核心内容总结如下:

一、SVM 核心基础:超平面与 margin

1. 基本需求与超平面定义

SVM 的核心任务是在样本空间中找到一个划分超平面,将不同类别的样本完全分离。从数学角度看,超平面是 n 维空间到 n-1 维空间的映射子空间,由 n 维向量w(法向量,决定超平面方向)和实数b(截距,决定超平面位置)定义,其方程为:wTx+b=0

  • 二维空间中,超平面是直线(如Ax+By+C=0);
  • 三维空间中,超平面是平面
  • 更高维空间中,超平面虽无法直观可视化,但数学定义一致。

2. 理想超平面:最大化 margin

SVM 追求的 “理想超平面”,并非任意可分离样本的超平面,而是对训练样本局部扰动 “容忍性” 最强的超平面 —— 其本质是最大化 margin(边际)。

  • margin 定义:两类样本中距离超平面最近的点(即 “支持向量”)到超平面的距离之和,公式为margin=2d(d为单个最近点到超平面的距离)。
  • 点到超平面距离:对于 n 维空间中的点x,到超平面wTx+b=0的距离公式为:d=∥w∥∣wTx+b∣​(∥w∥是向量w的 L2 范数)。

二、SVM 优化目标与约束

1. 样本标签与决策方程

  • 样本标签:为简化计算,SVM 将正例标签定义为yi​=+1,负例标签定义为yi​=−1。
  • 决策方程:原始空间中,决策函数为y(x)=wTΦ(x)+b,其中Φ(x)是特征映射函数,用于将低维不可分数据映射到高维可分空间(后续 “核变换” 将详细说明)。

2. 优化目标转化

SVM 的核心是 “最大化 margin”,结合距离公式可推导为:

  1. 原始目标:最大化∥w∥1​(因margin=∥w∥2​,最大化 margin 等价于最小化∥w∥)。
  2. 约束条件:为确保所有样本被正确分类,需满足yi​(wTΦ(xi​)+b)≥1(通过对w和b的放缩,使最近样本到超平面的距离为∥w∥1​)。
  3. 目标转化:为简化计算(将极大值问题转为极小值问题),最终优化目标为:minw,b​21​∥w∥2,约束条件yi​(wTΦ(xi​)+b)≥1(i=1,2,...,n)。

三、SVM 求解:拉格朗日乘子法与对偶问题

由于优化目标含约束条件,SVM 采用拉格朗日乘子法将其转化为无约束的对偶问题求解,核心步骤如下:

1. 构建拉格朗日函数

对带约束的优化问题,引入拉格朗日乘子αi​≥0(对应每个样本的约束),构建拉格朗日函数:L(w,b,α)=21​∥w∥2−∑i=1n​αi​[yi​(wTΦ(xi​)+b)−1]
其中αi​≥0是约束条件(KKT 条件之一)。

2. 对偶问题转化

根据对偶理论,原问题minw,b​maxα​L(w,b,α)可转化为对偶问题maxα​minw,b​L(w,b,α),通过对w和b求偏导并令其为 0,得到关键条件:

  • 对w求偏导:w=∑i=1n​αi​yi​Φ(xi​)(超平面由支持向量决定,非支持向量的αi​=0);
  • 对b求偏导:∑i=1n​αi​yi​=0(对偶问题的约束条件之一)。

3. 对偶问题求解

将w=∑i=1n​αi​yi​Φ(xi​)代入拉格朗日函数,消去w和b,最终对偶问题为:maxα​∑i=1n​αi​−21​∑i=1n​∑j=1n​αi​αj​yi​yj​Φ(xi​)TΦ(xj​)
约束条件:∑i=1n​αi​yi​=0,αi​≥0(i=1,2,...,n)。

4. 求解实例关键结论

通过具体实例求解发现,对偶问题的最优解α∗通常仅少数样本非零(即 “支持向量”),其余样本αi​=0。将α∗代入w和b的表达式,即可得到最终超平面方程。例如某实例中,最优α=(0.25,0,0.25),计算得w=(0.5,0.5),b=−2,超平面方程为0.5x1​+0.5x2​−2=0。

四、SVM 拓展:软间隔与核变换

原始 SVM(硬间隔 SVM)要求样本完全线性可分,但实际数据常含噪音或异常值,导致硬间隔无法适用;同时低维空间中线性不可分的数据,在高维空间可能线性可分。为此,SVM 引入 “软间隔” 和 “核变换” 两大拓展。

1. 软间隔:容忍少量分类错误

为解决噪音问题,引入松弛因子ξi​≥0,允许部分样本不满足 “yi​(wTΦ(xi​)+b)≥1”,而是满足 “yi​(wTΦ(xi​)+b)≥1−ξi​”。

  • 新目标函数:minw,b,ξ​21​∥w∥2+C∑i=1n​ξi​,其中C>0是惩罚参数
    • C越大:对分类错误的惩罚越重,模型越倾向于严格分类(接近硬间隔);
    • C越小:对分类错误的容忍度越高,模型更关注 margin 最大化。
  • 对偶求解:引入拉格朗日乘子后,约束条件变为0≤αi​≤C,其余求解逻辑与硬间隔一致。

2. 核变换:解决低维不可分问题

低维空间中线性不可分的数据,可通过特征映射Φ(x)映射到高维空间,使其线性可分。但高维空间中计算Φ(xi​)TΦ(xj​)(内积)复杂度极高,因此引入核函数K(xi​,xj​)=Φ(xi​)TΦ(xj​),直接在低维空间计算高维内积,避免 “维度灾难”。

常见核函数及特点:

核函数类型表达式适用场景
线性核函数K(xi​,xj​)=xiT​xj​低维线性可分数据,计算简单
高斯核函数(RBF)K(xi​,xj​)=exp(−2σ2∥xi​−xj​∥2​)低维不可分、非线性数据,适应性强(需调参σ)

核函数优势实例:3 维空间中不可分的样本x=(1,2,3)和y=(4,5,6),映射到 9 维空间后内积计算复杂,但通过高斯核函数可直接在低维空间快速得到结果(如示例中K(x,y)=322=1024)。

五、学习总结与核心启示

  1. SVM 核心逻辑:通过最大化 margin 找到最优超平面,本质是 “以支持向量为核心” 的线性分类模型,对非支持向量不敏感,因此泛化能力强。
  2. 求解关键:利用拉格朗日对偶性将带约束的优化问题转化为对偶问题,降低求解复杂度,且最终超平面仅由支持向量决定。
  3. 拓展价值:软间隔解决了噪音数据的分类问题,核变换突破了低维不可分的限制,使 SVM 可应用于非线性分类场景(如图像识别、文本分类等)。
  4. 参数影响:惩罚参数C(控制错误容忍度)和核函数参数(如高斯核的σ)对模型性能至关重要,需通过交叉验证等方法调优。

通过本次学习,不仅掌握了 SVM 的数学原理与求解步骤,更理解了其 “化繁为简”(如对偶问题、核函数)的设计思想,为后续应用 SVM 解决实际机器学习问题奠定了基础。

http://www.xdnf.cn/news/18847.html

相关文章:

  • 德克西尔氢气探测器:工业安全守护核心
  • 从高层 PyTorch 到中层 CUDA Kernel 到底层硬件 Tensor Core
  • 深度解析BiTGAN:基于双向Transformer生成对抗网络的长期人体动作预测
  • Linux 把启动脚本制作成系统服务(通过 systemctl start xxx 启动)
  • JHipster-从零开始学习指南
  • Autodesk Maya 2026.2 全新功能详解:MotionMaker AI 动画、LookdevX 材质增强、USD 工作流优化
  • 实现自己的AI视频监控系统-第二章-AI分析模块3(核心)
  • Python常见设计模式3: 行为型模式
  • OpenCV4.X库功能全解---个人笔记
  • 【解锁Photonics for AI:系统学习光学神经网络与超表面设计,成就下一代光芯片工程师】
  • TCP并发服务器构建
  • Linux 离线环境下 Anaconda3 与核心机器学习库(scikit-learn/OpenCV/PyTorch)安装配置指南
  • React内网开发代理配置详解
  • 安装了TortoiseSVN但是在idea的subversion里面找不到svn.exe
  • LangChain4J-(3)-模型参数配置
  • 力扣 30 天 JavaScript 挑战 第41天 (第十二题)对异步操作,promise,async/await有了更深理解
  • 部署k8s-efk日志收集服务(小白的“升级打怪”成长之路)
  • 在 Ubuntu 系统上安装 MySQL
  • Spring Cloud 高频面试题详解(含代码示例与深度解析)
  • 浏览器与计算机网络
  • 计算机网络:服务器处理多客户端(并发服务器)
  • 【Redis#8】Redis 数据结构 -- Zset 类型
  • Java 大视界 -- Java 大数据机器学习模型在电商推荐系统冷启动问题解决与推荐效果提升中的应用(403)
  • Containerd 安装与配置指南
  • 基于Spring Boot的民宿服务管理系统-项目分享
  • THM Smol
  • Redis 数据结构
  • Content-Type是application/x-www-form-urlencoded表示从前端到后端提交的是表单的形式
  • vue新能源汽车销售平台的设计与实现(代码+数据库+LW)
  • 数据结构-串