SVM与核函数

article/2025/8/18 5:53:39

文章目录

        • 核技巧与SVM
        • 核函数本质
        • 线性可分的SVM与硬间隔最大化
        • SVM对偶算法
        • 核技巧
        • 高斯核
        • 多种不同的核函数比较
        • soft margin 问题

核函数
核函数

核技巧与SVM

SVM原本是用来解决二分类的分类模型
它和感知机不同的一点是它取到的分类器是在特征空间上的最大间隔的分类器
而为了解决非线性的分类问题 SVM使用核技巧 所以在SVM中核函数的作用是解决了SVM无法处理非线性可分的问题

核函数本质

1.在实际数据上经常遇到线性不可分的情况 而解决方法是将特征映射到更高维的空间去(为什么低维度线性不可分的情况映射到高维度就可以分了?).
2.凡是遇到线性不可分的情况 一律映射到高维度空间 会出现维度爆炸的情况
3.核函数虽然也是将特征进行从低维到高维的转化 但是是在低维上进行计算 而实际的效果表现在高维上 解决了维度爆炸的问题

线性可分的SVM与硬间隔最大化

对于SVM而言 在特征空间中 分类超平面为
wx+b=0
对应的决策函数 为
f=sign(wx+b)
SVM目标是得到分类超平面 wx+b=0 使得所有样本距离分类超平面距离尽量大 分类样本距离分类超平面的距离可以表示分类预测的确信程度 距离越大 确信度越大

即距离分类超平面距离最近的样本 距离分类超平面的距离尽量大(距离分类超平面最近的样本 即支持向量)

当得到固定的分类超平面 即 w,b 固定的时候 对于任意的x |wx+b|可以相对的表示对于某一个x的分类置信程度 当分类超平面固定的时候 |wx+b| 越大 说明其距离分类超平面越远 例如 w,b 固定 若 |wx1+b| 小于 |wx2+b| 则说明 对于该分类超平面 x2 的分类置信度更高

此时只讨论了样本到分类超平面的距离 没有讨论是否被正确分类 因此需要加上一个限制条件 yi (wxi+b) >0

根据之前SVM的目的 即 最大化间隔

那么对于所有的x
max(min i=1,2…N |wxi+b| )
s.t. yi (wxi+b) >0

对于线性可分的SVM
上述条件可以改写为
maxw,b (mini=1,2…N yi(wxi+b) )
(上述式子可以想象成 给定一组 w,b 该w,b 满足 yi (wxi+b) >0 对于所有的x 存在一个yi(wxi+b) 的最小值 记录下该最小值 对于所有的满足条件的w,b 选择最小值最大的一种 w,b )

但是上述式子有一个问题 即 成比例的更改w和b 分类超平面是不会改变的 但是 最小距离却会改变 假设此时我们找到了一组 w,b 使得该w,b 在所有x上的最小值最大 但是如果不对w和b的大小做限制 这是不可能实现的 因为一旦发现了这样的w和b 我们将w,b修改为 2w和2b 那么 mini=1,2…N yi(wxi+b) 也就变成原来的两倍 虽然找到的超平面还是原来的超平面 但是 这样 maxw,b (mini=1,2…N yi(wxi+b) )是不可能能求出最优的w和b的

通过上述直观的感觉可以发现 找不出最优的w和b的根源是不限制w和b的大小 明明已经找到最优超平面 就是无法输出最优的w和b 那么解决方法自然就是现在w和b的大小 很自然的限制一个向量的大小不改变该向量的方法就是对向量进行归一化
即w和b分别处以|w| 进行归一化
此时 目标函数变成
maxw,b (mini=1,2…N yi(wxi+b)/||w|| )

这就是几何间隔,之所以叫做几何间隔 是因为其自身的几何意义
假定我们已经拥有这样一个平面
wTx+b=0 求 distance(x,w,b)
在这里插入图片描述
假设x和x’’ j均为平面上的点 那么
wTx=-b 同理 wTx‘’=-b
所以wT(x-x’’)=0 说明w垂直于平面上任意直线 即 w为平面的法向量
而点到平面的距离为 (x-x) 投影到垂直于平面的方向 即w的方向
在这里插入图片描述

(下述转化过程很容易忘记)
推导至此 线性可分的SVM 优化目标函数 即最大化间隔 也就是使得几何间隔最大
将几何间隔记做 γi=yi(wxi+b)/||w||
最小几何间隔 γ=min γi

max w,b γ
s.t. yi(wxi+b)/||w||>=γ
(接下来的一步转化很关键)


http://chatgpt.dhexx.cn/article/9nGM1Jhd.shtml

相关文章

核函数(核技巧)

核技巧Kernel trick 背景及含义: 对于 原始样本空间内或许不存在能正确划分两类样本的超平面 问题,考虑 将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。 令 ϕ ( x ) \phi(x) ϕ(x)表示将x映射后的特征向量…

了解核函数

1、核函数定义: 核函数包括线性核函数、多项式核函数、高斯核函数等,其中高斯核函数最常用,可以将数据映射到无穷维,也叫做径向基函数(Radial Basis Function 简称 RBF),是某种沿径向对称的标量…

核函数

对于优化问题: 的求解需要计算这个内积,而如果输入样本线性不可分的话,我们采取的方法是通过函数映射将输入样本映射到另外一个高维空间并使其线性可分。 以库克定律为例(http://zh.wikipedia.org/zh-cn/%E9%9D%99%E7%94%B5%E5%8A%9B)&#x…

什么是核函数?如何理解?

个人理解,核函数的功能就是从低维度的空间向高维度空间转换的函数, 因为在低维空间不可以线性分类的问题到高维度空间就可以线性分类的。 其求法为 低维空间的点映射到高维空间的点后,两个点的内积 就是核函数。 ~~~~~~~~~~~~~~~~~~~~~~~~…

你知道什么是核函数吗

目录 一、常用核函数:二、核函数特点:三、选择核函数的方法:四、核函数方法实施步骤:五、核函数在模式识别中的应用:六、核函数方法原理: 核函数K(kernel function)就是指K(x, y) &…

kernel核函数是什么、用来干什么 及其详细推导

在说核函数之前,我们先说说映射及其作用. 如果在当前空间对数据类别不好使用线性函数进行划分,则通过一个函数φ( x)将数据点从当前空间映射到另一空间去(映射后的空间叫特征空间,通常是更高维的空间,当然不是绝对)以方…

核函数(Kernel function)(举例说明,通俗易懂)

已知有一组向量,可用线性函数去探索其是否具有线性关系,若数据之间是非线性呢? 非线性数据是指只有利用非线性模型才能更好的预测。但非线性问题往往不好求解,所以希望用解线性分类问题的方法解决这个问题。所采取的方法是进行一…

Linux笔记(5):库文件

1、库文件 库是一组预先编译好的方法的集合。 Linux系统存储的库的位置一般在/lib和/usr/lib。库的头文件一般被存储在/usr/include下货其子目录下。 库有两种: (1)静态库,命令规则:libxxx.a (2&#…

vs2019添加库文件

vs2019添加库文件 环境:windows10,64位,vs2019 vs安装路径:D:\visual_studio 需要的材料:头文件,编译好的库文件 方法一 以GLFW为例,找到IDE或者编译器的**/lib和/include文件夹&#xff0…

【Linux基础】静态库和共享库(如何自定义库文件?)

文章目录 前言一、库文件的基本知识1.库文件分类2.库文件命名 二、如何自定义静态库?1.静态库简介2.具体流程(详细步骤)3.静态库缺点 三、如何自定义共享库?1.共享库简介2.具体流程(详细步骤)3.共享库优点 四、静态库与共享库区…

Linux 系统上的库文件生成与使用

1.库文件 库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在:/lib 和 /usr/lib。 在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在 /usr/include 下或其子目录下。 库有两种,一种是静态库,其…

库文件、静态库(lib)与动态库(dll)的生成与使用

静态库 程序编译一般需经预处理、编译、汇编和链接几个步骤。在应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库…

库文件的生成和使用

一、库文件 库是一组预先编译好的函数方法的集合 Linux上库文件的存放位置: /lib和/usr/lib 库分为两种:静态库和共享库 Linux上静态库标识(libxxx.a),共享库(libxxx.so) Windows上静态库标识(.lib)&a…

3、库文件

1、什么式库文件: 库文件是预先编译好的方法的集合。(相当于一大堆的可执行文件) 存放头文件的标准目录:/usr/include 存放库文件的标准目录:/usr/lib 比如: printf函数的实现在库文件中 libcs.so 声明在/usr/inc…

库文件:静态库与动态库的生成和使用

0.引言 当进行C语言的编写时,想要查看标准库的某个函数是怎样实现的,比如 stdio.h 里的 printf 函数,跳转后只能看见函数声明,而无法跳转到函数的定义处,为什么无法查看函数的定义,这就涉及到库文件使用。…

【C++】静态库和动态库文件的生成和使用

前言 文章目录 前言库文件静态库的生成hello.hhello.cmain.c 动态库的生成GCC命令相同时,会先执行.a文件,还是会先执行.so文件?静态库与动态库的区别使用静态库的使用动态库的使用 总结 本文主要讲解了静态库和动态库的生成,以及.…

标准库文件

工艺库有db文件和lib文件,db是打不开的,lib是打得开的。 以反向器为例,时序弧上的延迟由两个因素影响,负载越大,延迟越大;输入转换时间越大,延迟越大。 随着工艺更加先进,线性模…

linux的库文件

文章参考链接:https://www.cnblogs.com/tankblog/p/6780146.html 一、什么是库文件? 本质上来说,库文件就是可执行代码的二进制形式,可以被操作系统载入内存中执行 Linux操作系统支持的函数库分为静态库和动态库,动态…

linux库文件

windows静态库文件扩展名.lib 动态库文件扩展名.dll linux 静态库.a 动态库.so 都是将函数封装在一起编译后供自己或他人调用,好处是编译后的库文件看不带源代码,可以保密 linux库文件一般存在 /lib 和/usr/lib 64位下也有可能存在 /usr/lib64 下…

Linux系统上库文件的生成与使用(静态库和动态库)

目录 1、什么是库文件? 2、静态库的生成与使用 2.1、生成 .o 文件 2.2、创建静态库 2.3、使用静态库 3、动态(共享)库的生成与使用 3.1、生成 .o 文件 3.2、生成动态库文件 3.3、使用动态库 4、静态库与动态库的区别 1、什么是库文…