搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
秋刀鱼在做梦
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Hunyuan-DiT: A powerful multi-resolution diffusion transformer with fine-grained chinese understand
2
uni-app-商品分类导航、 双向绑定_uniapp 分类
3
Java加密:常见哈希算法总结_java hash算法
4
AIGC教程:Stable Diffusion精进,如何训练特定画风LoRA模型?_stable diffusion + lora 训练一个动漫风格模型
5
数字时钟设计VIVADO软件Basys3开发板verilog语言电子表_用system verilog 实现在basys3上的数字钟实验代码文件
6
Docker Desktop + Open WebUI + Ollama_>docker run -d -p 3000:8080 --add-host.docker.inte
7
command not find pip 解决办法_command not found: pip
8
Dify vs Langchain:AI应用开发的全面分析_dify langchain
9
【SQL Server安装绊脚石】排除报错的终极指南_安装程序在运行作业updateresult
10
遭遇裁员,如何渡过心理危机?_裁员心理危机
当前位置:
article
> 正文
超详细支持向量机知识点,面试官会问的都在这里了
作者:秋刀鱼在做梦 | 2024-06-20 15:33:06
赞
踩
在硬间隔支持向量机中,落在最大间隔边界上的样本就是支持向量 ( ) a. 正确 b. 错
(图片付费下载自视觉中国)
作者 | 韦伟
来源 | 知乎
导语:持续准备面试中,准备的过程中,慢慢发现,如果死记硬背的话很难,可当推导一遍并且细细研究里面的缘由的话,面试起来应该什么都不怕,问什么问题都可以由公式推导得到结论,不管问什么,公式摆在那里,影响这个公式的变量就在那,你问什么我答什么,共勉!
一. 简单概括一下SVM
SVM 是一种二类分类模型。它的基本思想是在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类,具体来讲,有三种情况(不加核函数的话就是个线性模型,加了之后才会升级为一个非线性模型):
当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
二. SVM 为什么采用间隔最大化(与感知机的区别):
当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分开。 感知机利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。 线性可分支持向量机利用间隔最大化求得最优分离超平面,这时,解是唯一的。 另一方面,此时的分隔超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强。
三. SVM的目标(硬间隔):
有两个目标: 第一个是使间隔最大化,第二个是使样本正确分类,由此推出目标函数:
稍微解释一下,w是超平面参数,目标一是从点到面的距离公式化简来的,具体不展开,目标二就相当于感知机,只是把大于等于0进行缩放变成了大于等于1,为了后面的推导方便。 有了两个目标,写在一起,就变成了svm的终极目标:
四. 求解目标(硬间隔):
从上面的公式看出,这是一个有约束条件的最优化问题,用拉格朗日函数来解决。
上式的拉格朗日函数为:
在满足Slater定理的时候,且过程满足KKT条件的时候,原问题转换成对偶问题:
先求内部最小值,对w和b求偏导并令其等于0可得:
将其代入到上式中去可得到
此时需要求解
,利用SMO(序列最小优化)算法:
SMO算法的基本思路是每次选择两个变量
和
,选取的两个变量所对应的样本之间间隔要尽可能大,因为这样更新会带给目标函数值更大的变化。 SMO算法之所以高效,是因为仅优化两个参数的过程实际上仅有一个约束条件,其中一个可由另一个表示,这样的二次规划问题具有闭式解。
五. 软间隔:
不管直接在原特征空间,还是在映射的高维空间,我们都假设样本是线性可分的。虽然理论上我们总能找到一个高维映射使数据线性可分,但在实际任务中,寻找一个合适的核函数核很困难。此外,由于数据通常有噪声存在,一味追求数据线性可分可能会使模型陷入过拟合,因此,我们放宽对样本的要求,允许少量样本分类错误。这样的想法就意味着对目标函数的改变,之前推导的目标函数里不允许任何错误,并且让间隔最大,现在给之前的目标函数加上一个误差,就相当于允许原先的目标出错,引入松弛变量
,公式变为:
那么这个松弛变量怎么计算呢,最开始试图用0,1损失去计算,但0,1损失函数并不连续,求最值时求导的时候不好求,所以引入合页损失(hinge loss):
函数图张这样:
理解起来就是,原先制约条件是保证所有样本分类正确
,现在出现错误的时候,一定是这个式子不被满足了,即
,衡量一下错了多少呢?因为左边一定小于1,那就跟1比较,因为1是边界,所以用1减去
来衡量错误了多少,所以目标变为(正确分类的话损失为0,错误的话付出代价):
但这个代价需要一个控制的因子,引入C>0,惩罚参数,即:
可以想象,C越大说明把错误放的越大,说明对错误的容忍度就小,反之亦然。当C无穷大时,就变成一点错误都不能容忍,即变成硬间隔。实际应用时我们要合理选取C,C越小越容易欠拟合,C越大越容易过拟合。
所以软间隔的目标函数为:
其中:
六. 软间隔求解:
与硬间隔类似:
上式的拉格朗日函数为:
在满足Slater定理的时候,且过程满足KKT条件的时候,原问题转换成对偶问题:
先求内部最小值,对w,b和
求偏导并令其等于0可得:
将其代入到上式中去可得到,注意
被消掉了:
此时需要求解
,同样 利用SMO(序列最小优化)算法。
七. 核函数:
为什么要引入核函数:
当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。而引入这样的映射后,所要求解的对偶问题的求解中,无需求解真正的映射函数,而只需要知道其核函数。核函数的定义:K(x,y)=<ϕ(x),ϕ(y)>,即在特征空间的内积等于它们在原始样本空间中通过核函数 K 计算的结果。一方面数据变成了高维空间中线性可分的数据,另一方面不需要求解具体的映射函数,只需要给定具体的核函数即可,这样使得求解的难度大大降低。
用自己的话说就是,在SVM不论是硬间隔还是软间隔在计算过程中,都有X转置点积X,若X的维度低一点还好算,但当我们想把X从低维映射到高维的时候(让数据变得线性可分时),这一步计算很困难,等于说在计算时,需要先计算把X映射到高维的的ϕ(x),再计算ϕ(x1)和ϕ(x2)的点积,这一步计算起来开销很大,难度也很大,此时引入核函数,这两步的计算便成了一步计算,即只需把两个x带入核函数,计算核函数,举个列子一目了然(图片来自:从零推导支持向量机):
个人对核函数的理解: 核函数就是一个函数,接收两个变量,这两个变量是在低维空间中的变量,而核函数求的值等于将两个低维空间中的向量映射到高维空间后的内积。
八. 如何确定一个函数是核函数:
验证正定核啥的,咱也不太懂,给出:
所以不懂,就用人家确定好的常见核函数及其优缺点:
九. 如何选择核函数:
当特征维数 d 超过样本数 m 时 (文本分类问题通常是这种情况), 使用线性核;
当特征维数 d 比较小. 样本数 m 中等时, 使用RBF核;
当特征维数 d 比较小. 样本数 m 特别大时, 支持向量机性能通常不如深度神经网络。
十. 关于支持向量的问题:
1.先说硬间隔:
先看KKT条件
支持向量,对偶变量 αi > 0 对应的样本;
线性支持向量机中, 支持向量是距离划分超平面最近的样本, 落在最大间隔边界上。
支持向量机的参数 (w; b) 仅由支持向量决定, 与其他样本无关。
2. 再说软间隔:
先看kkt条件:
经过SMO后,求得
。
对于任意样
,
若满足
,进一步地,
如图:
十一. 谈谈SVM的损失函数:
此处说的是软间隔:
先看软间隔的基本型形式:
稍微做一点变化:
这样写是为了符合标准的损失函数+正则化的样子,其中, 第一项称为经验风险, 度量了模型对训练数据的拟合程度; 第二项称为结构风险, 也称为正则化项, 度量 了模型自身的复杂度. 正则化项削减了假设空间, 从而 降低过拟合风险. λ 是个可调节的超参数, 用于权衡经验风险和结构风险.
其中:
这样的话给上式乘以mc,就会变成上上式了。
十二. 为什么SVM对缺失数据敏感?
这里说的缺失数据是指缺失某些特征数据,向量数据不完整。 SVM 没有处理缺失值的策略。 而 SVM 希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。 缺失特征数据将影响训练结果的好坏。
十三. SVM的优缺点:
优点:
由于SVM是一个凸优化问题,所以求得的解一定是全局最优而不是局部最优。
不仅适用于线性线性问题还适用于非线性问题(用核技巧)。
拥有高维样本空间的数据也能用SVM,这是因为数据集的复杂度只取决于支持向量而不是数据集的维度,这在某种意义上避免了“维数灾难”。
理论基础比较完善(例如神经网络就更像一个黑盒子)。
缺点:
二次规划问题求解将涉及m阶矩阵的计算(m为样本的个数), 因此SVM不适用于超大数据集。(SMO算法可以缓解这个问题)
只适用于二分类问题。(SVM的推广SVR也适用于回归问题;可以通过多个SVM的组合来解决多分类问题)
十四:参考文献:
https://zhuanlan.zhihu.com/p/49331510
https://zhuanlan.zhihu.com/p/43827793
https://zhuanlan.zhihu.com/p/31652569
原文链接:
https://zhuanlan.zhihu.com/p/76946313
(*本文为 AI科技大本营转载文章,转
载请联系原作者)
◆
精彩推荐
◆
2019 中国大数据技术大会(BDTC)历经十一载,再度火热来袭! 豪华主席阵容及百位技术专家齐聚,15 场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读,深入解析热门技术在行业中的实践落地。
【早鸟票】
与
【特惠学生票】
限时抢购,扫码了解详情!
推荐阅读
中文预训练ALBERT模型来了:
小模型登顶GLUE,Base版模型小10倍、速度快1倍
100多次竞赛后,他研发了一个几乎可以解决所有机器学习问题的框架
王霸之路:从0.1到2.0,一文看尽TensorFlow“奋斗史”
伯克利人工智能研究院开源深度学习数据压缩方法Bit-Swap,性能创新高
NLP被英语统治?打破成见,英语不应是「自然语言」同义词
TensorFlow2.0正式版发布,极简安装TF2.0(CPU&GPU)教程
肖仰华:
知识图谱构建的三要素、三原则和九大策略 | AI ProCon 2019
AI落地遭“卡脖子”困境:
为什么说联邦学习是解决良方?
限时早鸟票 | 2019 中国大数据技术大会(BDTC)超豪华盛宴抢先看!
你点的每个“在看”,我都认真当成了喜欢
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/740245
推荐阅读
article
百万年薪挖
了
个
P8
程序员
,
难道是
“
水货
”
?...
点击蓝色
“
程序猿DD
”
关注我回复
“
资源
”
获取独家整理的学习资料!>>阿里云8月最新优惠
,
点击查看<<大厦新搬进来一家创业...
赞
踩
article
Flutter
之
fvm
管理
版本
_
fvm
试用...
flutter -
fvm
_
fvm
试用
fvm
试用 对...
赞
踩
article
大
数据
-
计算
引擎
-
Spark
(三)
:
RDD
编程【离线分析;替代
MapReduce
编程,使用
RDD
(弹...
大
数据
-
计算
引擎
-
Spark
:
Spark
编程_非
结构化
数据
计算
引擎
有哪些非
结构化
数据
计算
引擎
有哪些 ...
赞
踩
article
Adaptive
AutoSAR
标准介绍...
关于自适应
AutoSAR
平台自适应autosar 平台实现了adaptive applications的运营环境。它提...
赞
踩
article
git
取消
commit
...
git
如何撤销上一次
commit
操作1.第一种情况:还没有push,只是在本地
commit
git
reset --sof...
赞
踩
article
Centos
和
Ubuntu
的
介绍与区别_
ubantu
centos
...
1.什么是
centos
CentOS(Community Enterprise Operating System)是脱胎于...
赞
踩
article
IntelliJ
IDEA
2022.3
安装
+部分
配置
+
设置
中文(自用)_idea
2022.3
...
安装
Create Desktop Shortcut:创建桌面快捷方式。Update context menu:是否将从文...
赞
踩
article
小米
智能
插座接入
HomeKit
_
加载
项
商店
没有
miot
...
小米
智能
插座接入
HomeKit
安装home assistance功能快捷键合理的创建标题,有助于目录的生成如何改变文本的...
赞
踩
article
重新定义
大
模型
的
学
习方式:为什么算力和
数据
胜过代码?_
学
普通
算法
好
还是
大
模型
算法
好
...
在快速发展的人工智能领域中,
大
模型
已成为创新的基石。从智能对话到编程辅助系统,这些
模型
的潜力似乎无所不能。然而,在国内,...
赞
踩
article
多分类
标签
(
one
-
hot
向量)
_
one
-
hot
标签
...
参考:https://blog.csdn.net/huangbo1221/article/details/7967179...
赞
踩
article
地级市
面板
数据
(
2006
-
2019
)四:碳
排放
(处理好的
面板
数据
,
stata
或
excel
版本)_20...
地级市
面板
数据
(
2006
-
2019
)四:碳
排放
(处理好的
面板
数据
,
stata
或
excel
版本)下载地址:
地级市
面板
数据
(...
赞
踩
article
python
单测框架之
pytest
常见用法
_
pytest
使用
...
pytest
是
python
的单测框架,
使用
灵活,插件丰富,以下是
pytest
常用的插件
_
pytest
使用
pytest
使用
...
赞
踩
article
Element
UI的
el
-
table
-
column
组件不支持
v
-
show
指令_
el
-
table
-c...
在
v
ue中想通过
v
-
show
控制
el
ement-ui中的
el
-
table
显示隐藏某一列,但是不起作用。_
el
-
table
...
赞
踩
article
Kerberos
安全认证-连载10-
Hive
Kerberos
安全配置及访问_
idea
连接 ker...
在
kerberos
服务端执行如下命令,创建
Hive
服务的
kerberos
Princial主体,然后将服务主体写入ke...
赞
踩
article
第0-(1)章-
DRL
的
细碎笔记-
计算
图、
训练
以及
基本
逻辑
...
本文主要讲解一些学习深度强化学习
的
细碎笔记:包括
计算
图、神经网络
的
训练
以及
深度强化学习
的
基本
逻辑
~内容比较基础,有不对
的
...
赞
踩
article
SIMULINK
模型自动
生成
Verilog
代码_
simulink
生成
verilog代码...
SIMULINK
模型自动
生成
Verilog
代码方法_
simulink
生成
verilog代码
simulink
生成
veril...
赞
踩
article
Jedis
常见异常汇总_
caused
by:
redis
.
clients
.
jedis
.excepti...
Jedis
虽然使用起来比较简单,但是如果不能根据使用场景设置合理的参数(例如连接池参数),不合理的使用一些功能(例如Lu...
赞
踩
article
P1656
炸
铁路
...
如果y的追溯值大于了x的时间戳,也就是y的追溯值在x之后,并且,y追溯到的这个点与x一定不连通,因为如果连通,那么y就会...
赞
踩
article
Flutter
IOS
打包
上架
踩坑_
ios
伪装
上架
...
Flutter
IOS
打包
上架
踩坑_
ios
伪装
上架
ios
伪装
上架
...
赞
踩
article
【
制作
1
00
个
unity
游戏
之27】使用
unity
复刻经典
游戏
《
植物
大战
僵尸
》
,
制作
属于自己
的
植物
大...
植物
大战
僵尸
系列每隔一段时间
,
总是会在不经意间突然爆火
,
比如之前
的
植物
大战
僵尸
随机
版
,
还有最近火出圈
的
植物
大战
僵尸
杂交版...
赞
踩
相关标签
flutter
android
ios
大数据
Spark
RDD
Scala
网络
git
centos
ubuntu
linux
intellij-idea
java
intellij idea
经验分享
学习
人工智能
深度学习
标签
数据仓库
big data
sql
statistics