仅个人读书笔记.
各位总结非常好:
支持向量机(SVM)入门理解与推导
【ML】支持向量机(SVM)从入门到放弃再到掌握
总结
支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括:
(1)当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机(也称硬间隔支持向量机);
(2)当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机(也称软间隔支持向量机);
(3)当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机;
第6章 支持向量机
6.1 线性可分支持向量机
6.1.1间隔和支持向量
线性可分:如果一个线性函数能够将样本分开,称这些数据样本是线性可分的。
超平面:线性函数的统称。其实很简单,在二维空间中就是一条直线,在三维空间中就是一个平面,以此类推,如果不考虑空间维数,这样的线性函数统称为超平面。我们看一个简单的二维空间的例子,O代表正类,X代表负类,样本是线性可分的,但是很显然不只有这一条直线可以将样本分开,而是有无数条。
线性可分支持向量机:就对应着能将数据正确划分并且间隔最大的直线(线性函数)。
超平面线性方程:
间隔最大化的计算:
支持向量机基本型:
我们可以看到(6.6)的基本型目标函数是二次的,约束条件是线性的,这是一个凸二次规划问题。可以直接用现成的优化计算包求解。但若利用“对偶问题”来求解,会更高效。对式(6.6)使用拉格朗日乘子法可得到其"对偶问题"。
- 啥是凸?什么是凸优化?
- 为啥叫二次规划问题呢?
(1)目标函数和约束条件都为变量的线性函数,叫做线性规划问题。
(2)目标函数为变量的二次函数,约束条件为变量的线性函数,叫做二次规划问题。
(3)目标函数和约束条件都为非线性函数,叫做非线性规划问题。
6.1.2 对偶问题
求解推导过程略.
6.2 非线性支持向量机和核函数
6.2.1非线性支持向量机
非线性支持向量机:对于非线性问题,线性可分支持向量机并不能有效解决,要使用非线性模型才能很好地分类。先看一个例子,如下图,很显然使用直线并不能将两类样本分开,但是可以使用一条椭圆曲线(非线性模型)将它们分开。非线性问题往往不好求解,所以希望能用解线性分类问题的方法求解,因此可以采用非线性变换,将非线性问题变换成线性问题。
例如"异或" 问题就不是线性可分的
对于这样的问题,可以将训练样本从原始空间映射到一个更高维的空间,使得样本在这个空间中线性可分,例如在图6.3,若将原始的二维空间映射到一个合适的三维空间,就能找到一个合适的划分超平面。如果原始空间维数是有限的,即属性是有限的,那么一定存在一个高维特征空间是样本可分。
……
这里的函数 κ(.)就是"核函数" ,式(6.24) 显示出模型最优解可通过训练样本的核函数展开,这一展式亦称"支持向量展式"。
6.2.2 核函数
显然,若己知合适映射Φ(.)的具体形式,则可写出核函数,.但在现实任务中我们通常不知道映射Φ(.)是什么形式。
我们希望样本在特征空间内线性可分,因此特征空间的好坏对支持向量机的性能至关重要.需注意的是,在不知道特征映射的形式时,我们并不知道什么样的核函数是合适的,而核函数也仅是隐式地走义了这个特征空间.于是,"核函数选择"成为支持向量机的最大变数.若核函数选择不合适,则意味着将样本映射到了一个不合适的特征空间,很可能导致性能不佳.
以下列出了几种常用的核函数.
6.3 线性支持向量机与软间隔
6.3.1 软间隔
在前面的讨论中,我们假设训练样本在样本空间或者特征空间中是线性可分的,但在现实任务中往往很难确定合适的核函数使训练集在特征空间中线性可分,退一步说,即使瞧好找到了这样的核函数使得样本在特征空间中线性可分,也很难判断是不是由于过拟合造成。
缓解该问题的一个办法是允许支持向量机在一些样本上出错。为此,要引入"软间隔" 的概念。
具体来说, 前面介绍的支持向量机形式是要求所有样本均满足约束(6.3) , 即所有样本都必须划分正确,这称为"硬间隔" ,而软间隔则是允许某些样本不满足约束,当然,在最大化间隔的同时,不满足约束的样本应尽可能少。于是,优化目标可写为
6.3.2 松弛变量
这就是常用的"软间隔支持向量机".
6.4 三种支持向量机
在这里引入一张图片,近距离体会上述三种数据类型
本文梳理知识点,涉及公式推导较少.