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

支持向量机(SVM)学习笔记

一、SVM 核心目标与基本概念

(一)核心需求

在样本所在的空间里,找到一个能把不同类别样本分开的 “划分超平面”,这是 SVM 最基础的任务。

(二)理想超平面的标准

理想的划分超平面,要能对训练样本的局部扰动有最好的 “容忍性”。简单说,就算训练样本有微小的变动,这个超平面依然能准确分类,不容易因为样本的小波动就出现分类错误。

(三)关键概念解释

  1. 超平面
    • 本质:可以理解为从 n 维空间 “切” 出来的 n-1 维子空间,它由一个 n 维的方向向量(法向量)和一个代表位置的实数(截距)共同决定。
    • 维度对应关系:
      • 在我们熟悉的三维空间(比如日常生活中的立体空间)里,超平面就是二维的平面;
      • 在二维空间(比如一张纸的平面)里,超平面就是一维的直线。
  2. 间隔(Margin)
    • 定义:两类样本中,距离划分超平面最近的那些点,到超平面距离的 2 倍。
    • SVM 的核心优化方向:尽可能让这个间隔变大。因为间隔越大,超平面对样本变动的承受能力越强,模型在新样本上的分类效果(泛化能力)通常也越好。
  3. 支持向量
    • 定义:就是那些距离划分超平面最近的样本点,它们是决定间隔大小的关键。模型训练完成后,只有支持向量会影响超平面的位置和方向,其他样本不管怎么变动,只要不变成新的支持向量,就不会改变超平面。
  4. 点到超平面的距离
    • 可以类比我们学过的 “点到直线的距离”:在二维空间里,能计算点到直线的距离;推广到 n 维空间,就能计算样本点到超平面的距离,这个距离是判断样本与超平面远近的核心指标。

二、SVM 优化目标与求解思路

(一)数据与决策规则定义

  1. 数据集标签:假设我们有一组训练数据,每个数据都有对应的类别标签 —— 如果是正类样本,标签记为 + 1;如果是负类样本,标签记为 - 1。
  2. 决策规则:用一个函数来判断新样本的类别,这个函数会先对原始样本做一些特征变换(后面会讲为什么要变换),再结合超平面的参数,最终输出分类结果。

(二)优化目标转化

  1. 初始目标:找到超平面的参数(法向量和截距),让离超平面最近的点(支持向量)到超平面的距离最大。为了方便计算,我们会对参数做一些调整,让支持向量刚好满足 “到超平面的距离对应特定值”,从而把 “最大化距离” 的目标,转化为 “最小化某个关于参数的表达式”。
  2. 核心约束:所有样本都要在超平面的正确一侧 —— 正类样本在超平面的一边,负类样本在另一边,通过样本标签和决策函数的结果可以保证这一点。

(三)拉格朗日乘子法求解

  1. 构建辅助函数:针对 “在约束条件下求最小值” 这种问题,引入 “拉格朗日乘子” 构建一个辅助函数(拉格朗日函数),把带约束的优化问题转化为无约束的问题。
  2. 转化对偶问题:通过对辅助函数中的参数求偏导并令其等于 0,得到两个关键条件,再把这两个条件代入辅助函数,将原问题转化为 “对偶问题”—— 这种转化能让求解过程更简单,尤其是后续引入核函数时优势更明显。
  3. 求解关键参数:通过求解对偶问题,得到拉格朗日乘子的值,再结合之前得到的条件,就能算出超平面的法向量和截距,最终确定划分超平面。

三、SVM 求解实例(简化版)

  1. 问题简化:针对一组小规模的训练数据,先根据对偶问题的思路,把目标函数展开并简化。过程中会利用 “样本标签之和相关的约束”,减少需要求解的变量数量。
  2. 寻找最优解:对简化后的目标函数,计算相关变量的偏导数并令其为 0,找到可能的解。但有些解会不满足 “参数非负” 的约束,所以需要在约束边界上寻找符合条件的最优解。
  3. 计算超平面参数:根据找到的最优解,计算超平面的法向量和截距,最终写出超平面的表达式,完成分类模型的构建。

四、SVM 的扩展:应对复杂数据

(一)软间隔:处理噪声数据

  1. 问题背景:现实中的数据往往存在 “噪声点”(比如标注错误或异常的样本)。如果强行要求所有样本都严格符合 “在超平面正确一侧且距离满足要求”,会导致超平面过于 “迁就” 噪声点,反而在新样本上分类效果差(过拟合)。
  2. 引入松弛因子:为了解决这个问题,引入 “松弛因子”—— 允许少数样本不严格满足原始约束,松弛因子的大小代表样本偏离约束的程度。
  3. 调整目标函数:在原有的目标函数里,增加一项与松弛因子相关的惩罚项,惩罚项的权重由参数 C 控制:
    • 如果 C 很大:意味着对噪声的容忍度低,不允许太多样本偏离约束,要求分类尽可能准确;
    • 如果 C 很小:意味着对噪声的容忍度高,允许更多样本偏离约束,更看重间隔的大小。
  4. 求解调整:构建新的拉格朗日函数时,会结合松弛因子的约束,最终得到的参数约束会比原来多一个 “上限”,其他求解逻辑和之前一致。

(二)核函数:处理低维不可分数据

  1. 问题背景:有些数据在当前的低维空间里,无论怎么画超平面都无法把两类样本分开(比如呈环形分布的数据)。这时可以考虑把数据 “搬到” 更高维的空间,在高维空间里,这些样本可能就变得可以用超平面分开了。
  2. 维度灾难问题:直接把数据映射到高维空间,会面临 “计算量爆炸” 的问题 —— 高维空间里计算样本之间的内积(求解 SVM 的关键步骤),运算量会随着维度的增加急剧上升,甚至无法实现。
  3. 核函数的作用:引入 “核函数” 可以解决这个问题。核函数能直接在低维空间里,计算出数据映射到高维空间后的内积结果,不用真的把数据映射到高维,既达到了高维映射的效果,又避免了复杂的高维计算。
  4. 常见核函数
    • 线性核函数:适用于本身在低维空间就能分开的数据,本质上和原始的线性 SVM 一样,计算简单。
    • 高斯核函数(RBF 核):适用范围很广,能把数据映射到无穷维空间,即使是复杂的非线性分布数据,也能通过它找到合适的超平面,灵活性非常强。
  5. 实例验证:以一组简单的三维数据为例,若将其映射到九维空间,直接计算高维内积会很繁琐,但用特定的核函数(如基于内积平方的核函数),在三维空间里就能快速算出和高维内积相同的结果,充分体现了核函数的优势。
http://www.dtcms.com/a/351495.html

相关文章:

  • SOME/IP服务发现PRS_SOMEIPSD_00277的解析
  • 服务器数据恢复—热备盘上线失败如何恢复数据?
  • 【Android】webview强制Crash后再自恢复设计
  • 服务器初始化
  • 影响服务器托管费用的因素​
  • ROS2 Helloworld 入门——包含完整pdf手册
  • Linux驱动开发笔记(九)——内核定时器
  • CSS 优先级:公司组织架构模型
  • css3背景线性渐变:linear-gradient
  • 基于Python+MySQL实现物联网引论课程一个火警报警及应急处理系统
  • 面向 6G 网络的 LLM 赋能物联网:架构、挑战与解决方案
  • 相机激光安全等级和人眼安全
  • 第九届MathorCup高校数学建模挑战赛-D题:钢水“脱氧合金化”配料方案的优化
  • 五自由度磁悬浮轴承同频振动抑制:从机理拆解到传递函数验证的核心方案
  • 【图像算法 - 24】基于深度学习与 OpenCV 实现人员跌倒识别系统(目标检测方案 - 跌倒即目标)
  • Baumer高防护相机如何通过YoloV8深度学习模型实现形状检测器的使用(YOLOv8 Shape Detector)
  • 无人机航拍数据集|第32期 无人机采矿区作业目标检测YOLO数据集202张yolov11/yolov8/yolov5可训练
  • GaussDB 数据库架构师修炼(十八) SQL引擎-计划管理-SPM
  • Windows MCP 安装教程:让 AI 代理与 Windows 系统无缝交互
  • plantsimulation知识点 RGV小车前端与后端区别
  • 数字营销岗位需要具备的能力有哪些
  • 洛谷 P12332 题解
  • 图论入门与邻接表详解
  • 代码随想录Day62:图论(Floyd 算法精讲、A * 算法精讲、最短路算法总结、图论总结)
  • ElementUI之菜单(Menu)使用
  • 美团购物车小球动画效果
  • Docker Compose 使用指南 - 1Panel 版
  • 国产化芯片ZCC3790--同步升降压控制器的全新选择, 替代LT3790
  • 第17章|PowerShell 安全警报——高分学习笔记(运维实战向)
  • Tableau Server高危漏洞允许攻击者上传任意恶意文件