支持向量机(support vector machines, SVM)是一种二分类模型。
在自然状态下,样本之间并不存在线性的关系。如果将这种非线性的样本集表示出来,每一个样本就是散落在三维空间中的一个个点。对于输入空间中的非线性分类问题,可以通过非线性变换将它转化为某个维特征空间中的线性分类问题,在高维特征空间中学习线性支持向量机。支持向量机的算法思想就是用一个最理想的平面将这些点分为两类,这里的最理想指的是两类样本间的间隔最大;SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
在非线性的支持向量机中,我们引入了“软间隔”的概念,即允许某些点不满足分类函数的约束,这使得每一个样本都有一个对应的“松弛变量”,表征该样本不满足约束的程度。当我们进行样本筛选时,可以设置一个松弛变量的参数,用以区分有效样本和无效样本。
支持向量机算法主要应用于图像分类任务,如手写数字识别,人脸识别;文本分类任务,如垃圾邮件过滤,情感分析;生物信息学,如基因表达数据的分类、蛋白质结构预测等。