机器学习(西瓜书)第 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在算法上有很多相似之处(例如,它们都使用支持向量来定义决策边界),但它们的应用场景和目标函数的不同使得它们适用于不同类型的问题。

相关推荐
deephub18 分钟前
优化注意力层提升 Transformer 模型效率:通过改进注意力机制降低机器学习成本
人工智能·深度学习·transformer·大语言模型·注意力机制
搏博30 分钟前
神经网络问题之二:梯度爆炸(Gradient Explosion)
人工智能·深度学习·神经网络
KGback36 分钟前
【论文解析】HAQ: Hardware-Aware Automated Quantization With Mixed Precision
人工智能
电子手信44 分钟前
知识中台在多语言客户中的应用
大数据·人工智能·自然语言处理·数据挖掘·知识图谱
不高明的骗子1 小时前
【深度学习之一】2024最新pytorch+cuda+cudnn下载安装搭建开发环境
人工智能·pytorch·深度学习·cuda
Chef_Chen1 小时前
从0开始学习机器学习--Day33--机器学习阶段总结
人工智能·学习·机器学习
搏博1 小时前
神经网络问题之:梯度不稳定
人工智能·深度学习·神经网络
databook1 小时前
『玩转Streamlit』--布局与容器组件
python·机器学习·数据分析
GL_Rain1 小时前
【OpenCV】Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
人工智能·opencv·计算机视觉
shansjqun1 小时前
教学内容全覆盖:航拍杂草检测与分类
人工智能·分类·数据挖掘