机器学习(西瓜书)第 6 章 支持向量机

6.1 算法原理

感知机要求就随便找一个超平面,只要能把正负样本分开就行

但是支持向量机不一样,它认为你不仅得把它分开,而且这个超平面还得尽可能的离正负样本远

6.2 间隔与支持向量

其中w = (wi;w2;...;wd)为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离

二维空间中超平面就是一条直线

样本空间中任意点X到超平面(w,b)的距离可写为:


注意这里是线性可分,下节课是线性不可分的软间隔

这个不是阶跃函数,这个是符号函数,阶跃函数在x<0时函数值为0,不是-1





(另一种推导方法省略了)

这就是支持向量机(Support Vector Machine,简称SVM)的基本型

6.3 对偶问题

注意到主问题本身是1 个凸二次规划问题,能直接用现成的优化计算包求解,但我们可以有更高效的办法.对主问题使用拉格朗日乘子法可得到其"对偶问题"(dual problem).具体来说,对主问题的每条约束添加拉格朗日乘子阿尔法i>=0

若阿尔法i= 0,则该样本将不会在最终模型式子的求和中出现,也就不会对f(x)有任何影响;

若阿尔法i > 0,则必有y_i*f(x_i)= 1,所对应的样本点位于最大间隔边界上,是一个支持向量.这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需

保留,最终模型仅与支持向量有关.

6.4 特征空间映射

在本章前面的讨论中,我们假设训练样本是线性可分的(支持向量机的前提是线性可分),即存在一个划分超平面能将训练样本正确分类.然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面.例如图6.3中的"异或"问题就不是线性可分的

6.5 核函数

6.6 软间隔与正则化

在前面的讨论中,我们一直假定训练样本在样本空间或特征空间中是线性可分的,即存在一个超平面能将不同类的样本完全划分开.然而,在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;退一步说,即便恰好找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的.

缓解该问题的一个办法是允许支持向量机在一些样本上出错.为此,要引入 "软间隔"(soft margin)的概念,如图6.4所示.


其中L0/1是0/1损失函数

障碍:0/1损失函数非凸、非连续,不宜优化!


6.7 支持向量回归

现在我们来考虑回归问题.给定训练样本,希望学得一个形如式(6.7)的回归模型,使得f(x)与g 尽可能接近,w 和b是待确定的模型参数.

对样本(x,y) ,传统回归模型通常直接基于模型输出f(x)与真实输出y 之

间的差别来计算损失,当且仅当f(x)与y 完全相同时,损失才为零.与此不同,支持向量回归(Support Vector Regression,简称SVR)假设我们能容忍f(x)与y 之间最多有e的偏差,即仅当f(x)与y 之间的差别绝对值大于e 时才计算损失.如图6.6所示,这相当于以f(x)为中心,构建了一个宽度为2 e的间隔带,若训练样本落入此间隔带,则认为是被预测正确的.

于是,S V R 问题可形式化为

其中C 为正则化常数


6.8 正则化

在统计学习中,归纳偏好项通过 结构风险 相关的项确定

6.9 如何使用SVM

以回归学习为例

在2e间隔带外面的才记损失

e-不敏感损失函数

支持向量回归SVR

SVR(支持向量回归)和SVM(支持向量机)都是支持向量方法的变体,用于不同类型的机器学习任务。下面是它们之间的主要区别:

1.任务类型:

SVM(支持向量机):用于分类 任务。SVM的目标是找到一个最佳的超平面,以将不同类别的数据分开,最大化类别之间的间隔。

SVR(支持向量回归):用于回归任务。SVR的目标是找到一个函数,该函数能够拟合训练数据,并且在尽可能小的误差范围内进行预测。

2.目标函数:

SVM:在分类问题中,SVM的目标是最小化分类错误,并且最大化分类超平面与最近样本点(支持向量)之间的间隔。

SVR:在回归问题中,SVR的目标是使预测函数与实际目标值之间的误差(在一个指定的容许范围内)最小化,同时尽可能使模型复杂度最低。

3.损失函数:

SVM:使用的是分类损失函数 ,如hinge loss

SVR:使用的是回归损失函数 ,如ε-insensitive loss(ε不敏感损失),它允许预测值和实际值之间的误差在ε范围内被忽略,从而减少了模型对小的误差的敏感性。

4.应用场景:

SVM:通常用于文本分类、图像识别等任务。

SVR:通常用于预测数值数据,如股市预测、房价预测等任务。

5.结果输出:

SVM:输出的是数据点的类别标签。

SVR:输出的是一个连续的数值预测。

尽管SVM和SVR在算法上有很多相似之处(例如,它们都使用支持向量来定义决策边界),但它们的应用场景和目标函数的不同使得它们适用于不同类型的问题。

相关推荐
张人玉6 分钟前
人工智能——猴子摘香蕉问题
人工智能
草莓屁屁我不吃10 分钟前
Siri因ChatGPT-4o升级:我们的个人信息还安全吗?
人工智能·安全·chatgpt·chatgpt-4o
小言从不摸鱼14 分钟前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
AI科研视界35 分钟前
ChatGPT+2:修订初始AI安全性和超级智能假设
人工智能·chatgpt
霍格沃兹测试开发学社测试人社区38 分钟前
人工智能 | 基于ChatGPT开发人工智能服务平台
软件测试·人工智能·测试开发·chatgpt
小R资源1 小时前
3款免费的GPT类工具
人工智能·gpt·chatgpt·ai作画·ai模型·国内免费
artificiali4 小时前
Anaconda配置pytorch的基本操作
人工智能·pytorch·python
酱香编程,风雨兼程4 小时前
深度学习——基础知识
人工智能·深度学习
Lossya5 小时前
【机器学习】参数学习的基本概念以及贝叶斯网络的参数学习和马尔可夫随机场的参数学习
人工智能·学习·机器学习·贝叶斯网络·马尔科夫随机场·参数学习
Trouvaille ~5 小时前
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
图像处理·python·机器学习·numpy·信号处理·时间序列分析·科学计算