SVM(Support Vector Machine,支持向量机)是一个线性分类器,是最经典的分类算法,其核心目标就是找到最大间隔超平面。本文记录SVM的推导过程。
SVM就是一个分类器,只是相对于传统的线性分类器,它添加了一个支持向量的概念。
从图片上解释,对于一组数据,SVM在使用直线的同时要求数据点距离这条直线的最小距离最大,也就是说分类器和数据之间要有足够大的“间隔”。这样做的好处是很明显的,越大的“间隔”代表了更大的转圜空间,在得到新的数据之后更容易将其正确分类。 而SVM的工作就是求解这个最大间隔,也就是最优化问题。对于线性可分的数据,可以直接套用线性规划的知识进行推导,但如果数据线性不可分,就需要核函数进行数据升维,进行超平面分类。
SVM是一个线性分类器,SVM的目标就是找到最大间隔超平面。
事实上函数间隔${\hat \gamma }$并不影响最优化问题的解,假设将w和b成倍的改变为
,那么函数间隔也会相应变成
,因此为简便,我们取
,因此优化函数为最大化
,这等价于最小化
,考虑到求导方便,我们最小化
- 优化函数最终为: