0%

支持向量机(SVM)

支持向量机

[toc]

数学基础补充

二元函数的无条件极值问题

  1. 求偏导等于0,找到所有驻点(必要条件)
  2. 求二阶偏导,依次确定各驻点处A、B、C的值,根据的符号判断是否为极值点(充分条件)
    1. 大于0,有极值。A>0极小值,反之极大值
    2. 小于0,没有极值
    3. 等于0,可能有也可能没有

这通常对应一个最简单的无约束优化问题

条件极值和拉格朗日乘数法

条件极值:对自变量有附加条件的极值

设二元函数在区域D内有一阶连续偏导数,则求在D内满足条件的极值问题,可以转化为求拉格朗日函数

的无条件极值问题

其中我们称一维向量是一个拉格朗日乘子

这通常用于求解带有等式约束的优化问题

数学符号说明

最大最小
  • 这是一个关于的函数
  • 时, 的取值为: 固定 中的 ,变动 x 时 f 能娶到的最大值
  • 从右往左看,首先把min这一项看作关于 的函数 ,然后求这个函数的最大值
inf和sup符号

inf 是下确界,sup 上确界。和最大最小值相似但不同,max f 不存在的情况下 sup f 可能存在

凸函数凹函数

使用国内定义还是国际定义仁者见仁智者见智了(以下使用国际定义

但是要记得詹森不等式

仿射函数是又凹又凸的

max是凹函数、min是凸函数(利用詹森不等式证明)

拉格朗日对偶问题

原问题

凸优化 要求 是凸函数, 是凸函数, 是仿射函数

但这里我们做两个约定

  • 我们不假定原函数 f 的凹凸性, f 既可以是凹函数也可以是凸函数
  • 问题的定义域
  • D 不是 空集
  • 我们约定最终求出来的最优结果用表示
对偶问题

定义:实质相同但从不同角度提出不同提法的一对问题。

在原问题中, 约束条件太多,并且凹凸性不明确。 于是我们将他转化为拉格朗日对偶问题。这样的有点是:只有一个约束,并且拉格朗日对偶问题一定是凹的。

证明如下:

  1. 类比于等式约束的最值问题,我们为原问题构建一个广义拉格朗日函数
  1. 根据 L 我们定义一个拉格朗日对偶函数 g(lambda, mu)

​ 可以证明这个函数一定是凹函数。

我们总结得到:不管原函数 f 的凹凸性, 它的对偶函数 g 一定是凹函数

我们之所以需要这么一个对偶函数是因为只要 λ 不小于 0 , g的值永远不会超过 。证明略

也就是说, 永远都不会小于

从原问题到拉格朗日对偶问题

我们通过拉格朗日对偶函数给出了最优解 的下界,也就是说我们通过求来逼近的值

在这里插入图片描述

回顾原问题,我们现在给出对偶问题的形式

这是个凸优化问题,我们转而去求 d^* 了。

KKT条件

学习中……

基础概念

超平面

二维空间上,两类点被一条直线完全分开叫做线性可分

拓展到n维空间上,将n维欧氏空间上的两个点集完全正确地划分开的 就成了一个超平面。

支持向量

样本中距离超平面最近的一些点叫做支持向量

img

SVM最优化问题

SVM想要找到的就是 最大间隔超平面,即支持向量离超平面最远

任意超平面可以用以下线性方程来描述:

由点到直线的距离公式推导可得,n维向量到超平面的距离为:

其中 =

我们假设支持向量到超平面的距离为 d,可知其他向量到超平面的距离 > d,于是我们可以这样描述超平面两端的向量:

由于 严格大于0,我们假设它为 1

sklearn实现SVM