支持向量机推导之r||w||=1的限制转化

news2024/11/13 9:39:17

支持向量机推导之r||w||=1的限制转化

很多同学肯定是学过支持向量机的,也可能大致的理解了支持向量机这个算法,我想大部分人在学习这个算法的时候,对于推导过程有一步应该是不太理解。
我先简要介绍一下SVM,SVM的核心思想在于找到一个多维空间的超平面,可以最好的将我们的样本分隔开来。

超平面大家都知道,数学表达式如下:

在这里插入图片描述
那么最好的将我们的样本分隔开来怎么解释?
看下面一张图:
我们可以发现,有很多超平面,或者说线,都可以把我们的样本都正确的分隔开来,但如果从直观的效果靠,是不是红色的那一条是效果最好的,那么这一条怎么找到呢?
在这里插入图片描述

下面我们再看一个概念,样本到超平面的距离公式:
在这里插入图片描述
上式就是样本到超平面的距离公式,这就不推导了。
有了这个距离公式,再结合我们的常识,我们知道,当我们每次有了一个超平面,是不是可以求得每个样本到超平面的距离,那么研究者根据先验经验认为,每一个超平面求得之后呢,都会存在一个样本到超平面的最小距离,研究者们发现,如果这个最小距离越大,超平面的分类效果越好,于是得到了我们的SVM模型,即求解一个超平面,可以将样本都正确分类,且样本到超平面的最小距离最大。
由此,我们得到了支持向量机模型的数学推导:

注: 下面的 γ \gamma γ是样本到超平面的最小距离

那么就到了本次博客内容真正的核心问题了,上面的数学表达是如何转化为下面的数学表达的:
在这里插入图片描述
很多同学肯定看过这样的解释:
在这里插入图片描述
但是其实这个解释,我认为对于很多人可能不是很能看得懂,从数学推导的角度上来说,这个推到是没有说服力的,下面我来给大家推到一下:

  1. 先回到最开始的数学表达
    在这里插入图片描述

2.然后,我们可以把上述问题转化为如下问题:

在这里插入图片描述

2.然后令 γ \gamma γ/||w||=1,然后就转化好了
在这里插入图片描述

那么我们现在来探讨为什么令 γ \gamma γ/||w||=1不影响结果,令 γ \gamma γ/||w||=1其实是限制w的取值空间,也就是,现在我们取值的w满足使得 γ \gamma γ/||w||=1。w的取值空间被限制了,不再是可以随机的取值了,所以我们需要从满足条件的w中寻找最优结果。但是,这个限制再上面优化公式里其实并没有体现出来,博主再看svm求解的过程中发现,如果使用拉格朗日乘子法求解上述最优化问题,上述不等式约束的等式会被满足,也就是求得的w和b一定会满足使得 γ \gamma γ/||w||=1的情况。我觉得这是一个乌龙。只是因为我们的优化方法会自动地满足等式,也就是满足 γ \gamma γ/||w||=1,但如果优化的方法求得的结果可能不满足等式,我认为上述优化公式是不足够的。

所以我觉得真实的优化问题应该是下面这个:
在这里插入图片描述
但是因为通过拉格朗日乘子法求解问题是,在忽略了下面约束等式的情况下,求得的结果却满足约束等式,也就是,没有其约束的情况求得的结果,那么其所搜索的w的集合是更大的,即包括了约束之后的w取值集合,这个时候它求解的结果却满足了等式,那么这结果一定是最优解。
在这里插入图片描述
我举个例子啊:
你现在在摘桃子,一共有一百个果园,要你摘出最好吃的桃子,但是这个最好吃的桃子必须是在某个特定的果园,比如10号果园,如果你摘出最好吃的果子不在十号果园,则失败,但是你事先不知道最好吃的果子必须来自十号果园。
结果,你现在把一百个果园的果子都尝了,且你发现最好吃的果子就在10号果园。圆满的完成了任务。

大概就是这个意思,本来只想让你在10号果园找最好吃的果子,结果你去了所有的果园,结果发现最好吃的果子就在十号果园。所以SVM模型其实我觉得是一个乌龙,也可能这个被人给证明过了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

getCurrentInstance

https://blog.csdn.net/m0_46318298/article/details/130726043 注:$是在vue中所有实例中都可用的一个简单约定,这样做会避免和已被定义的数据,方法,计算属性产生冲突。

Leetcode-每日一题【203.移除链表元素】

题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6输出:[1,2,3,4,5] 示例 2: 输入&#…

nginx白名单配置

在有得项目中,我们会希望端口只有特定的用户可以访问,这时候就需要配置nginx的白名单,接来下展示一下白名单的配置和应用 vi /etc/nginx/nginx.conf server {listen 80;listen [::]:80;server_name _;root /usr/share/…

springboot第29集:springboot项目详细

public static LoginUser getLoginUser():该行声明了一个公共的静态方法 getLoginUser(),它的返回类型是 LoginUser。try:开始一个 try 块,用于处理接下来的代码中可能发生的异常。return (LoginUser) getAuthentication().getPri…

STL好难(6):queue队列的使用

目录 1.queue的介绍 2.queue的使用: 3.queue的模拟实现: 4.deque的介绍: 5.deque的函数接口和底层原理: 6.deque的优缺点: 1.queue的介绍 queue的文档内容 1. 队列是一种容器适配器,专门用于在FIFO上…

二次-InsCode Stable Diffusion 美图活动一期

模型: AbyssOrangeMix2 - SFW_Soft NSFW_AbyssOrangeMix2_sfw.safetensors 参数配置: 正:Mountains and seas, people 负:NSFW, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochr…

C# .NET 如何调用 SAP RFC 接口

1.分析传参结构 SAP 传参格式对应 .NET 参数格式 SAP 参数.NET 参数参数类型import(导入)——关联类型为数据元素Param单个变量参数import(导出)——关联类型为结构体Struct结构体tableTable表 下面是 SAP 对应参数类型: 2.web.config 配置 配置文件需要客户端…

Python学习笔记(十六)————异常相关

目录 (1)异常概念 (2)异常的捕获 ①异常捕获的原因 ②捕获常规异常 ③捕获指定异常 ④捕获多个异常 ⑤ 捕获异常并输出描述信息 ⑥捕获所有异常 ⑦异常else ⑧异常的finally (3)异常的传递 &#xff08…

自动化测试 selenium 篇

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录 什么是自动化测试?Selenium 介绍Selenium 是什么Selenium 特点工作原理 seleniumJava环境搭建ChromeJava1.下载ch…

uni-app:删除默认title

去除前: 可以看到有两个title 去除后: 可以看出就只有手机顶部的title了 "navigationStyle": "custom",//删除默认title

堆的向上与向下调整

目录 一、堆 1、概念 2、性质 二、向上调整 三、向下调整 四、建堆的比较 1.向上调整建堆 2.向下调整建堆 3.比较 五、总结 一、堆 1、概念 如果有一个关键码的集合K {k0k1,k2,…kn-1},把它的所有元素按完全二叉树的顺序存储方式存…

怎么学习PHP错误处理和调试? - 易智编译EaseEditing

学习PHP错误处理和调试技术可以通过以下步骤: 理解错误类型: 了解PHP中常见的错误类型,如语法错误、运行时错误和逻辑错误等。学习它们的特点和常见原因,以便更好地定位和解决问题。 错误报告设置: 在开发环境中&am…

【Java基础学习打卡14】Java注释

目录 前言一、什么是注释二、注释的重要性三、单行、多行注释1.单行注释2.多行注释 四、文档注释1.文档注释2.JDK官网文档3.javadoc生成文档 五、注释建议总结 前言 本文介绍Java注释,它是我们在Java编程中必不可少的。Java注释有单行注释、多行注释和文档注释。对…

BUUCTF Web CyberPunk WriteUp

想直接查看payload的点这里 前言 二次注入(Second-Order Injection)是指攻击者在应用程序中注入恶意数据,然后在稍后的操作或不同的上下文中再次使用该恶意数据,导致安全漏洞。它通常发生在数据库查询、数据导出、报告生成等过程…

基于springboot博客论坛系统设计与实现(源码+文档LW+数据库+报告)

HBLOG 是一个博客论坛网站,分为游客端和管理员端。游客端主要有注册登录,查看文章,发表撰写文章,管理自己的文章,评论文章等功能;而管理员端主要有登录,查看近期数据,查看日志&#…

如何做好迭代回顾 2/4

事故根因分析:上集 北京某软件开发公司,专门为电信供应商做定制软件开发,比如发短信做些推广活动等。公司希望做过程改进,我首次与公司老板访谈: 我:过程改进主要帮助管理层更好达到公司业务目标。你们自己…

365天深度学习训练营-第T5周:运动鞋品牌识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 我的环境: 语言环境:Python3.10.7编译器:VScode深度学习环境:TensorFlow2 一、前期工作: 1、导入…

【活动】如何在工作中管理情绪

写在前面 近期发生的新闻热点再度引发公众对稳定情绪和心理健康的关注。有时候我们遇到的最大的敌人,不是运气也不是能力,而是失控的情绪和口无遮拦的自己。如何在工作中保持稳定的情绪?谈谈我的看法。 愤怒的危害 说到愤怒这种情绪&#xf…

基于深度学习的高精度鸟类目标检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度鸟类目标(鹦鹉(Crested Myna)、麻雀(Eurasian Tree Sparrow)、黑头文鸟(Chestnut Munia)、白领翡翠(Collared Kingfisher)、太阳鸟…

【C语言】进阶指针(二)—>函数指针与回调函数

目录 前言: 一、函数指针 代码1分析: 代码2分析: 二、函数指针数组 三、指向函数指针数组的指针 四、回调函数(模拟实现库函数qsort) (一)void*类型指针的作用 (二&#xf…