【ZJU-Machine Learning】支持向量机——线性模型

定义

所谓线性的模型,也就是对于如下的两类点,如果存在有一条直线,能使○和×完全分开,那么称之为线性模型。我们所构建的算法,也就是要构造这么一条线。

SVM的思路是从线性模型推广到非线性模型中。

在这里插入图片描述

可分与不可分

若能分开,则称这个样本集为线性可分样本集。
在这里插入图片描述
若我们不论怎样,我们都不能画出一条直线,是○和×分开,那么成这个样本为非线性可分样本集。
在这里插入图片描述
对于线性可分的样本集,如果存在一条直线能够○和×,那么在空间中,一定能找到无数条直线分开○和×。
在这里插入图片描述
那么既然存在无数条直线,我们的算法要预测出最好的一条来。 我们能看出,2号线是较优的,因为其能容纳的各类型的样本数更多。

支持向量机的产生

vapnik认为,我们要先定义一个评价指标,对于每一条线,我们都计算这个性能指标,取这个性能指标最大的线为最优的。

性能指标:将任意一条直线平行的想两侧移动直到其能够擦到任一个样本,使得其距离d最大,且距离两边的样本都是二分之d。

在这里插入图片描述
在支持向量机中,我们将整个性能指标所表示的d叫间隔magin,支持向量机也就是要求得d最大的方法。
将平行线插到的向量叫做支持向量。画出这条最佳的直线,仅与支持向量有关,与其他的向量无关,因此支持向量方法适用于小样本。

我们要做出一些定义:
1、定义一些数据和标签:(x1,y1)……(xn,yn)
其中x是向量,y是标签,对于二分类问题,y只能取 -1或1,
2、线性模型
机器学习也就是通过1中的数据,将下式中的w和b确定。

所有的机器学习算法都无外乎三步,首先是确定一个模型(用数学公式表达),接下来在这个模型中留出待定的参数,最后使用训练样本确定w和b

在这里插入图片描述

3、线性可分
在这里插入图片描述
将这个约束 称为公式一

支持向量机的优化问题

在这里插入图片描述

(aw,ab)和(w,b)是同一平面,所以不管a是多少,整个式子的值是不会变的,那么既然要固定变量,就要把分子先固定住,分母取最小
因为缩放前后是一个平面,所以我们可以去调整W和b使得支持向量带入调整后方程等于一,这里的W和b都是缩放后的
在这里插入图片描述
当然,不一定要求等于1,可以是任意实数。

因此我们要求d的最大,也就是最小化下式(之所以乘二分之一,是为了方便求导)
在这里插入图片描述

在这里插入图片描述
对于这个优化问题,是一个凸优化、二次规划问题。
在这里插入图片描述
对于这种凸优化问题,要么无解,要么只有一个极值(上图是凸优化问题,仅有一个最优解,下图是非凸优化)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45654306/article/details/113057742