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

【深度学习入门_机器学习理论】支持向量机(SVM)

本部分主要为机器学习理论入门_支持向量机(support vector machines, SVM),书籍参考 “ 统计学习方法(第二版)”。

学习目标: 理解决策边界、支持向量、决策/正/负超平面方程式、损失成本、软/硬间隔、核技巧升维转换。

工作之余有时间,继续填坑…

一、支持向量机(SVM)定义

支持向量机(Support Vector Machine,SVM)是一种用于分类和回归的监督学习算法,特别适用于分类问题。它的核心思想是找到一个最优超平面,将不同类别的数据分开,并最大化类别之间的边界(即“间隔”)。对于线性可分的数据,SVM通过寻找一个超平面来实现分类;对于线性不可分的数据,SVM通过核函数将数据映射到高维空间,使其在高维空间中线性可分。

在这里插入图片描述

一般的来说,当数据集线性可分时,存在多个能够正确分类的超平面。

对比一下感知机算法:

  • 感知机:利用误分类最小的策略,解有无穷多个,不唯一。

  • 支持向量机:利用间隔最大化策略,解唯一。

在这里插入图片描述
支持向量机主要包含以下三大类:

  • 线性可分支持向量机:针对数据线性可分,通过硬间隔最大化来学习
  • 线性支持向量机:针对数据近似线性可分(含噪),通过软间隔最大化来学习
  • 非线性支持向量机:针对数据线性不可分,通过核技巧及软间隔最大化来学习

二、支持向量机定义

2.1 超平面

说白了,就是所要求的解平面,也就是能够分隔数据的解集合。

超平面是分割输入变量空间的线。在SVM中,选择超平面以最佳地将输入变量空间中的点与它们的类(0级或1级)分开。在二维中,您可以将其视为一条线,并假设我们的所有输入点都可以被这条线完全分开。SVM学习算法找到导致超平面最好地分离类的系数。

其定义为:在n维空间中,超平面是一个n-1维的子空间,用于分隔数据。对于新的、未知的样本,SVM可以根据它们与超平面的相对位置来判断其所属类别。

超平面方程为:
在这里插入图片描述
其中w是权重,b是截距,训练数据就是训练得到权重和截距。

对于二维空间来说,其就是一条直线,如下图所示:

在这里插入图片描述
根据样本,可以分为正/负超平面,如下图所示。
在这里插入图片描述

2.2 间隔

超平面与最近数据点之间的距离就是间距。SVM的目标就是最大化这个间隔,如下图:
在这里插入图片描述

当然了,可能会存在一些误差样本,这个时候就需要给处理掉,那么不去掉误差样本的数据间隔就是软间隔,如下图所示:
在这里插入图片描述

去掉误差样本的数据间隔就是硬间隔

在这里插入图片描述

2.3 间隔最大化(Margin Maximization)

核心思想:SVM的目标是找到一个超平面,使得该平面到最近样本点(支持向量)的距离最大。这种间隔最大化策略旨在提高模型的鲁棒性,减少过拟合风险。

2.4 核函数

当数据线性可分时,SVM能够直接在原始特征空间中寻找一个最优的超平面,这个超平面能够将不同类别的数据分隔开来,并且保证不同类别之间的间隔最大化;若非线性可分,传统的线性超平面无法有效地区分不同类别的数据。为了解决这个问题,SVM引入了核函数的概念,其实和齐次坐标的作用差不多。

用于将数据映射到高维空间的函数,常见的核函数包括线性核、多项式核和径向基函数(RBF)核。
在这里插入图片描述
在这里插入图片描述
其中,核技巧就是对不可分数据进行升维度,然后来求解超平面的过程。
在这里插入图片描述

三、通过优化求解SVM

3.1 拉格朗日乘数法

在这里插入图片描述

3.2 KKT条件

在优化理论中,KKT(Karush-Kuhn-Tucker)条件是一组必须满足的条件,以便一个点成为凸优化问题的局部最小值,特别是对于有不等式约束的问题。

3.3 优化求解

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、SVM的优缺点

优点:

  • 可以解决高维问题,即大型特征空间;
  • 解决小样本下机器学习问题;
  • 能够处理非线性特征的相互作用;
  • 无局部极小值问题;(相对于神经网络等算法)
  • 无需依赖整个数据;
  • 泛化能力比较强;

缺点:

  • 当观测样本很多时,效率并不是很高;
  • 对非线性问题没有通用解决方案,有时候很难找到一个合适的核函数;
  • 对于核函数的高维映射解释力不强,尤其是径向基函数;
  • 常规SVM只支持二分类;
  • 对缺失数据敏感;
原文地址:https://blog.csdn.net/qq_35312463/article/details/145601367
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/592287.html

相关文章:

  • (暴力枚举 水题 长度为3的不同回文子序列)leetcode 1930
  • 留 言 板
  • 数据结构-ArrayList
  • MyBatis面试常见问题
  • 网络编程之客户端通过服务器与另外一个客户端交流
  • Java线性表(顺序表)
  • 算法刷题记录——LeetCode篇(2) [第101~200题](持续更新)
  • 【MySQL数据库】存储过程与自定义函数(含: SQL变量、分支语句、循环语句 和 游标、异常处理 等内容)
  • 美团Leaf分布式ID生成器使用教程:号段模式与Snowflake模式详解
  • 友思特应用 | 行业首创:基于深度学习视觉平台的AI驱动轮胎检测自动化
  • 基于微信小程序与SSM框架的高校课堂教学管理系统的设计与实现
  • 信息学奥赛一本通 1831:【03NOIP提高组】神经网络 | 洛谷 P1038 [NOIP 2003 提高组] 神经网络
  • 【前每日一题DAY-1】JS为什么能有异步任务?
  • 如何基于Gone编写一个Goner对接Apollo配置中心(下)—— 对组件进行单元测试
  • 破解验证码新利器:基于百度OCR与captcha-killer-modified插件的免费调用教程
  • 在处理欧拉函数时如何使用逆元
  • PHP转GO Day2 数据类型与控制结构实践(开发计算器)
  • 【高并发内存池】第二弹---深入解析高并发内存池与ThreadCache设计
  • Collection系列集合的小结+集合并发修改异常问题
  • 13 - linux 内存子系统