前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >机器学习-20:MachineLN之SVM(2)

机器学习-20:MachineLN之SVM(2)

作者头像
MachineLP
发布于 2022-05-09 06:55:05
发布于 2022-05-09 06:55:05
2220
举报
文章被收录于专栏:小鹏的专栏小鹏的专栏

你要的答案或许都在这里:小鹏的博客目录

我想说:

其实想一下从上学到毕业,学了那么多有多少是真实用到的呢?但是这些事潜移默化影响你的东西,其实我们学习的并不是真实的会这些知识(并且有很多知识现在过时),而是我们学习的是一种快速学习一门知识的能力,要的就是这个快字;怎么一个快字了得,对不光快还要稳;直到今天才真正了解一些教育的含义,并不是死记硬背,而是举一反三,并不是拿来主义,而是针对特定问题特定场景特定解决;并不是随波逐流,而是扬起自己的帆远航;并不是svm,而是一种境界;

其实很多时候我们学东西是学习的一种思维方式;怎么说呢?就好比客户谈需求,他们总是下意识的将人的思维加进去,想当然的就说这件事情很简单啊,怎样怎样....那么这就是缺乏AI的思维方式,要和人的思维区分开来,无论是做AI还是像用AI的,这种AI思维方式还是应该有的;否则就是很难交流;整天就是解释这些问题;

接着上一节,svm原理:machineLN之SVM(1)

这要处理三个问题:

(1)SVM软间隔最大化;

(2)SVM核技巧;

(3)SVM求解对偶问题的SMO算法;

(4)SVM使用梯度下降损失函数应该怎么设计;

上一节已经将SVM的流程大致走了一遍,但是真实应用的数据往往不是严格线性可分的或者说他就根本不是线性可分的;针对这两个问题有不同的解决方法:

1. SVM软间隔最大化

记得上节提到的硬间隔吗?相对的就是软间隔,软间隔就是针对某些样本点不能满足函数间隔大于等于1的约束条件,或者说不是严格意思上线性可分的;看一下软间隔的支持向量(有了硬间隔的支持向量,软间隔的支持向量也不难理解)。

解决这个问题:可以对每个样本点引进一个松弛变量,约束条件变为:

那么针对这种线性不可分的样本,我们的策略是:

参考上一篇,我们同样引入学习的对偶算法(dual algorithn) :拉格朗日函数;转为对偶问题来解决:

最后整理可得完整算法流程:

现在我们再回到软间隔的支持向量的图上:

若a*<C,则约束

,支持向量xi恰好落在间隔边界上;

若a*<C,0<约束<1,则分类正确,xi在间隔边界与分离超平面之间;

若a*<C,约束=1,则xi在分离超平面上;

若a*<C,约束>1,则xi位于分离超平面误分一侧;

对于线性不可分引入软间隔是一种方式,下面介绍另外一种方法:核技巧;

2. 核函数(解决线性不可分的问题还可以通过引入核函数来解决,这里可以联想到神经网络是怎么解决线性不可分问题的呢?它又是否可以引入核函数?那么激活函数是不是可以理解为核函数呢?真实越来越有意思了)

核函数的原理:将一个非线性可分的数据 映射到另一个空间 变为线性可以分;原思维方式解决不了,那我们就换一种思维方式解决;看一下图示:

或者看一下动态图:(是不是你看到了从二维的线性不可分到三维的线性可分)

核函数: 设X是输入空间,H为特征空间,如果存在一个映射映射函数:

使得对所有属于X的x,z,函数K(x,z)满足条件:

看到这里应该考虑下面一个问题:

只有判定核函数是不是正定核函数才满足以上条件,正定?可以回顾一下高数了;

设X包含于Rn,K(x,z)为定义在X*X上的对称函数,如果对任意xi属于X,i=1,2,... ,m,  K(x,z)对应的Gram矩阵:

是半正定矩阵,则称K(x,z)是正定核。

加入核函数的svm优化问题可定义为:

下面又开始有意思了:看一下求解alpha核b的SMO算法:

3. SVM求解对偶问题的SMO算法(手撕SMO)

SMO算法是一种启发式算法,其基本思路是:如果所有变量的解都满足此最优化问题的KKT条件(Karush-Kuhn-Tucker conditions),那么这个最优化问题的解就得到了。因为KKT条件是该最优化问题的充分必要条件。否则,选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题。这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使得原始二次规划问题的目标函数值变得更小。重要的是,这时子问题可以通过解析方法求解,这样就可以大大提高整个算法的计算速度。子问题有两个变量,一个是违反KKT条件最严重的那一个,另一个由约束条件自动确定。如此,SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的。

下面用手撕一下吧:

4. SVM使用梯度下降求解参数,损失函数应该怎么设计;

在感知机中我们也提到过,使用梯度下降法求解需要保证参数连续可导,那么看一下这个损失函数,hinge loss function: 统计学习一书中称为合页损失函数;则线性支持向量机原始最优化问题等价于最优化问题:

原始优化问题:

引入hinge loss的损失函数:

下一节:使用SMO求解是SVM参数源码 和 使用梯度下降求解SVM参数代码;

推荐阅读:

1. 机器学习-1:MachineLN之三要素

2. 机器学习-2:MachineLN之模型评估

3. 机器学习-3:MachineLN之dl

4. 机器学习-4:DeepLN之CNN解析

5. 机器学习-5:DeepLN之CNN权重更新(笔记)

6. 机器学习-6:DeepLN之CNN源码

7. 机器学习-7:MachineLN之激活函数

8. 机器学习-8:DeepLN之BN

9. 机器学习-9:MachineLN之数据归一化

10. 机器学习-10:MachineLN之样本不均衡

11. 机器学习-11:MachineLN之过拟合

12. 机器学习-12:MachineLN之优化算法

13. 机器学习-13:MachineLN之kNN

14. 机器学习-14:MachineLN之kNN源码

15. 机器学习-15:MachineLN之感知机

16. 机器学习-16:MachineLN之感知机源码

17. 机器学习-17:MachineLN之逻辑回归

18. 机器学习-18:MachineLN之逻辑回归源码

19. 机器学习-19:MachineLN之SVM(1)

20. 机器学习-20:MachineLN之SVM(2)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
支持向量机SVM原理
【数之道】支持向量机SVM是什么,八分钟直觉理解其本质_哔哩哔哩_bilibili
zhangjiqun
2024/12/14
1960
支持向量机SVM原理
【机器学习与实现】支持向量机SVM
图中深蓝色线便是决策边界,也称分离超平面;两条虚线之间宽度叫做间隔 (margin)。支持向量机的优化目标为——间隔最大化。
Francek Chen
2025/01/23
2030
【机器学习与实现】支持向量机SVM
SVM系列(三):手推SVM
在前面的两篇文章SVM系列(一):强对偶性、弱对偶性以及KKT条件的证明以及SVM系列(二):核方法概述---正定核以及核技巧中,我们引入了一些基本概念,这些概念对理解SVM有着很重要的作用。
Cyril-KI
2022/07/29
7390
SVM系列(三):手推SVM
机器学习-19:MachineLN之SVM(1)
说起SVM很多人都会感觉头疼,无非就是公式多一个,其实很多时候你真是用的话,都不用你手动自己实现,你是在学习的一种机器学习的思维方式,就要比为什么要提出svm?svm解决了什么问题?svm中的kernel又是想解决线性svm解决不了的问题?svm的优势在哪里?就好比生活中不缺乏美,只是缺少发现美的眼睛,在学习中发现问题的能力及其重要,当你问题多了很多人会感觉你烦,但是没关系,解决了就会柳暗花明;并且要时常问自己从中学到了什么?再遇到问题是否可以拿来主义?还是可以从中借鉴?
MachineLP
2022/05/09
2720
机器学习-19:MachineLN之SVM(1)
彻底搞懂机器学习SVM模型!
自从大半年前接触到SVM以来,感觉一直没怎么把SVM整明白。直到最近上的《模式识别》课程才仿佛打通了我的任督二脉,使我终于搞清楚了SVM的来龙去脉,所以写个博客作个总结。
算法进阶
2023/08/28
1.2K0
彻底搞懂机器学习SVM模型!
二、机器学习面试之有必要手推SVM吗?
上篇文章中,我们介绍了SVM的基本思想,并将其推导成了一个数学问题,今天的任务,就是解决如何求解这个数学问题,同时,回答上篇文章中提出的第二个问题: 如果将正负样本分开的超平面不存在,那么如何找一个尽
用户1332428
2018/03/09
9820
二、机器学习面试之有必要手推SVM吗?
《机器学习》-- 第六章 支持向量机
支持向量机(Support Vector Machine,SVM)是一种经典的二分类模型,基本模型定义为特征空间中最大间隔的线性分类器,其学习的优化目标便是间隔最大化,因此支持向量机本身可以转化为一个凸二次规划求解的问题。
fireWang
2020/07/31
7900
《机器学习》-- 第六章 支持向量机
用一张图理解SVM的脉络
SVM在之前的很长一段时间内是性能最好的分类器,它有严密而优美的数学基础作为支撑。在各种机器学习算法中,它是最不易理解的算法之一,要真正掌握它的原理有一定的难度。在本文中,SIGAI将带领大家通过一张图来理清SVM推导过程的核心过程。
SIGAI学习与实践平台
2018/08/07
2.9K0
用一张图理解SVM的脉络
【技术分享】机器学习之SVM - 理论知识
导语:本文用一些简单的例子来解释了SVM是什么,然后通过SVM中最大间隔、核函数、软间隔、SMO四个关键部分,依次进行数学推导和解释。
腾讯云TI平台
2019/09/11
1.1K0
机器学习 学习笔记(9)支持向量机
函数间隔,对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(xi,yi)的函数间隔为:
2018/09/03
7020
机器学习 学习笔记(9)支持向量机
机器学习之SVM原理
相信了解机器学习的同学都知道,SVM的“完美强迫症”使得其在各大模型中,几乎是一个“统治性”的地位。但是也不是那么绝对啦,SVM比较耗时,因此不适合那些超大样本。
汪毅雄
2019/10/14
8640
从零推导支持向量机 (SVM)
AI 科技评论按,本文作者张皓,目前为南京大学计算机系机器学习与数据挖掘所(LAMDA)硕士生,研究方向为计算机视觉和机器学习,特别是视觉识别和深度学习。
AI科技评论
2019/10/31
8930
从零推导支持向量机 (SVM)
Lecture8- SVM支持向量机 之核方法 + 软间隔 + SMO 算法
假设我们现在有一个输入属性(input attribute)x,有时候我们会将这个x给映射到一组新的集合上去,
TeeyoHuang
2019/05/27
8570
我是这样理解--SVM,不需要繁杂公式的那种!(附代码)
支持向量机(Support Vector Machine,SVM)是众多监督学习方法中十分出色的一种,几乎所有讲述经典机器学习方法的教材都会介绍。关于SVM,流传着一个关于天使与魔鬼的故事。
mantch
2019/07/30
1.1K0
我是这样理解--SVM,不需要繁杂公式的那种!(附代码)
理解SVM的三层境界(三)
第三层、证明SVM 说实话,凡是涉及到要证明的东西.理论,便一般不是怎么好惹的东西。绝大部分时候,看懂一个东西不难,但证明一个东西则需要点数学功底,进一步,证明一个东西也不是特别难,难的是从零开始发明创造这个东西的时候,则显艰难。 话休絮烦,要证明一个东西先要弄清楚它的根基在哪,即构成它的基础是哪些理论。OK,以下内容基本是上文中未讲到的一些定理的证明,包括其背后的逻辑、来源背景等东西,还是读书笔记。 本部分导述 3.1节线性学习器中,主要阐述感知机算法; 3.2节非线性学习器中,主要阐述mercer定理;
IT派
2018/03/29
1.4K0
理解SVM的三层境界(三)
关于SVM,面试官们都怎么问
持续准备面试中。。。准备的过程中,慢慢发现,如果死记硬背的话很难,可当推导一遍并且细细研究里面的缘由的话,面试起来应该什么都不怕,问什么问题都可以由公式推导得到结论,不管问什么,公式摆在那里,影响这个公式的变量就在那,你问什么我答什么。。共勉!!
NewBeeNLP
2020/08/26
1.1K0
关于SVM,面试官们都怎么问
机器学习算法复习手册——SVM
本手册整理自机器学习各相关书籍、网络资料、个人的理解与实践。总体编写宗旨: ①一看就懂; ②用20%的文字,涵盖80%的内容。 至于剩下的20%,一般属于比较偏、难的部分,建议自行查询相关书籍资料学习。而只用20%的文字,则代表手册里面几乎没有废话,也只有极少数必要的例子。
beyondGuo
2019/12/27
5540
机器学习算法复习手册——SVM
机器学习之深入理解SVM
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/54984251
大黄大黄大黄
2018/09/14
6470
机器学习之深入理解SVM
【Python机器学习实战】感知机和支持向量机学习笔记(二)
理论上对于线性可分的数据,采用梯度下降对SVM进行求解和学习已能满足基本要求,但考虑到非线性数据,以及问题求解的复杂程度等问题,将SVM原始问题转化为其对偶形式能够更好地解决问题,因此转化为对偶形式是必要的,总结下来,转化为对偶形式有以下好处:
冬夜先生
2021/09/08
6360
超全总结!一文囊括李航《统计学习方法》几乎所有的知识点!
如果大家对机器学习算法有所涉猎的话,想必你一定看过《统计学习方法》这本书,里面介绍了统计学中的一些基本算法和知识点,本文进行了详细的总结。
崔庆才
2019/07/12
3.5K0
超全总结!一文囊括李航《统计学习方法》几乎所有的知识点!
相关推荐
支持向量机SVM原理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档