1. 支持向量机核心思想
支持向量机SVM有三宝:间隔,对偶,核技巧
注:核技巧与SVM没有固定的绑定关系,核技巧作用是让SVM从普通的欧式空间映射到高维空间,可以实现非线性的分类
支持向量机的作用是找到一个超平面将上图中的样本进行分类,SVM模型的作用是找到一个超平面,这个超平面具有很好的鲁棒性,不会随着样本的轻微的波动而进行错误的分类;简而言之:我们要找到一个很好的超平面,这个超平面距离两类样本点的距离足够大,由一定的鲁棒性;
2.SVM的分类
- Hard-margin SVM ----> 硬间隔 SVM
- Soft-margin SVM ----->软间隔 SVM
- Kernel SVM ------>核函数 SVM
3.SVM的模型建立-hard-margin SVM 硬间隔
3.1数据集定义
我们定义数据集中由N个样本,我们就是运用一个符号函数将上述样本分成
3.2 求两类样本最小距离点
我们知道,要做最大间隔分类器分两步:
1.间隔,从N个样本中找到一个样本到超平面最小的距离:
2. 最大:求出间隔后,再求最大间隔
满足:s.t.:
注:
我们一般习惯用最小值表示,并将||w||表示成向量形式||W||=:
3.3最大间隔分类器数学模型(优化问题=凸优化问题convex_optimization)
以上是一个凸优化问题,目标函数是二次函数,一共有N个约束,即一个二次规划问题(Quadratic Programming)-QP问题;
3.4 数学模型转换
对于此类问题,我们的思想是借助拉格朗日法将凸优化问题(原问题)转换成对偶问题;
整体思路如下图:
3.4.1 将凸优化问题转换成拉格朗日乘子
我们通过拉格朗日乘子法,将原问题中带约束的问题转换成无约束的问题:那么原问题的等价模型如下:
3.4.2 原问题与等价问题解释
将w,b组成的数据几何分成两个部分:令
情况1:
情况2:
合并上述问题:
3.4.3对偶问题转换[将原问题 -> 对偶问题]
我们可以用凤尾永远大于鸡头来形象
3.4.4对
3.4.4.1 偏导:令
将上式代入L中可得如下:
3.4.4.2 偏导:令
求偏导:
结果:
将其结果代入:
调换顺序:
合并可得:
更新后模型:
化简模型如下:
3.5 KKT条件
由上述KKT条件可得
对于样本中的数据由KKT条件可得如下数据相关图形性质:
由互补松弛条件(17-2)可得:
则数据我们可以知道,在距离超平面最近的两个点满足
在两边同时乘以可得如下:
我们知道则:
故最近两个点的值为:
我们假设样本中一定存在点
将代入方程可得:
4.软间隔-SVM
soft-SVM顾名思义就是软的支持向量机,主要作用是算法本身能允许兼容一点点错误。所以我们需要在硬间隔的基础上增加一个损失函数Loss function;我们知道样本被错误分类的情况是;但是这个函数关于w是不连续的;我们令:;则函数的图像如下:
由图可知:在z=1处出现断点,即不连续现象;就会导致函数在求导出现不可导现象;为了解决上述问题,我们可以用距离来表示损失函数;
综上所述:
图像为:可以看出此时的Loss为连续函数;
那么数学模型可变为如下:
我们引入数学模型可优化为:
图形如下:
用图像表示为:我们在硬间隔的条件下新增了一个缓冲区,由于这个缓冲区的存在,我们可以允许由一点点的误差。而支持向量的区间被放宽到了
5.约束优化问题
在SVM中有很多带约束条件的优化问题,对于此类问题,我们需要约束优化的原问题转换成等价的无约束问题;
整体思路如下:
5.1 约束优化问题与无约束问题的等价性
原问题描述:
用拉格朗日函数表示如下:
等价数学模型-原问题的约束问题如下:
现在我们解释下为啥两个模型是等价的:
重点!!!
也就是说,当我们用拉格朗日函数代替约束条件(不等式)时,其实等式中就自动将不满足条件的数据过滤掉了;也就从约束条件变成了无约束的等式模型;所以含不等式约束条件模型(27)与不含约束条件模型(28)等价!!!
5.2 原问题转换成对偶问题(弱对偶性):
5.2.1弱对偶性描述:
之前我们感性认识:鸡头凤尾,毕竟鸡头始终是鸡,凤尾终究还是凤 ,凤永远大于鸡;
我们要证明的目的是要证明原问题和对偶问题等价:
原问题(关于x的函数):
对偶问题(关于最大化的函数):
5.2.2弱对偶型证明:
证明如下:
代入即得:
6.对偶问题的几何解释
原问题的优化模型如下:
为方便几何表达,我们可以简化上述模型为:
上述原问题转换成拉格朗日函数为:
定义域:
定义原问题最优解为:
定义对偶问题最优解为:
代入拉格朗日函数为:
由于我们知道
现在我们主要问题是如何将上述两个最优解
6.1 原问题最优解几何表示
原问题最优解:
图像表示如下:
6.2 对偶问题最优解几何表示
对偶问题最优解:
图像表示:
通过不断移动可以得到无数个几何点为
从而满足直线与定义域两个点相切;
调整斜率得到如下图形:
由上述图形可得:凹函数的和
那什么时候可以得到=?
一般我们发现当函数为凸函数的时候满足=
如图所示:
综上所述:
上面我们从几何的角度来重新解释了这个问题,其实仔细的想一想也不算很难。但是,强对偶性
的证明这个东西有点难,实际上学习机器学习中的 SVM,学到这就差不多够了。如果是强对偶性,我
们还需要满足两个条件,也就是 1. 是一个凸优化问题;2. slater 条件。就可以得到 d∗ = p∗。但是这只是一个充分必要条件,满足其他的条件也可能是强对偶关系。而 SVM 是一个
二次规划问题,那么它一定是一个强对偶问题。
7.Slater Condition
通常凸优化问题不一定是强对偶问题,我们往往需要在凸优化问题上加一些限制条件才可以构成凸优化问题,比如slatter-condition;但这种条件往往是充分非必要条件;这种条件有很多种,一般有slatter-condition和以后讲的KKT条件;
7.1 Slater-condition描述
存在一个,满足对于每一个;其中relint{D}=relative-interior相对内部的意思,不包含边界。
注:
1) 对于绝大多数的凸优化问题来说,通常slater条件是成立的;
2)放松的slater条件为:假设M中有K个仿射函数(一阶的多项式函数),那么我们可以不需要校验这K个放射函数,只需要校验其余(M-K)个函数
3)SVM 是一个典型的凸二次规划问题,也就是目标函数 f 是凸函数,是仿射函数,为仿射。那么在几何上是什么意思呢?也就是限制至少有一个点在坐标系的左边,使得限制直线不是垂直的;如下图所述:
4) 如果u=0即直线垂直u轴的时候,我们就对此问题不给予考虑;
5)如果我们的凸优化问题满足了stater条件,那么它的强对偶关系一定成立;恰恰我们的凸二次优化问题天然满足slater条件或放松的slater条件;
6)如果是SVM+强对偶关系+凸优化问题,那么我们就可以用KKT条件直接求解
8.KKT Condition
由上文可得,当我们遇到凸优化问题,且它满足slater-condition时,我们可以得到强对偶关系,即但由于这个条件是充分非必要条件;但凸优化问题在满足KKT Condition的情况下,能够得到充分必要条件;即:
8.1KKT条件概述
- 可行性条件:
1.1
1.2
1.3 - 互补松弛条件:
- 梯度为0:
8.2原问题的数学模型
8.3原问题的拉格朗日模型
8.4对偶问题的拉格朗日模型
8.5互补松弛条件证明
我们可以令:
详解:
证毕!
8.6梯度为0
证毕!