本文是学习b站up主shuhuai008的笔记。
SVM概述
支持向量机在深度学习出现之前是一个非常流行的算法。SVM有三宝:间隔、对偶、核技巧。
SVM可以分为:硬间隔SVM(最大间隔分类器)、软间隔SVM、kemel SVM
SVM最初的提出是解决二分类问题,如下图:
其中 定义图中把两类物体分开的线是一个超平面: ,
这个SVM模型就记作:
当这个函数中时,;时,.所以SVM的本质上是一个判别模型。
如果只从分类的角度看,很多直线都可以完成正确的二分类的功能,而SVM要做的就是在这么多的直线中找到一条最好的直线。
我们所关注的不仅仅是训练误差,更要关注期望(或者说是测试误差),如果分布在这条线两边的点离这条线很近,很容易越过这个线(两类的边界),所以当直线距离两边的点过近时,它的泛化误差不好。我们要做的就是找到一条直线,使两边的样本点到直线的距离最远。
我们定义一个函数表示最大间隔分类器:
我们有N个样本点:{} {-1,+1},因为是分类任务。
最朴素的正确分类就可以写作:
上式可以写作: 因为
函数margin定义成点到直线的距离,点到直线的距离我们用distance来表达,因为有N个样本点,所以有N个distance,margin就等于从N个样本点的distance里面找到最小的那个distance,我们把就定义为离超平面最近的点的距离作为。