「吃瓜记」第6章 支持向量机
6.1 间隔与支持向量
算法原理:从几何角度,对于线性可分数据集,支持向量机就是找距离正负样本都最远的超平面,相比于感知机,其解是唯一的,且不偏不倚,泛化性能好。
支持向量 support vector:距离超平面最近的这几个训练样本点使上式的等号成立。
间隔 margin:两个异类支持向量到超平面的距离之和。
欲找到具有**最大间隔(maximum margin)**的划分超平面,也就是要找到能满足上式中约束的参数w和b,使得间隔最大,即
等价于支持向量机(Support Vector Machine / SVM)
6.2 对偶问题
支持向量机是一个凸二次规划(convex quadratic programming)问题,使用拉格朗日乘子法可得到其对偶问题(dual problem)。
6.3 核函数
在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。如异或问题。对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。其对偶问题:
求解后可得到
这里的函数 κ(·,·) 就是核函数(kernel function)。我们希望样本在特征空间内线性可分,因此特征空间的好坏对支持向量机的性能至关重要.需注意的是,在不知道特征映射的形式时,我们并不知道什么样的核函数是合适的,而核函数也仅是隐式地定义了这个特征空间。于是,核函数选择成为支持向量机的最大变数.若核函数选择不合适,则意味着将样本映射到了一个不合适的特征空间,很可能导致性能不佳。核函数需要满足以下这个必要条件:
由于核函数的构造十分困难,通常我们都是从一些常用的核函数中选择,下面列出了几种常用的核函数:
6.4 软间隔与正则化
硬间隔 hard margin:所有样本都必须划分正确。
软间隔 soft margin:允许支持向量机在一些样本上出错。
在最大化间隔地同时,不满足约束的样本应尽可能少。优化目标变为:
如同阶跃函数,0/1损失函数虽然表示效果最好,但是非凸、非连续,数学性质不佳。因此常用其它函数作为“替代损失函数”。
支持向量机中的损失函数为hinge损失,引入松弛变量(slack variables),目标函数与约束条件可以写为:
其中C为一个参数,控制着目标函数与新引入正则项之间的权重,这样显然每个样本数据都有一个对应的松弛变量,用以表示该样本不满足约束的程度,将新的目标函数转化为拉格朗日函数得到:
按照与之前相同的方法,先让L求关于w,b以及松弛变量的极小,再使用SMO求出α,有:
将w代入L化简,便得到其对偶问题:
将软间隔下产生的对偶问题与原对偶问题对比可以发现:新的对偶问题只是约束条件中的α多出了一个上限C,其它的完全相同,因此在引入核函数处理线性不可分问题时,便能使用与“硬间隔”支持向量机完全相同的方法。
6.5 支持向量回归
**支持向量回归(Support Vector Regression / SVR)**假设我们能容忍f(x) 与 y 之间最多有 e 的偏差,即仅当 f(x) 与 y 之间的差别绝对值大于 e 时才计算损失。
6.6 核方法
表示定理 representer theorem
参考资料
- 机器学习,周志华,清华大学出版社
- 【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集