机器学习Task3-SVM(支持向量机)
SVM
1.名词解释
1.1 SVM
支持向量机(support vector machines)是一种二类分类模型。基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。(感知机追求最大程度正确划分,最小化错误,很容易造成过拟合。支持向量机追求大致正确分类的同时,找间隔最大也一定程度上避免过拟合。)
1.2 支持向量
线性可分时,即硬间隔时,支持向量位于间隔边界的样本。使用软间隔时,支持向量或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。模型的学习只与支持向量有关,所以叫做支持向量机。
1.3 分离超平面
将正负样本大致分开的超平面,在线性可分中,超平面是一条直线,在非线性可分中,超平面是一个高维的平面。
1.4 间隔
超平面离支持向量的距离。距离越大,表示分类预测的正确性和确信度越大。
间隔最大化:对训练数据找到几何间距最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负样本实例点分开,而且对最难的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。
2.模型
2.1 线性可分支持向量机
线性可分支持向量机是支持向量机的基础模型,使用的是硬间隔最大化,学习算法如下:
(1)构造并求解约束最优化问题
(2)由此得到分离超平面
分类决策函数
2.2 线性支持向量机
若解线性分类问题出现一些特异点导致不能完全线性可分,此时可以引入惩罚项使间隔尽量大的情况,同时使误分类点的个数尽量小。
线性不可分的线性支持向量机的学习问题变成了如下的凸二次规划问题(原始问题):
2.3 非线性支持向量机
生活上大多是线性不可分的例子,这时可以使用非线性支持向量机。此方法在线性支持向量机的基础上引入了核技巧,通过核函数隐式将输入特征映射到高维的特征空间,然后在新空间里用线性分类学习方法从训练数据中学习分类模型。
常见的核函数有线性核、高斯核和多项式核。
3.训练过程
- 将原问题转化为对偶问题(已推出)
- 用SMO算法求解对偶问题(凸二次规划问题)
- 确定分离超平面和决策函数
4.测试过程
决策函数判断wx+b,大于0,记为正例,反之为负例。
5.问题
1.什么是支持向量
线性可分时,即硬间隔时,支持向量位于间隔边界的样本。
2.支持向量机的推导
3.SVM的损失函数
计算最小间距和惩罚项。
4.SVM的核函数有哪些,核函数的作用是什么
常见的核函数有线性核、高斯核和多项式核。核函数可以将输入变量隐式由低维映射到高维,而不需要知道映射后的具体形式。
5.硬间隔和软间隔
硬间隔没有惩罚项,软间隔有,适合有特异点的线性基本可分的例子。
6.SVM可以做多分类吗,怎么做
可以,创建多个SVM,投票法决定最终类别。
7.SVM可以做回归吗,怎么做
可以,暂时未了解其中原理。
8.SVM的对偶问题,为什么要把原问题转化为对偶问题
将原问题化成对偶问题,有利于进行原问题的求解。
9.KKT限制条件有哪些
KKT出现在强对偶理论中,用于计算偏置b。
,或者,或者。
6.总结
7.参考资料
1.李航-统计学习方法
2.浙江大学-研究生机器学习课程
3.感知机和SVM的区别