机器学习校招手册SVM篇

本文作者:马晓晨 北京交通大学 转载请注明出处

本系列主要针对有志于工业界做算法,并在统计机器学习领域有一定基础的同学阅读,工业界做算法大部分是针对场景进行算法的选择,所以本系列跳过了较为基础的算法部分。如对基础算法有疑问请自行阅读
1. 《统计学习方法》 李航 本书主要针对 监督学习 的统计学方法
2. 《机器学习》周志华 本书涵盖监督学习和非监督学习 学派中立
3. 《机器学习:从公理到算法》于剑 我校老师撰写的机器学习公理化著作,博士期间研究方向为无监督学习,所以可以与李航那本书互补使用
4. 《Ensemble Methods: Foundations and Algorithms》周志华,主要阐述集成学习的概念和方法,国内集成学习领域研究的权威
5. 《The Elements of Statistical Learning》统计学派机器学习的圣经,是李航那本书的高阶版本
6. 《Pattern Recognition and Machine Learning》贝叶斯学派机器学习本系列主要以QA的形式提出问题以引起大家的思考,作者也通过给出自己的思考与读者进行交流讨论大部分人觉得自己会用 sklearn 调包就觉得自己可以胜任机器学习的岗位了,所以开门见山的想引入几个简单的问题
1. SVM为什么要引入对偶算法,原始问题就是无法求解吗?
2. LR的参数更新如何实现,对于实现逻辑简单的LR算法如何引入非线性提高表征能力?

SVM篇

在阅读本文前需要清楚的基本概念
1. 支持向量机的三个类别:线性可分支持向量机,线性支持向量机,非线性支持向量机
2. SVM 从原始问题到对偶问题的推导,包括硬间隔和软间隔,以及核函数在对偶问题的应用
3. SVM的软间隔为什么对应合页损失,并且最好了解一下启发式算法 SMO的求解过程

基于以上的基础知识本文对下面几个问题的概念进行深入探讨并给予一些工程应用上的指导:
Q1:SVM为什么要引入对偶算法,原始问题无法求解吗?
A1:先说结论:可以求解,SVM的本质上为凸二次优化即QP问题,大部分求解QP问题的包都可以对原始的SVM问题进行求解。

对于原始问题:

可以转换成凸二次规划的标准形式:

凸二次规划进行求解的一种方法:CVXOPT

这里是利用Python包封装好的 CVXOPT 求解QP问题的官方文档: http://cvxopt.org/examples/index.html

这里是用 CVXOPT进行SVM求解的源码: https://gist.github.com/mblondel/586753

此外还有 牛顿法BFGS 等算法进行SVM的求解:
https://stackoverflow.com/questions/23812332/quadratic-programming-and-quasi-newton-method-bfgs

包括一些利用BFGS求解的论文:
1) https://www.sciencedirect.com/science/article/pii/S0925231210001542
2) https://arxiv.org/pdf/1402.4861.pdf

Q2:引入对偶算法求解SVM与直接求解SVM凸二次规划有什么优势?
A2:首先,需要弄清楚的是,原问题是在求解什么:
y = wx + bwb, 这两个变量是和数据的维度相关的,所以对于低维数据而言的原问题原始空间直接求解,不用对偶进行求解,本质上 liblinear 也是这么做的
这里写图片描述

这里写图片描述
摘自:https://www.csie.ntu.edu.tw/~cjlin/liblinear/FAQ.html
在求解低维问题的时候,对偶求解和直接求解并没有显著的速度优势,所以 liblinear 提供了 对于 primal problem 问题的求解包
https://www.cnblogs.com/baiting/p/5246877.html

对于 primal 问题的求解,作者采用的是Trust Region Newton (TRON) method对模型对传统牛顿法进行了改进,该方法被证明比L-BFGS训练更加高效。(不懂的自觉回去补拟牛顿法的知识)
在这里安利一篇博客讲解 liblinear 和 libSVM 的求解,包括在什么的数据形式下运用什么样的工具包:
https://www.cnblogs.com/baiting/p/5246877.html
需要注意的是:将原问题映射成对偶问题并不会降低求解的时间复杂度,对偶问题的时间复杂度基本都包含在 alpha1 和 alpha2 的内积过程中。

对于对偶问题:将原问题的 wb 的求解,转变为对 alpha 的求解过程,对于 alpha 的求解则是与维度完全无关的,而和样本数量直接相关,所以对于高维数据样本数量有限的样本数据集,直接转化为对偶问题进行求解,对于多数的课本大多数直接转化成转化成对偶问题进行求解而完全忽略对原问题的阐述,本人觉得是实实在在的本末倒置和投机取巧,对于对偶问题的求解大部分图书都有详细的推导过程,比如《统计学习方法》李航,请大家自行阅读,并了解 SMO 算法的启发式过程。

此外引入对偶的最关键的一个优势是在对偶问题中显示的出现了 alpha1 和 alpha2 的内积, 内积方便引入核函数 !!!至于为什么会在以后细说

Q3:为什么对偶形式方便引入核函数?
A3
这里写图片描述
这个问题在知乎上有详细的解释
https://www.zhihu.com/question/24627666

本质上引入核函数是在希尔伯特空间上的内积

Q4:那么为什么在对偶形式下引入核函数就比较方便呢,在原问题下直接做映射不也可以直接求解吗?
A4:本质上是核函数与映射的关系,直接知乎就OK了,核函数是将显示的特征映射变成了隐式的变换,需要注意的是 核函数本身就是一个非常独立的概念,新手总容易把 SVM 等算法与核函数人为的串联起来,但本质上 LR 等算法都是可以引入核函数的!

此外还要理解SVM的高斯核函数是无穷维的映射,本质上泰勒展开是无穷维的:
https://www.zhihu.com/question/35602879

Q5:为什么软间隔 SVM 是 hinge loss?
A5:李航统计学习方法里有详细的说明, 将软间隔的 kesei 和 Hinge Loss :
max(0, 1 - y( wx + b )) 做了等价替换,具体看书中的详细的证明

Q6:SVM 与 L2 + Logisical Regression 的关系?
A5:先解释 LR 的 binomial loss 和 SVM的 hinge loss 为什么是可比较的吧
http://www.public.iastate.edu/~vardeman/stat502x/A%20Fact%20About%20Binomial%20Deviance.pdf

猜你喜欢

转载自blog.csdn.net/laoma023012/article/details/80769957