甲乙小朋友的房子

甲乙小朋友很笨,但甲乙小朋友不会放弃

0%

机器学习算法-SVM

SVM简介

SVM - Support Vector Machines, 支持向量机。是二分类模型。

线性可分SVM

概念复习

参考文献

输入空间:输入所有可能的取值的集合

特征向量:每个具体的输入

特征空间:所有特征向量存在的空间。特征空间可以是输入空间,也可以由输入空间映射得到。模型定义在特征空间上。

输出空间:输出所有可能的取值的集合

线性可分SVM学习目标

在特征空间找到一个分离超平面 \(wx+b=0\),并且间隔最大。

SVM与PLA区别

PLA:误分类最小策略,求得分离超平面。解不唯一。 线性可分SVM:间隔最大化,求得分离超平面。解唯一。

函数间隔和几何间隔

  • 一个点距离分离超平面的远近|wx+b| 是 分类预测的确信程度。例如将A分为0的确信度很高,而将C分为0的确信度较低
  • wx+by的符号一致,则分类正确
  • 函数间隔y(wx+b),表示分类的正确性及确信度
  • 超平面的函数间隔*:min{y(wx+b)}
  • 几何间隔:规范化||w||=1,即为\(y(\frac{w}{||w||}\cdot x + \frac{b}{||w||})\),使得间隔固定。(因为w和b成比例增加时,超平面不会改变,但函数间隔会变大)

SVM基本算法

标准问题

算法的推导

  • 一开始的目标是: -- 目标:求得一个x,使得margin最大 -- 条件: --- 每个点都被正确分类(b被塞入了w矩阵里) --- magin是最近的点的距离

  • 从距离的理解入手,如图所示

  • w的理解 -- 灰色是分割平面 -- \(x'\)\(x''\)是平面上的两个点,则它俩满足\(w^T X' = -b\)\(w^T x'' = -b\) -- 两式相减,得到 \(w^T(x'' - x')=0\) -- 则w垂直于平面,即w是平面的法向量 -- 那么dist是向量\(x' x''\)w上的投影

  • y(wx+b)>0,则距离可以表示为:

  • 因此,新的算法目标为

  • 归一化条件:margin=y(wx+b)=1,得到新目标

  • 对目标进行放缩,方便解

  • 再将最大化变为最小化,也拿走||w||的根号

支持向量

  • 在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例,叫做支持向量(support vector)
  • 支持向量是使得约束条件等号成立的点
  • 决定分离超平面时,只有支持向量起作用,而其他点不起作用
  • 在H1,H2上的点就是支撑向量(很少,但很重要的点)

间隔 margin

H1,H2之间,\(margin=\frac{2}{||w||}\)

间隔边界

H1,H2

标准问题的求解

  • 目标是二次的,条件是线性的

  • 则这是一个二次规划问题,有固定的解

  • 我们的标准问题:

  • 标准二次规划问题:

  • 系数代入: