支持向量机在深度学习技术出现之前,使用高斯核的支持向量机在很多分类问题上取得了很好的结果,支持向量机不仅用于分类,还可以用于回归问题。它具有泛化性能好,适合小样本和高维特征的优点。
SVM 是 N 维空间的分类超平面,它将空间切分成两部分。对于二维空间,它是一条线,对于三维空间,它是一个平面,对于更高维空间,它是超平面。
一般情况下,给定一组样本可以得到不止一个可行的线性分类器。那么,在多个可行的线性分类器中,什么样的分类器是最好的?
直观上看,为了得到泛化性更好的分类器,分类平面应该应该不偏向于任何一类,并且距离两个样本都尽可能远,这种以最大化分类间隔为目标的线性分类器就是支持向量机。
硬间隔指的是让所有的样本都不在最大间隔之间,并位于正确的一边,这就是硬间隔。如果出现异常值、或者样本不能线性可分,此时硬间隔无法实现。
软间隔指的是我们容忍一部分样本在最大间隔之内,甚至在错误的一边。相对来说,软间隔可以应用在一些线性不可分的场景。
在硬间隔的情况下,我们只考虑如何使得间隔达到最大。在软间隔的情况,我们即要考虑最大化间隔,也要考虑到那些限制间隔违例的样本带来的损失。
C越大说明, 违反限制间隔的样本点带来的损失就越大,就要减少这些样本的数量,所以间隔就要越小。
C越小说明, 违反限制间隔的样本点带来的损失就越小,可以适当增大间隔,以增加模型的泛化能力。
当存在线性不可分的场景时,我们需要使用核函数来提高训练样本的维度、或者将训练样本投向高维
高斯核函数使用较多。
SVM 默认使用 RBF 核函数,将低维空间样本投射到高维空间,再寻找分割超平面。
0-1 损失:
Hinge (合页)损失:
Logistic 损失: