Post

机器学习第3讲——支持向量机

机器学习第3讲——支持向量机

递进关系(from youtube)

alt text

从边缘两个样本的中点划分,则margin最大(左移会使离左边变小,右移同理),这种分类为:**Maximal Margin Classifier **

但是,这种分类对训练中的异常数据非常敏感:

alt text

这种情况,如果允许右边一个错误分类,会在测试集上效果更好,此时margin称为Soft Margin:

alt text

使用交叉验证,以决定允许Soft Margin之间有多少个错误的分类

Soft Margin Classifier也称为Support Vector Classifier

边缘和soft margin之间的观察点称为支持向量

注:PPT中将软间隔支持向量机中不是边缘的点称为软支持向量

alt text

仍然存在问题—————————————————————————————————————————————-

alt text

这种情况无法通过上面的方法分类

则引出支持向量机(Support Vector Machines): 将1维数据计算至2维,在2维空间找一个Support Vector Classifier

alt text

注:这里的转换并没有实际进行,通过核函数(可写成点乘的式子)在原始维度计算两两样本之间的关系,维度没变


感知机存在的问题

  • 一般地,当训练数据集线性可分时,存在无穷多个分离超平面,可将两类数据正确分开;
  • 感知机利用误分类样本最少的策略,求得分离超平面,不过这时的解有无穷多个;
  • 线性可分支持向量机利用间隔最大化求最优分离超平面,解是唯一的。

线性可分支持向量机(linear support vector machine in linearly separable case):

训练数据线性可分时,采用硬间隔最大化,又称硬间隔支持向量机。

线性支持向量机(linear support vector machine):

训练数据近似线性可分时,通过软间隔最大化,又称软间隔支持向量机。


线性可分支持向量机

alt text

优化变量:决策面方程->如何定义?

alt text

目标函数:分类间隔(最大化)->如何计算?

alt text

约束条件:所有训练样本被正确分类,如何用数学形式表达?

  1. 对w的约束;
  2. 对b的约束;
  3. 对支持向量(距离)的约束。

alt text

alt text

alt text

alt text

数学模型建立

alt text

alt text

得到的解对应最大间隔超平面:w*· x + b* = 0

其分类决策函数为: f(x) = sign(w*· x + b*)

小知识

  • 在决定分离超平面时,只有支持向量起作用,而其他实例点并不起作用;
  • 移动支持向量将改变所求的解,即改变分离超平面;
  • 移动间隔边界之外的实例点,甚至去掉这些点,解是不会改变的;
  • 支持向量的个数一般很少,所以支持向量机由很少的但重要的训练样本确定。

线性可分支持向量机的对偶算法(dual algorithm)

对于前面探讨得到的约束最优化问题,求解比较困难,通过数个不等式求解一个最小值的条件。

引出:利用拉格朗日对偶性(Lagrange duality),将原始问题转化为对偶问题。

前置概念

凸集(convex set): 集合中任意两点间的线段永远在集合中的集合

alt text

凸函数(convex function)

alt text

广义拉格朗日函数(Lagrangian)

alt text

alt text

alt text

alt text

KTT条件(Karush Kuhn Tucker)

alt text


SVM最优化问题转换为拉格朗日函数

alt text

1. 求min

alt text

这里的w,在前面知道,只有支持向量会对w有贡献;因此,如果一个向量不是支持向量,那么它的拉格朗日系数一定为0!

alt text

2. 求max

alt text

最终的对偶优化问题:

alt text


线性可分支持向量机学习算法

alt text

alt text

alt text

例题

alt text


梯度下降法

SVM中,损失函数的目标是:最小化权重,从而实现最大间隔,同时惩罚误分类样本。

alt text

alt text


线性不可分支持向量机

目标函数

alt text

alt text

个人理解:

如果松弛变量太大,约束条件是一定可以满足的,相当于一种没有约束的情况,那么这个分类器容忍的范围太大,没有意义。

因此在目标函数中引入松弛变量之和,避免它过大。

alt text


对偶算法

暂时只给出结论

alt text

alt text


梯度下降法

alt text


非线性支持向量机与核函数

核函数详见Youtube

将向量非线性映射到另外一个空间,使得样本在高维空间中线性可分。(图见开头)

alt text

核函数只以内积的形式出现,因此不需要构造一个函数进行一一映射,只需要为内积形式即可。

alt text

关于高斯核的粗略解释:

取多项式核中d=1,2,3……,并求和,得到:

a·b + a ^ 2 · b ^ 2 ……

将高斯核泰勒展开,则可得到上述结果前面再乘一个系数;

也就是高斯核可看作多项式核到无限维的映射,这里无限是因为泰勒展开

计算把x1·x2换为核函数的结果即可

小知识点

alt text

例题

alt text


多分类SVM

构造SVM多类分类器的方法主要有两类:

  • 直接法:直接在目标函数上进行修改,将多个分类面的参数求解合并到一个最优化问题中;

    计算复杂度比较高,实现起来比较困难,只适合用于小型问题中。

  • 间接法:通过组合多个二分类器来实现多分类器的构造。

​ 常见为one-against-one, one-against-all

one-against-one多分类

alt text

one-against-all多分类

alt text

alt text

SVM多分类模型梯度下降


支持向量回归(SVR)

传统回归:拟合训练集样本到模型f(x),通常构建损失函数,使损失函数最小化

SVR:对所有的样本点,SVR能容忍回归模型f(x)与y之间存在最大偏差ε,即以f(x)为中心,构建一个宽度为2ε的隔离带。训练样本落入隔离带,则认为被预测正确

alt text

alt text

alt text

这里只需要把上一张图片中的Epsilon-不敏感损失函数带入到形式化后的目标;\n

再把这里的约束条件带入即可得到转换后的目标函数;\n

两个松弛变量意义上没什么不同,都是表示,对无法落入tube内的数据的容忍

alt text

alt text

跟前面先最小化再最大化那里类似,把求导后的零点带入拉格朗日函数即可得到化简后的最小值

总结

alt text


This post is licensed under CC BY 4.0 by the author.