学习SVM(二) 如何理解支持向量机的最大分类间隔

二分类支持向量机模型SVM知识点详解 分类,支持向量机,SVM 阅读详情
AI摘要

本文深入探讨了支持向量机(SVM)的核心概念——最大分类间隔,详细解释了线性可分情况下的线性分类器如何通过最大分类间隔进行优化,并介绍了支持向量和软间隔等关键概念。

学习SVM(一) SVM模型训练与分类的OpenCV实现
学习SVM(二) 如何理解支持向量机的最大分类间隔
学习SVM(三)理解SVM中的对偶问题
学习SVM(四) 理解SVM中的支持向量(Support Vector)
学习SVM(五)理解线性SVM的松弛因子

SVM算法在在1995年正式发表,在针对中小型数据规模的分类任务上有着卓越的效果,同时有着完整的理论证明,在20世纪末的几年和21世纪初的10年完胜神经网络,吴恩达在其2003年的《Machien learning》公开课上用两节课的时间对其进行讲解,而神经网络讲解了20min左右。就是这个算法把神经网络按在地上摩擦了大概15年的时间,直到深度学习的兴起。但即便这样,现在SVM算法依旧被广泛的使用。
SVM大概的可以不确切的分为三个程度理解:
(1)线性可分情况下的线性分类器,这是最原始的SVM,它最核心的思想就是最大的分类间隔(margin maximization);
(2)线性不可分情况下的线性分类器,引入了软间隔(soft margin)的概念;
(3)线性不可分情况下的非线性分类器,是SVM与核函数(kernel function)的结合。
在下面只会第一部分的内容。

什么是最大分类间隔

SVM最大分类间隔的灵感来自于一个非常符合直觉的观察,如果存在两类数据,数据的特征是二维的,那么我们就可以把数据画在一个二维平面上,此时我想找到一个决策面(决策边界)去将这两类数据分开。如下图所示:
这里写图片描述
理论上这个决策边界有无数种选择,就像图中画出的四条黑色的线,都能实现分类,但是哪一种是最好的分类方式呢?SVM算法认为在上图中靠近决策平边界的点(正负样本)与决策边界的距离最大时,是最好的分类选择:
这里写图片描述
上图中红色的线就是要优化的目标,它表征了数据到决策边界的距离,这个距离就是所谓的最大分类间隔。同时在上面的几个数据,如果靠近两侧的数据少了几个,也不会影响决策边界的确定,而被红色框框出来三个数据才决定了最终的决策边界,所以这三个数据被称之为支持向量。

线性分类器

支持向量机算法如何实现最大分类间隔的任务呢?我们可以先从线性分类器开始理解它,支持向量在没有引入核函数的时候就是一个线性的分类器,我们假设与决策边界垂直的向量(决策面的法向量)为V:
这里写图片描述
黑色的线是假设的决策边界,X1和X2是决策边界两侧的两个点,Xt1和Xt2是两个点在法向量V上面的投影,那么可以很直观看到,原点到Xt1的距离<原点到Xt2的距离,而且可以推广延伸到只要数据点在决策边界的两侧,那么在决策边界左侧的数据点在法向量上面的投影距离永远比右侧的距离短,这就是支持向量机实现分类预测的依据。那么怎么用公式表征出这个点到直线投影的距离呢?
可以做这样一个假设验证一下:
这里写图片描述
如上图中的情况所示:要求向量b在向量a上的投影距离d,向量的内积可以表示为:
这里写图片描述
于是角度的余弦为:
这里写图片描述
距离d可以表示为:
这里写图片描述

而在SVM的特征空间中,a是决策边界的法向量,那么a为单位法向量的时候其模为1,所以就有:

这里写图片描述

最后我们把a和b换成上面设定的值就会有:
这里写图片描述
有了这个东西,我们总能找到一个常数C分开两类数据,也就是说:

这里写图片描述

到了上面的公式后,问题就非常的清晰了,法向量V其实就是决策边界的系数(这是解析几何里面的知识),那么大家肯定见过一种和它非常像的公式,叫做样本空间下的超平面线性方程:

这里写图片描述

线性分类器就是这个样子!!!
不经过sigmoid函数的Logistic模型也是这个样子!!
不激活的神经网络中的单个神经元还是这个样子!!

如何实现最大分类间隔

从上面可以看到,此时的支持向量机(没有加核函数)就是个线性的分类器,它的卓越性能就体现在在线性分类器基础上的最大分类间隔。
所以本质上SVM要训练的参数只有w和b,关键就在于SVM如何在优化中体现最大分类间隔的思想!
针对所有的训练数据(traindata),SVM都希望:
这里写图片描述
这里的正负1就体现的最大分类间隔,这里是选择用正负1是为了计算方便,因为无论间隔是多少,都可以依靠伸缩w和b约为1。上述公式就是SVM的最大间隔假设。如下图:
这里写图片描述
在这个图中,决策边界两边的线之间的距离(最大间隔)为:
这里写图片描述
它是这样求出来的,数据中的支持向量在影响着最大间隔,那么假设两个支持向量x1和x2分别为正负,最大间隔就应该是x2-x1在法向量上的投影:
这里写图片描述
所以求取d的过程为:
这里写图片描述
这里写图片描述
这就是SVM的优化目标,它想要找到max(d),然后大家可能发现了,这个目标里面没有b,之和w有关,那么是不是任意的b都可以呢?
显然不是的,这个优化有一个约束条件,因为推导的过程就有假设条件是两个支持向量要求在两侧,所以这个约束条件可以写成:
这里写图片描述

所以最终的目标为:

这里写图片描述
或者为:
这里写图片描述
需要注意的是,约束条件中的i=1…….n,n为样本的个数。

机器学习笔记整理(四)——支持向量机分类 1.间隔最大化分类 分离超平面:,使用分离超平面将正负样本分割开,即求解为正的w,r 将经过缩放变形为,这样更容易处理 最优解 可以最充分的分离正负样本的解,即,如下图: 最优解对应的分类器即硬间隔支持向量机分类器 2.用于线性模型的支持向量机分类器 硬间隔&软间隔 硬间隔支持向量机分类器:适用于样本线性可分的情况 软间隔支持向量机分类器:适用于样本线性不可分的情况,即允许一定的误差 硬间隔支持向量机分类器目标函数 ,约束条件 目标函数为二次函数,约束条件为线性函数,目标 阅读详情

相关推荐

使用支持向量机SVM进行分类

欢迎关注”生信修炼手册”!SVM, 全称为support vector machines, 翻译过来就是支持向量机。该算法最常见的应用场景就是解决二分类问题,当然也可以用于回归和异常值检...

庐州月光的博客 7624

学习笔记:机器学习之支持向量机(一、最大间隔算法)

SVM

qq_44635691的博客 1524

支持向量机SVM

在很久很久以前的情人节,大侠要去救他的爱人,但魔鬼和他玩了一个游戏魔鬼早桌子上似乎有规律放了两种颜色的球,说:"你用一根棍分开它们.要求:尽量在放更多球之后,仍然使用."让我们引入一个函数f(x),图像如下图所示.将x的每个值映射到其对应的输出.使得所有蓝点在Y轴的输出更大,而红点在Y轴的输出偏小.此时,我们可以使用一条水平线将数据完美分类。此时,求解当a是什么值时,该值会变得很大,当求出a值,在求解w,b值.此时,就变成了极大极小值问题。

djylovehzt的博客 1502

有监督分类:支持向量机分类

1.前言 上一篇主要研究了《最小二乘用于分类》也实现了模式识别。然而,虽然与错误分类率对应的0/1损失的间隔函数是单调非增的,但是L2损失并不是单调非增的,所以使用最小二乘学习法进行模式识别还是有些不自然。这里,再次综述一下支持向量机分类器,关于SVM的话题已经写了近10篇文章了。本文更偏重于介绍支持向量机分类器中所使用的损失概念,并且讨论支持向量机分类器向鲁棒学习进行拓展的方法。 2

沈春旭的博客 7465

支持向量机SVM算法原理

SVM 的英文叫 Support Vector Machine,中文名为支持向量机。它是常见的一种分类方法,在机器学习中,SVM 是有监督的学习模型。 什么是有监督的学习模型呢?它指的是我们需要事先对数据打上分类标签,这样机器就知道这个数据属于哪个分类。同样无监督学习,就是数据没有被打上分类标签,这可能是因为我们不具备先验的知识,或者打标签的成本很高。所以我们需要机器代我们部分完成这个工作,比...

qiu_zhi_liao的博客 1766

【深度学习】全面理解支持向量机SVM(七)

文章目录1.初探-SVM概念2.线性分类器3.最大间隔4.如何求最优分类4.1线性可分-线性不可分类型4.2核函数4.3原始问题的对偶转化4.3.1使用KKT条件 终于到了梳理支持向量机(SVM) 这个大知识点了,好鸡冻!!!因为理解SVM牵涉的内容实在是太多了:分类函数,最大化分类间隔,凸二次规划,拉格朗日乘数法、原始问题与对偶问题的转换,KKT条件,SMO算法等等。。。这些内容其实可归为最优...

florrie 1777

【机器学习笔记七】 支持向量机

一、基本定义 支持向量机是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。它和感知机很像,与感知机最大的不同点是感知机可以有很多个分离超平面,但是支持向量机只有一个最大间隔的分离超平面。 线性可分支持向量机可以理解为能将数据正确划分并且间隔最大的直线。 二、支持向量机的三个模型 (1)当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机。 (2)当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机。 (3)当训练样本线性不可分时,通过核技巧和软间隔最大化,学

SG_teresa's blog 1459

SVM支持向量机

SVM是一种有监督的学习方法,即已知训练点的类别,求训练点与类别之间的对应关系。 从理论基础分析到数学推导,详细介绍SVM算法的算法由来和推导过程。

SJ1820161738的博客 2960

支持向量机通俗导论(理解SVM的三层境界)

支持向量机通俗导论(理解SVM的三层境界) 作者:July、pluskid ;致谢:白石、JerryLead 出处:结构之法算法之道blog。 前言     动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清

Mac Track 33万+

支持向量机(SVM)

综述支持向量机(Support Vector Machines), 是一种二分类模型.也可以通过技巧,转化为多分类模型.比如说libSVM中就使用了one-against-one的策略使得SVM能够扩展到多分类.而libLiner则使用了one-against-rest的策略来扩展SVM. 支持向量机的基本模型: 定义在特征空间上的间隔最大化的线性分类器(间隔最大化也使得SVM区别于感知机

小贝也沉默的博客 3271

SVM为什么采用间隔最大化?SVM为什么将原始问题转换为其对偶问题?

SVM为什么采用间隔最大化?SVM为什么将原始问题转换为其对偶问题? SVM为什么采用间隔最大化? SVM的基本思想就是求解能够正确划分训练数据集并且几何间隔最大的分离超平面,这里的间隔最大化又叫做硬间隔最大化,比较直观的解释是不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。 当训练数据线性可分时,通过硬间隔最大化(hard margin maximization)学习一个线性的分类器,即线性可分支持向量机,又成为硬间隔支持向量机; ...

data+scenario+science+insight 2602

SVM分类算法

1.基本概念 支持向量机(SVM)的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。SVM是用来解决二分类问题的有监督学习算法,在引入了核方法之后SVM也可以用来解决非线性问题。 实际应用中一般要解决觉得是多分类问题,SVM也可以用了来解决多分类,可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一对一组合模式等。 一般SVM有下面三种: 硬间隔支持向量机(线性可分支持向量机):当训练数据线性可分时,可通过硬间隔最大化学得一个线性可分支持向量机。 软间隔支持向量机:当训

words8的博客 1万+

Python + Google AI 自动修复 Sonar Bug 实践

在工作中总会遇到种种不期而至的需求,比如前段时间突然要修复所有 Sonar Bug,涉及各种琐碎的代码风格问题,包括但不限于语法不规范、废弃注释等问题。这些项目都已经持续开发几年了,Sonar 上的问题层出不穷,各种问题已经累积到了上万个,手动修复不但费时费力,而且过程异常枯燥。

子洋 Blog 2414

支持向量机(SVM)

支持向量机(SVM)是一种强大的机器学习算法,广泛应用于分类和回归分析任务。通过深入了解SVM的基本原理、数学推导、核函数选择以及参数调优等方面的知识,我们可以更好地应用SVM解决实际问题。然而,SVM也存在一些局限性,如对大规模数据集不友好、对参数和核函数选择敏感等。未来,随着机器学习技术的不断发展,我们可以期待出现更多更优秀的算法来弥补SVM的不足,并推动机器学习领域的进一步发展。

m0_75013835的博客 3215

X猫免费小说安卓逆向分析

七猫免费小说安卓逆向分析 难度(♥♥) 文章目录七猫免费小说安卓逆向分析 难度(♥♥)1. 查壳2. 抓包分析3. sign1. Frida-rpc2. Native函数分析快3点了. 睡觉~ 白天再继续写! 1. 查壳 我这边使用的是ApkTool, 拖进去显示未加壳。 2. 抓包分析 POST https://xiaoshuo.wtzw.com/api/v1/login/index HTTP/1.1 net-env: 1 channel: qm-cbcpa056_wm is-white: 0 platf

Qiled的博客 4366

自研SSD固件:从零实现固态硬盘底层存储控制系统

本文探讨了自主开发SSD固件的可行性及实现方案。分析表明,虽然NAND Flash控制协议标准化且存在开源参考实现,但开发仍面临FTL设计复杂度高、性能调优等挑战。推荐采用FPGA平台(如Xilinx Zynq-7000)搭配SLC NAND Flash的方案,预计开发周期9-12个月。系统采用分层架构设计,包含主机接口层、FTL层和闪存接口层,核心模块需实现NAND Flash底层驱动、地址映射管理和垃圾回收等功能。文中提供了关键数据结构和基础驱动代码示例,包括页读写、块擦除等操作。该方案着重解决NAND

电脑管家 1879

多分类SVM支持向量机的matlab仿真

此后在二十世纪70-80年代,随着模式识别中最大边距决策边界的理论研究、基于松弛变量(slack variable)的规划问题求解技术的出现 ,和VC维(Vapnik-Chervonenkis dimension, VC dimension)的提出 ,SVM被逐步理论化并成为统计学习理论的一部分。1995年,Corinna Cortes和Vapnik提出了软边距的非线性SVM并将其应用于手写字符识别问题 ,这份研究在发表后得到了关注和引用,为SVM在各领域的应用提供了参考。

FPGA/MATLAB学习教程/源码/项目合作开发 2571

Circos在Windows下的安装教程

这里写自定义目录标题Circos简介安装Perl 的安装Circos安装安装及解压安装Modules测试用例官方文档 Circos简介 (来源官网:http://circos.ca/software/readme/ O.INTRODUCTION部分) Circos is a program for the generation of publication-quality, circularly composited renditions of genomic data and related annot

qq_42318911的博客 1660

机器学习模型3——支持向量机SVM

机器学习模型3——SVM

littleyy666的博客 4648

假期搞定!2026国社科申报AI全攻略指南:从选题到创新,7大核心要点手把手教你!

最后给大家推荐的400多所高校教师都在用的AI平台——高级学术版专业应用平台,集成了国际主流学术应用,以及ChatGPT、Claude、Gemini、Grok等Al大模型的高级版本平台,还有,可以辅助大家高效完成科研和学术写作任务,当然撰写硕博论文,课题、职称论文、国社科、国自然基金本子也是手拿把掐。你的任务是:用高度凝练的方式说明在(某一明确国家战略 / 政策方向,如:中国式现代化、共同富裕、基层治理现代化、数字中国、文化强国、国家安全等)背景下,我究竟要研究一个什么“具体而可操作的问题”。

智能AI让学术科研更容易 623

如何在 SAPGUI 里显示上传到 ABAP 服务器的 PDF 文件

在 SAPGUI 里显示 PDF 文件是实际项目中一个很有用的需求。因为在 SAP 实际业务场景中,有大量的流程会生成 PDF 格式的数据。把这种类型的数据输出显示在 SAPGUI 里,方便最终用户查看。本教程后续步骤,还会向大家介绍如何使用 ABAP 代码生成 PDF 格式的数据。本步骤只是简单的将本地 PDF 文件,上传到 ABAP 系统并显示在 SAPGUI 里。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2684

Python——分类器:(支持向量机SVM)

目录 支持向量机 0. 前言 1. 算法综述 2. 算法原理 3. 基本步骤 3. 分步解释 4. 代码实例 支持向量机 0. 前言 一般来说,我们进行机器学习大致上有三种算法: 1.监督式学习 监督式学习算法包括一个目标变量(也就是因变量)和用来预测目标变量的预测变量(相当于自变量)。通过这些变量,我们可以搭建一个模型,从而对于一个自变量得到对应的因变量。重复训练...

qq_44969615的博客 2864

数据分享|2023年OSM道路数据(全国,分省,分市)

首先这个工作非常有必要的,因为我们正常使用的道路的分类都是基于包括城市快速路、城市主干路、城市次干路这个体系的,大家对于这个分类体系应该更熟悉,但是OSM地图的道路分类又不是完全按这个来的,所以非常有必要重新分类;搞清楚道路类型是我们使用道路数据做很多工作的基础,比如我们在使用道路数据的时候,经常需要预估道路的行车速度,而这个速度一般就是根据道路类型来的,比如高架路的车速肯定就比城市支路快很多!下载分为两种情况,第一种是下载小区域的数据,比如下载一个街区的数据,第二种为下载整个中国范围的。

JData_Engineer的博客 4305

机器学习-04-分类算法-04-支持向量机SVM

本系列是机器学习课程的系列课程,主要介绍机器学习中分类算法,本篇为分类算法与SVM算法部分。

IT从业者的成长历程 2078

Python经典编程习题100例:第32例:相反顺序输出列表

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程100例习题汇总 题目描述: 按相反的顺序输出列表的值。 解题思路: > 利用reverse函数逆序 代码: arr=['f','g','e','b'] print(arr) arr.reverse() print(arr) ...

优快云 精品推荐 1416

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 如何理解卷积神经网络中的权值共享
下一篇: 学习SVM(四) 理解SVM中的支持向量(Support Vector)
zxucver
zxucver 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄11年 2159粉丝 252原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值