机器学习面笔试-SVM篇
1.SVM的基本思想
间隔最大化来得到最优分离超平面。方法是将这个问题形式化为一个凸二次规划问题,还可以等价位一个正则化的合页损失最小化问题。SVM又有硬间隔最大化和软间隔SVM两种。这时首先要考虑的是如何定义间隔,这就引出了函数间隔和几何间隔的概念(这里只说思路),我们选择了几何间隔作为距离评定标准(为什么要这样,怎么求出来的要知道),我们希望能够最大化与超平面之间的几何间隔x,同时要求所有点都大于这个值,通过一些变化就得到了我们常见的SVM表达式。接着我们发现定义出的x只是由个别几个支持向量决定的。对于原始问题(primal problem)而言,可以利用凸函数的函数包来进行求解,但是发现如果用对偶问题(dual )求解会变得更简单,而且可以引入核函数。而原始问题转为对偶问题需要满足KKT条件(这个条件应该细细思考一下)到这里还都是比较好求解的。因为我们前面说过可以变成软间隔问题,引入了惩罚系数,这样还可以引出hinge损失的等价形式(这样可以用梯度下降的思想求解SVM了)。我个人认为难的地方在于求解参数的SMO算法。
2. 基本型SVM推导
给定样本集,在样本空间中找到一超平面将不同的类别的数据划分开。我们希望能够找到两类样本“正中间”的那个超平面。因为那个超平面的容忍度最好,鲁棒性最好。
超平面方程可使用下面的线性方程来描述:
超平面可有法向量和位移量表示,记为(w,b)。
样本空间中任意点x的超平面的距离为
距离超平面最近的训练样本使上式等号成立,他们被称为支撑向量。
两个类别支持向量到超平面的距离之和为
寻找具有最大间隔的超平面就是要找满足
上面的表示等价于:
这就是支持向量机的基本型。
3. 支持向量回归
4. SVM为什么能应用到非线性问题?
如果原始空间是有限维的,样本在这个空间中线性不可分,那么你一定存在一个高维特征空间使样本可分。所以使用SVM解决线性不可分问题就是将原始空间映射到一个更加高维的空间,使得样本在这个空间线性可分。
5. 为什么提出核函数?
我们将原始空间中线性不可分的样本映射到高维特征空间中,但是我们不知道是怎么映射的。假设将x映射后的在高维特征空间中的特征向量为。在求解对偶问题时,涉及到样本映射到高维特征空间之后其特征向量的内积,. 特征空间的维数我们不知道,也不知道的具体形式。所以我们不直接解决这个问题,而是设想一个函数,使得这个函数在原始空间计算的结果等于他们映射之后再高维空间的内积。这个函数就是核函数。表示为
6.核函数的条件及常用核函数
核函数必须是对称函数,在任意数据集上核矩阵总是半正定的。
常用核函数
这些核函数的线性组合,直积也是核函数;给定任意函数, 也是核函数。
5. SVM中如何处理数据偏斜
可以对数量多的类使得惩罚系数C越小表示越不重视,相反另数量少的类惩罚系数变大。
6. SVM中的鲁棒性问题
SVM(支持向量机)本身对噪声具有一定的鲁棒性,但实验证明,是当噪声率低于一定水平(如40%)时噪声对SVM没有太大影响,算法仍有效,但随着噪声率的不断增加,分类器的识别率会降低。
7. 结构化风险和经验风险
在SVM中,我们本来想要使用的01损失函数,但是由于其非凸,不连续,而被其他替代函数取代,如hinge损失函数。然而使用不同的替代函数会得到不同的学习模型。优化目标的统一表达式:
8. 正则化问题的由来
上面描述了结构化风险和经验风险,从经验风险最小化的角度看,结构风险一方面表述了我们希望获得具有何种的性质的模型,另一方面有助于削减假设空间,总而降低最小化训练误差的过拟合风险。这时候C被称为正则项常数。
常用作正则项的是范数,L2范数倾向于w的分量取值尽量均衡,即非零分量个数尽量稠密,L0,L1范数则倾向于w分量尽量稀疏,即非零分量个数尽量少。