什么是SVM?
SVM是一种二分类算法,其中SVM三个重要的部分是间隔、对偶、核技巧。SVM的基本模型是定义在原始特征空间上基于最大间隔的线性分类器,Kernal的引入使得SVM变成了非线性分类器。SVM的学习策略就是最大化间隔,后面跟会提到两种间隔:functional margin和geometric margin。可将这个学习问题转换为一个解凸二次规划的问题,SVM就变成了一个解凸二次规划问题的最优化算法。kernal思想同样可以用在其他机器学习算法中。
硬间隔SVM
首先假设,数据中的两个类是线性可分的,就是说可以将两个类用一条直线或者一个超平面完全分开,因此就可以使用基本的SVM模型对数据进行分类。
硬间隔SVM可以理解为最大间隔分类器,就是说在两类之间找到一个超平面,使得这个超平面到达两类之间的间隔最大,由于是线性分类器,将两类以超平面分开,因此可以将超平面表示为 ,如图:
由此SVM转换为两个子问题,如何定义间隔,以及如何使间隔最大 。
如何定义间隔
从上面图中可以看到,有三条线均可以将两类“完美”分开,但是根据间隔最大的思想,蓝线明显具有更好的泛化效果。SVM是一个判别模型,它只需要判别sample属于哪一类即可,不需要计算概率。使用逻辑回归中的sigmoid函数可以实现这样的效果,将结果映射到0-1区间内,大于0.5为“1”类,小于0.5为“0”类。也可以理解为一个符号函数:,大于零时返回1,小于零时返回-1,如图: