《机器学习》(周志华) 第6章 支持向量机

6.1 间隔和支持向量

给定一个训练集,最基本的想法就是找一个超平面划分他们。
在这些超平面中,正中间的显然“容忍性”最好,即“鲁棒”性

超平面可用以下式子来描述:
w`x + b = 0

任意x到平面距离可写为:
r = |w'x+b| / ||w||
假设这个面能正确分类,即对于y=1,w'x+b>0;y=-1,w`x+b<0。
放在实际里,可能不仅是>0 <0,如>=1与<=-1。

距离超平面最近的几个点使=1和=-1成立,这些点对应的向量称为支持向量(SV)
两个异类SV到平面距离之和为 r = 2/ ||w||,称为间隔(margin)

想要找到最大间隔的超平面,就是找w和b使得r最大,即:max 2/||w||

即min 1/2 * ||w||^2,s.t. yi (w`xi + b) >= 1。(※)
※式便是SVM的基本型

6.2 对偶问题

※式是一个凸二次规划问题,可以用现成包解决。
但有更高效方法:拉格朗日乘子法——得到对偶问题。
具体过程见p123-p124。

最终得到一个性质:训练完成后,大部分训练样本对计算过程是没用的,即最终效果只与支持向量有关。

在问题规模正比于样本数情况下,如何具体求解?

高效算法SMO

具体过程见p124-125

6.3 核函数

不是线性可分咋办?如异或问题。
答:映射到高维空间

这时应用6.1与6.2的方法计算时会出现问题:
特征维数太大,计算困难

引出核函数。见p127

若知道怎么映射,即φ的具体形式,就能写出核函数k()的具体形式。
但通常不知道φ,那么怎么确定k()呢?

定理6.1(核函数定理)。p128

由此可见,“核函数选择”成为了SVM的最大变数,核函数选择的好性能就好。
p128 6.1列出了常用的核函数。

核函数的计算准则:核函数的线性组合,直积、型都是核函数。

6.4 软间隔与正则化

之前我们一直假定训练样本在样本空间或者特征空间是线性可分的。
但是,核函数难找。
退一步说,即使找到了,恰好找到一个,也是有很大的过拟合嫌疑的。

缓解策略:允许SVM在一些样本上出错。
引进“软间隔”概念

即允许某些样本不满足约束 yi(w'xi + b) >= 1。(※※)
同时,不满足的应该尽可能少。
即优化目标为:
min 1/2 * ||w||^2 + C∑ bool_func(yi(w'xi + b) - 1) (※※※)
其中bool_func称为0/1损失函数。
定义见p130 ,但实际上我们自己是能写出来的。。。

显然,C为无穷大时,可理解成迫使所有样本满足(※※)

然而,bool_func性质不太好(非凸,非连续),使得优化目标不易求解。所以实际常用一些其他函数来代替bool_func,如p130 6.31-6.33三个函数。

若采用6.31的hinge损失: hinge(z) = max(0,1-z),并引入“松弛变量”
就是常用的“软间隔支持向量机”

经过复杂的计算推导过程(p131-132)。。
我们会发现:
软间隔SVM最终模型也是只和SV有关,即hinge函数使训练保持了稀疏性

可以发现,如果使用6.33作为bool_func,几乎得到了第三章中的对率回归模型。

注:博主第三章看的不太明白,因为数学有些多,之后要找机会重刷一遍。

总而言之,无论使用什么模型,基本形式都会是※※※形式。
前一项称作“结构风险”
后一项称作“经验风险”
C用来对两者进行折中。

从这个角度来说,※※※这样的式子称为“正则化问题”,前一项称为正则化问题,C称为正则化常数。

6.5 支持向量回归(SVR)

考虑回归问题,即希望得到一个类似w'x+b = 0这样的模型。

与传统回归不同,传统回归当且仅当y与f(x)相同时,才认为损失为0
SVR假设我们能容忍f(x)与y之间最多有ε的偏差,即只有误差大于ε才计算损失,落到中间宽度为2ε的间隔带里不计算损失。

经过复杂的数学推导。。。(p134-136),得到解:式6.53

SVR的支持向量是间隔带之外的向量,即其解仍具有稀疏性。

若考虑特征映射? 就是式6.56。

6.6 核方法

回顾SVM和SVR,我们发现学得的模型总能表示成核函数的线性组合。

实际上会有一个更普遍的结论:
定理6.2 表示定理 p137

意味着对于一般的损失函数和正则化项,优化问题的最优解都可以表示为k的线性组合。

这说明核函数真的很厉害。。

6.7 阅读材料

SVM直接掀起了统计学习浪潮

SVM如何提高效率,应用于大规模数据一直是研究热点。

SVM是针对二分类设计的,对多分类要进行专门的推广。

核函数太关键,“多核学习”借助集成学习思想,使用多个核函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是泛化能力?泛化能力和过拟合之间有什么关系? 泛化能力是指模型在新的、未见过的数据上的表现能力。模型的泛化能力与其对训练数据的拟合程度有关,通常来说,过拟合的模型泛化能力较差。 2. 什么是交叉验证?交叉验证的作用是什么? 交叉验证是一种通过将数据集分成若干个子集来进行模型评估的方法。具体地,将数据集分成k个子集,每个子集都轮流作为测试集,其余子集作为训练集,重复k次,最终得到k个模型的评估结果的平均值。交叉验证的作用是提高模型评估的可靠性和泛化能力。 3. 留出法、k折交叉验证和留一法的区别是什么?它们各自适用于什么情况? 留出法是将数据集分成两部分,一部分作为训练集,另一部分作为测试集。留出法适用于数据集较大的情况。 k折交叉验证是将数据集分成k个子集,每个子集都轮流作为测试集,其余子集作为训练集,重复k次,最终得到k个模型的评估结果的平均值。k折交叉验证适用于数据集较小的情况。 留一法是k折交叉验证的一种特殊情况,即将数据集分成n个子集,每个子集都作为测试集,其余子集作为训练集,重复n次。留一法适用于数据集较小且样本数较少的情况。 4. 为什么要对数据进行预处理?数据预处理的方法有哪些? 数据预处理可以提高模型的表现,并且可以减少过拟合的风险。数据预处理的方法包括:标准化、归一化、缺失值填充、特征选择、特征降维等。 5. 什么是特征选择?特征选择的方法有哪些? 特征选择是指从所有特征选择出对模型预测结果有重要贡献的特征。特征选择的方法包括:过滤式方法、包裹式方法和嵌入式方法。其,过滤式方法是基于特征间的关系进行特征选择,包裹式方法是基于模型的性能进行特征选择,嵌入式方法是将特征选择嵌入到模型训练

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值