zl程序教程

您现在的位置是:首页 >  其它

当前栏目

支持向量机

支持 向量
2023-06-13 09:11:59 时间

LR →SVM

在逻辑回归问题中,我们希望输入sigmod函数中的函数值离0越远越好,因为离0越远,我们判断的"把握"就越大。也就是说我们希望找到一个分类器使得待分类点距离分类的平面尽可能的远,换言之也是一样分类判断的把握尽可能大。这就延伸出了一种二分类模型-支持向量机 支持向量机就是一种二分类模型,其基本模型定义为特征空间上间隔最大的线性分类器,其学习策略就是间隔最大化。

The support-vector network combines 3 ideas: the solution technique from optimal hyperplanes (that allows for an expansion of the solution vector on support vectors), the idea of convolution of the dot-product (that extends the solution surfaces from linear to non-linear), and the notion of soft margins (to allow for errors on the training set).

样本比较多的时候,Boosting和RF往往能得到最好的效果,但是数据集较少的时候,SVM的效果可能会比较好。

线性可分

学习策略

最大间隔法

SVM希望找到一个最优的超平面,在将所有的点分类正确的前提下,并使得使得所有的点到超平面的距离最大化(最大化间隔)。这里我们不妨让超平面的方程为w^Tx+b=0

这就是支持向量机( Support Vector Machine,简称SVM)的基本型。 接着我们研究这个的求解,观察发现这个规划问题是一个凸二次规划问题(目标函数和约束函数都为RnR^nRn上可微的凸函数,约束函数都为线性函数/仿射函数),存在全局最优解,可以借助规划类问题的包进行求解,但我们可以利用更高效的方法来求解。

拉格朗日对偶

最大间隔分离平面的唯一性

线性可分训练数据集的最大间隔分离超平面是存在且唯一的。 存在性:最优化问题形式决定了这个问题必定是有解的(显然ω≠0\omega\ne0ω​=0) 唯一性:

软间隔最大化

硬间隔分类的一个最大的问题是把数据想象的过于理想,有的时候数据集是存在噪声的,即可能出现下图的情况:

也就是说短间隔下的支持向量的点在分离超平面误分离一侧。

决策函数

与硬间隔下的决策函数一致

合页损失函数

命中注定

所有的一切在我们定义那个简单的优化问题时所有东西都已经注定了,后来的推导只是在发现它们罢了

线性不可分

非线性问题的分类往往不好求解,我们希望采取一个非线性变换,把非线性问题变成线性问题,然后通过解变换后的线性问题来解决原来的非线性问题。

  • 使用变换将数据映射到高维空间
  • 在新空间里用线性分类学习方法学习模型

核技巧就属于这样的方法

生活中一个常见的例子是桌子上混放着两种重量不同的小球,用力拍打桌子。小球弹在空中,重的球弹得低,轻的球弹得高,这使得本来不可分的小球变得可分。

这种类似拍桌子的方法我们叫做核函数,它的作用是将样本映射到高维空间。

在学习与预测的过程中,只定义核函数K(x,z)而不显式地定义映射函数。在线性分类中,我们也可以利用相同的办法来定义K(x,z)来定义内积,然后如果核函数给定的话,就可以利用线性分类问题的解决方法来解决问题了。学习是隐式地在特征空间进行的,不需要显式地定义特征空间和映射函数。这样的技巧称为核技巧,它是巧妙地利用线性分类学习方法与核函数解决非线性问题的技术。在实际应用中,往往依赖领域知识直接选择核函数,核函数选择的有效性需要通过实验验证。

如果原始空间维数是有限的,即特征的数量是有限的,那么一定存在一个高维特征空间,将原始样本映射到高维空间后线性化,从而找到一个分类超平面将样本进行分类。

正定核的充要条件

常用核函数

线性核函数

多项式核函数

高斯(RBF)核函数

sigmod核函数

非线性支持向量机

高效实现SVM学习(SMO)

实际应用过程中对于数据量较大的样本的学习非常低效,人们提出了许多快速实现实现算法,序列最小最优化算法(Sequential minimal optimization)是其中的一种。

SMO算法是支持向量机学习的一种快速算法,其特点是不断地将原二次规划问题分解为只有两个变量的二次规划子问题,并对子问题进行解析求解,直到所有变量满足KKT条件为止(可以认为如果两个变量的规划问题满足该条件,则说明在将其余变量固定时求得的解是最优解)。这样通过启发式的方法得到原二次规划问题的最优解。因为子问题有解析解,所以每次计算子问题都很快,虽然计算子问题次数很多,但在总体上还是高效的。

多分类的支持向量机

支持向量机本身是一种二分类模型,多分类的支持向量机一般是采取本质上还是二分类,通过不同的划分方式将多个种类的样本转化为两类的样本来实现分类,比较常见的两种划分方式:

  • One aginst one:从总的n类中选两类构造一个分类器,然后不同的分类器对输入样本的判断值进行投票
  • one-vs-the-rest:丛总的样本中选取一个样本为一类,其余样本为另一类

总结

支持向量机出现最重要的一点是表现出了人们对于模型泛化能力的要求,在支持向量机之前,其实我们更关注的是模型的训练误差,支持向量机要做的,其实是在**分类精度不改变的前提下,**增强模型对那些未知数据的预测能力(最小化有到最大化无的转变) LR引入了正则化项,LR引入l2范数就是拉索回归。

感想

下午听了孟德宇老师讲SVM,整理课堂讲的内容整了3个小时,虽然之前也或多或少接触了一点SVM,但是感觉并没有真正地看到这些模型背后的奇妙之处,虽然说已经不敢苛求自己把什么都看懂,但是当听到老师讲的如此丝滑之后或多或少觉得之前读的有些过于敷衍。或许大概自己在机器学习的道路上还有很长的路要走。 03-24孟德宇.rar