首页 > 其他分享 >机器学习——关于SVM的些许问题的个人思考

机器学习——关于SVM的些许问题的个人思考

时间:2024-05-31 17:02:37浏览次数:28  
标签:直线 方程 SVM 求解 些许 超平面 思考 大佬

最近在利用python对机器学习进行实践,因为之前我是先完整的刷了一遍周志华老师的《西瓜书》才开始的实践活动,因此,时间跨度很久,以至于对于SVM的相关理论有些生疏了,甚至关于SVM的一些之前没注意到的问题,现在暴露了出来,所以这篇文章主要是想跟大家分享一下个人关于SVM的一些令人纠结的问题的思考,同时记录一下,如果有误请见谅,欢迎一起探讨。当然,如果这篇文章还能入得了各位“看官”的法眼,麻烦点赞、关注、收藏,支持一下!

对于本文中有些问题的答案,因为本人比较懒,所以我会直接将互联网上一些写的很好的大佬的回答截图附上,同时为了保护各位大佬的知识劳动成果,我也会在文章最后附上本文所涉及的所有大佬的文章的相关网址链接,需要查看大佬们原文的可以自取

讲之前,先附上一张《西瓜书》中的图片(如下),感觉这张图在SVM中可以算是经典中的经典

一、超平面方程是怎么来的?

二、支持向量所在平面方程中的±1是哪里来的?

相信如果将支持向量所在的平面方程写成如下形式,可能更加让人容易接受

很多人疑惑的是±t是如何变成±1的,其实这个说白了很简单,就是一个缩放过程,下面给出:

在这里我们需要明白wb本质上只是一个表示符号,如果今天心情不好,甚至可以把它改成ma

±1的来源是解释明白了,但是可能有人还存在疑惑,缩放之后的曲线,还是原来的曲线吗?我的答案是:是的!!!为了让大家直观感受一下,举个简单的例子:

观察上面的直线方程1和直线方程2,我们不难发现,两者是等价的,即通过描点法将直线方程1和直线方程2分别在同一直角坐标系中画出,两条直线完全重合 

三、在SVM求解的推导过程中怎么从求最小化变成了求最大化?

在SVM的求解过程中是为了求取一个间隔最大的超平面,即支持向量所在的两个平面方程之间的距离最大,而这等价于求解最小化,如下图所示:

 但是在引入拉格朗日乘子法对上述方程进行求解时为啥变成了求最大化,如下图所示:

根据KKT条件可以知道拉格朗日乘子大于等于0,即,再结合给定的限定条件可以知道:

所以:

 由此可知:

结论①: 的最大值必然小于等于的最小值

结论②:

 当wb已知后超平面函数L仍然不确定,因为函数L还受参数α的影响,同时结合上面得到的结论①和结论②,即可将上面的不等式转换成如下形式:

所以我们就可以通过求解 来近似逼近 ​​​​​​​

本文参考借鉴的相关文章有:

SVM决策边界及损失函数_多分类svm的决策边界-CSDN博客

SVM理论基础——原问题及其对偶问题的推导-CSDN博客

标签:直线,方程,SVM,求解,些许,超平面,思考,大佬
From: https://blog.csdn.net/SZX0311/article/details/139353513

相关文章

  • 机器学习python实践中对于决策函数(decision_function)的一些个人思考
    最近在利用python进行实践训练,但是跟着参考书学习到SVM的时候,示例代码里突然出现了一个函数——decision_function(),让我很懵逼,帮助文档里的英文翻译过来说啥决策函数、ovr、ovo之类的,让我整个人更晕了,因为我在理论部分参考的是周志华老师的《西瓜书》,而《西瓜书》中并没有对这......
  • udp的收发包的思考
      在测试radius性能时,想到一个问题,以前tcp报文在ip层处理时,涉及到路由查找,对于tcp协议报文;skb中没有路由缓存,没有关联的sock;且非分片报文;ip_early_demux设置为true;则调用early_demux函数提前在IP层做established状态的sock查找,并负责将sock结构体成员sk_rx_dst的路由缓存赋值......
  • 【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实
    ......
  • 大龄程序员思考
    视觉AI很难做近来一直在从事AI视觉检测方面的工作,外行人可能觉得挺厉害,实际上这钱挣得基本等于搬砖近两年以来,行业不景气、制造业利润上不去,那么在这个产业链中,老板就没有余钱来进行升级改造。老板们是否愿意花钱投入视觉检测,一是老板的认知、二是是否有足够的资金实力;就算最......
  • 从 .NET 到 C++:集合处理的思考
    1.IEnumerable与List的比较在.NET中,IEnumerable和List是两种常用的集合类型,它们有各自的适用场景:IEnumerable<T>:优点:惰性求值,仅在迭代时计算,适用于大数据集或流式数据处理。缺点:不能进行索引访问,没有直接的添加或移除元素的方法。List<T>:优点:支持索引访问,具备......
  • 关于ADT的一些思考
    ADT基本概念1.什么是ADT?抽象数据类型(AbstractDataType,ADT)是将数据对象,数据对象之间的关系和数据对象的基本操作封装在一起的一种表达方式,是用于简化描述抽象算法,分类与评价数据结构,形式描述程序设计语言的类型系统。在ADT设计时,首先要考虑对不可变类型的满足,虽然不可变类型......
  • 人生思考---公司不养闲人
    任何一家公司的辉煌不过20-30年,公司的辉煌皆存在时代属性,从公司到个人,个人的职业生涯同样如此;-------------------------------------------------------------------------------------------------------------------------------学习技术?技术的迭代是快速的,当前是以轻微的技......
  • 【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实
    ......
  • 【思考力】架构师如何保持敏锐度
    很多牛人都是一辈子写日记的,比如曾国藩,比如蒋介石,比如正在努力的你。随时随地把自己的想法思考写出来,能让自己的思维持续保持活跃度,同时也是提升自己的过程。长时间的去做这件事,思维的敏锐度、活跃度比正常人高很多。创新力,创造力,也会有提升以写代想,以写验真,以写促学......
  • 易语言关于微信收款监控软件写法的思考
    想写微信收款监控,正规途径是企业认证申请sdk。可是这个确实是有门槛的,好像每年都要交不少的钱,好像是,具体我也不记得了。如果能够监控收款,就可以利用微信写自动成交工具。很多卖虚拟的,就可以实现自动发卡。所以很多人就想走其他的捷径,看能不能绕过官方,自己监控。最简单的......