模式识别 —— 第六章 支持向量机(SVM)与核(Kernel)

模式识别 —— 第六章 支持向量机(SVM)与核(Kernel)

文章目录

  • 模式识别 —— 第六章 支持向量机(SVM)与核(Kernel)
    • 硬间隔(Hard-Margin)
    • 软间隔(Soft-Margin)
    • 核kernel
    • 对偶问题
      • 硬间隔优化问题的对偶转变
      • 考点
      • 软间隔优化问题的对偶转变

开始之前先推荐一个个人感觉把SVM讲的特别好的课程视频(尤其是转对偶问题那一部分),浙大胡浩基老师手写板书讲的,真的草履虫都能看懂!

点一下 嗖~就过去

硬间隔与软间隔区别如下:

硬间隔
完全分类准确,只在数据是线性可分离的时候才有效。其损失函数不存在,损失值为0。但它对异常值非常敏感,无法很好的泛化。

软间隔
要避免这些问题,最好使用更灵活的模型。目标是尽可能在保持最大间隔宽度和限制间隔违例之间找到良好的平衡,这就是软间隔分类。

所以软间隔允许一定量的样本分类错误;优化函数包括两个部分,一部分是点到平面的间隔距离,一部分是误分类的损失个数;C是惩罚系数,误分类个数在优化函数中的权重值;权重值越大,误分类的损失惩罚的越厉害。

硬间隔(Hard-Margin)

我们想找到一个超平面让其线性可分,数学表述如下:
在这里插入图片描述
a式子与b式子合并可得到下面的统一表示。

现在我们想让在这个分界线(面)附近的点(即支持向量)离它尽量远一点。由点到直线距离公式来使得Margin最大。
在这里插入图片描述
然后我们想办法将最大化Margin转化为下面这个优化问题:
在这里插入图片描述
怎么转化的呢?首先我们有两个事实条件:
在这里插入图片描述
之后:
在这里插入图片描述

此时,对于非支持向量那就相当于 ∣ w T x 0 + b ∣ > 1 \lvert w^Tx_0+b \rvert >1 wTx0+b>1
把y写进去来代替绝对值符号的作用就可以得到新的限制条件 y ( w T x 0 + b ) ≥ 1 y(w^Tx_0+b) \geq 1 y(wTx0+b)1

最后我们为了后续求导方便,我们可以在目标函数处多加一个 1 2 \frac{1}{2} 21,如下:

在这里插入图片描述
这样就变成了一个凸优化的问题,即要么无解、要么只有一个极值。因此局部极值就是最值。

软间隔(Soft-Margin)

在这里插入图片描述
SVM对训练集里面的每个样本 ( x i , y i ) (x_i,y_i) (xi,yi)引入了一个松弛变量 ξ i ≥ 0 ξ_i≥0 ξi0,使函数间隔加上松弛变量大于等于1,也就是说条件变量改为如下:

y i ( w ∙ x i + b ) ≥ 1 − ξ i yi(w∙xi+b)≥1−ξi yi(wxi+b)1ξi

加入松弛变量 ξ i ξ_i ξi后,损失函数就需要改写为:
m i n 1 2 ∣ ∣ w i ∣ ∣ 2 + C ∑ i = 1 n ξ i min\frac12||w_i||^2+C\sum_{i=1}^nξ_i min21∣∣wi2+Ci=1nξi

s . t . y i ( w T x i + b ) ≥ 1 − ξ i ( i = 1 , 2 , . . . m ) s.t. \quad y_i(w^Tx_i+b)≥1−ξ_i(i=1,2,...m) s.t.yi(wTxi+b)1ξi(i=1,2,...m)

ξ i ≥ 0 ( i = 1 , 2 , . . . m ) ξ_i≥0(i=1,2,...m) ξi0(i=1,2,...m)

这里,C>0为惩罚参数,可以理解为我们一般回归和分类问题正则化时候的参数。C越大,对误分类的惩罚越大,C越小,对误分类的惩罚越小。

也就是说,我们希望 1 2 ∣ ∣ w i ∣ ∣ 2 \frac12||w_i||^2 21∣∣wi2尽量小,误分类的点尽可能的少。C是协调两者关系的正则化惩罚系数。在实际应用中,需要调参来选择。

核kernel

对于在低维线性不可分的数据,在映射到了高维以后,就变成线性可分的了。例如:
在这里插入图片描述

左边是在二维空间的投影,我们没办法找到一条直线将两个类别区分开。但是如果我们将二维空间映射到三维空间的话,我们就可以找到一个超平面在三维中线性可分。

就像是三体中狄奥伦娜能进入四维空间后轻易的取人脑子一样。

维度越高线性可分就越容易。但是映射成的高维维度是爆炸性增长的,这个计算量实在是太大了,而且如果遇到无穷维的情况,就根本无从计算了。这就要用到我们的核函数了。

核函数的价值在于它虽然也是将特征进行从低维到高维的转换,但核函数好在它在低维上进行计算,而将实质上的分类效果(利用了内积)表现在了高维上,这样避免了直接在高维空间中的复杂计算,真正解决了SVM线性不可分的问题。

线性核函数
线性核函数(Linear Kernel)其实就是內积,如下:
K ( x , y ) = x ∙ y K(x,y)=x∙y K(x,y)=xy

多项式核函数
多项式核函数(Polynomial Kernel)是线性不可分SVM常用的核函数之一,公式如下:
K ( x , y ) = ( γ x ∙ y + r ) d K(x,y)=(γx∙y+r)^d K(x,y)=(γxy+r)d

高斯核函数
高斯核函数(Gaussian Kernel),在SVM中也称为径向基核函数(Radial Basis Function,RBF),它是非线性分类SVM最主流的核函数。libsvm默认的核函数就是它。公式如下:

K ( x , y ) = e − ∣ ∣ x − y ∣ ∣ 2 2 σ 2 K(x,y)=e^{-\frac{||x-y||^2}{2\sigma ^2}} K(x,y)=e2σ2∣∣xy2

对偶问题

这部分建议看视频部分的讲解,讲的真的超级棒!

这里我们采用的是拉格朗日乘子将其转化成对偶问题,思路如下:

在这里插入图片描述

硬间隔优化问题的对偶转变

按照上述思路,首先我们将限制条件转换成 a ( x ) ≤ 0 a(x) \leq 0 a(x)0的形式:
在这里插入图片描述
之后我们构建拉格朗日常数:
在这里插入图片描述
因为是求最值,所以我们求导进行回代:
在这里插入图片描述

考点

这是我们这学期的期末考试题,老师提前透露的。也是类似上面的推导,只不过要简单一点再。

就是如果目标函数不是 w T x i + b w^Tx_i + b wTxi+b而是 w T x i w^Tx_i wTxi,请进行对偶问题的转换。其实是变简单了,不用对b进行求导回代了。解法如下:

在这里插入图片描述
可恶啊,背面画着图透过来了。算了,凑合看吧,其实结果是一样的。

软间隔优化问题的对偶转变

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5653.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

52LeetCode刷题_LeetCode刷题手册

虽然刷题一直饱受诟病,不过不可否认刷题确实能锻炼我们的编程能力,相信每个认真刷题的人都会有体会。现在提供在线编程评测的平台有很多,比较有名的有 hihocoder,LintCode,以及这里我们关注的 LeetCode。 LeetCode收录…

Spring 注解和 XML 配置文件重复定义 Bean,会怎样?

作者:明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。 热门文章推荐…

iPhone屏幕适配(之屏幕尺寸)

Device screen size 各设备屏幕尺寸 DeviceDimensions (portrait)iPhone 14 Pro Max430x932 pt (1290x2796 px 3x)iPhone 14 Pro393x852 pt (1179x2556 px 3x)iPhone 14 Plus428x926 pt (1284x2778 px 3x)iPhone 14390x844 pt (1170x2532 px 3x)iPhone 13 Pro Max428x926 pt (…

Element Plus 实例详解(七)___Typography 排版

Element Plus 实例详解(七)___Typography 排版 目录 一、前言 二、搭建Element Plus试用环境 1、搭建Vue3项目(基于Vite Vue) 2、安装Element Plus 三、Element Plus Typography 排版功能试用 1、字号 2、行高 3、Font-fam…

C语言:位运算符----与(),或(|),非(~),异或(^),左移(<<)和右移(>>)

C语言 基础开发----目录 一、位运算符----简介 位运算符 就是按二进制位进行运算。 C语言中位运算符主要包括六种&#xff0c;具体如下&#xff1a; 与(&)&#xff0c;或(|)&#xff0c;非(~)&#xff0c;异或(^)&#xff0c;左移(<<)和右移(>>) 位运算符含…

【C++】类和对象(三)

类和对象&#xff08;三&#xff09; 拷贝构造函数&#xff1a; 当我们想要将一个已确定的类变量的值拷贝给另外一个相同类型的类变量&#xff0c;有什么快捷的方法吗&#xff1f; 就相当于定义了一个int类型的i10&#xff0c;想将i复制给一个刚初始化的遍历j&#xff0c;in…

2022国赛E题完整成品文章数据代码模型--小批量物料的生产安排

基于LSTM循环神经网络的小批量物料生产安排分析 摘要 某电子产品制造企业面临以下问题&#xff1a;在多品种小批量的物料生产中&#xff0c;事先无法知道物料的 实际需求量。企业希望运用数学方法&#xff0c;分析已有的历史数据&#xff0c;建立数学模型&#xff0c;帮助企业…

优化测试生命周期行之有效的三种方法

确保软件质量和按时交付产品的最有效方法是什么&#xff1f;对于公司来说&#xff0c;无缺陷地为客户带来价值是一件重要的事情。随着软件开发生命周期变得越来越复杂&#xff0c;测试可能成为拖慢整个过程的瓶颈。为了加速它&#xff0c;创建了组织可以采用的多种策略和方法。…

python面向对象编程

&#x1f42c;在本次的博客当中我们要学习的是在python语言当中的面向对象的编程。我们之前学过的C语言是面向对象的编程。面向过程&#xff0c;其实就是面向着具体的每一个步骤和过程&#xff0c;把每一个步骤和过程完成&#xff0c;然后由这些功能方法相互调用&#xff0c;完…

Go语言精修(尚硅谷笔记)第十七和十八章

十七、反射 17.1 基本介绍 1 ) 反射可以在运行时动态获取变量的各种信息, 比如变量的类型(type)&#xff0c;类别(kind) 2 ) 如果是结构体变量&#xff0c;还可以获取到结构体本身的信息(包括结构体的字段、方法) 3 ) 通过反射&#xff0c;可以修改变量的值&#xff0c;可以…

react脚手架

一、首先了解一下react脚手架 .xxx脚手架: 用来帮助程序员快速创建一个基于xxx库的模板项目 a.包含了所有需要的配置&#xff08;语法检查、jsx编译devServer…&#xff09; b.下载好了所有相关的依赖 c.可以直接运行一个简单效果react提供了一个用于创建react项目的脚手架库:…

LLaMA:Open and Efficient Foundation Language Models

LLaMA&#xff1a;Open and Efficient Foundation Language ModelsIntroductionApproachPre-training DataArchitectureIntroduction 在大规模数据下训练的大模型&#xff0c;已经展示了很好的表现&#xff0c;当模型足够大的时&#xff0c;模型会出现一个涌现的能力&#xff…

Chapter8.3:控制系统校正的根轨迹法

该系列博客主要讲述Matlab软件在自动控制方面的应用&#xff0c;如无自动控制理论基础&#xff0c;请先学习自动控制系列博文&#xff0c;该系列博客不再详细讲解自动控制理论知识。 自动控制理论基础相关链接&#xff1a;https://blog.csdn.net/qq_39032096/category_10287468…

区块链技术之密码学

密码学是研究编制密码和破译密码的技术科学&#xff0c;研究密码变化的客观规律&#xff0c;应用于编制密码以保守通信秘密的&#xff0c;成为编码学&#xff1b;应用于破译密码以获取通信情报的&#xff0c;称为破译学&#xff0c;总称密码学。在区块链中重要问题之一就是区块…

锁 一、锁的分类 1.1 可重入锁、不可重入锁 Java中提供的synchronized&#xff0c;ReentrantLock&#xff0c;ReentrantReadWriteLock都是可重入锁。 重入&#xff1a;当前线程获取到A锁&#xff0c;在获取之后尝试再次获取A锁是可以直接拿到的。 不可重入&#xff1a;当前…

Eclipse下载使用手册

Eclipse下载使用手册 目录Eclipse下载使用手册Eclipse的介绍与安装Eclipse简介Eclipse的下载Eclipse的解压Eclipse的介绍与安装 Eclipse简介 Eclipse 是一个开放源代码的&#xff0c;基于 Java 的可扩展开发平台。Eclipse官方版是一个集成开发环境(IDE)&#xff0c;可以通过安…

MySQL-自带工具介绍

目录 &#x1f341;mysql &#x1f341;mysqladmin &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;MySQL专栏&#xff1a;MySQL专栏地址 MySQL数据库不仅提供了数据库的服务器端应用程序&#xff0c;同时还提供了大量的客户端工具程序&#xff0c;如mysql&a…

Linux安装MySQL5.7MySQL8.0

Linux安装MySQL5.7一、设置yum源并安装1.1 配置rpm仓库1.1.1 更新密钥1.1.2 安装mysql yum库1.2 使用yum进行安装1.3 启动并配置开机启动二、配置MySQL2.1 获取初始密码2.2 登录MySQL2.3 修改root密码2.3.1 设置复杂密码(默认)2.3.2 设置简单的用户密码2.4 授权root用户远程登陆…

蓝桥杯第十四届校内赛(第三期) C/C++ B组

一、填空题 &#xff08;一&#xff09;最小的十六进制 问题描述   请找到一个大于 2022 的最小数&#xff0c;这个数转换成十六进制之后&#xff0c;所有的数位&#xff08;不含前导 0&#xff09;都为字母&#xff08;A 到 F&#xff09;。   请将这个数的十进制形式作…

力扣二叉树题目专题解析

题目分类大纲如下&#xff1a; 二叉搜索树 前面介绍的树&#xff0c;都没有数值的&#xff0c;而二叉搜索树是有数值的了&#xff0c;二叉搜索树是一个有序树。 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它的根结点的值&#xff1b;若它的右子树不空&#x…