SVM支持向量机(英文全称:support vector machine)是一个分类算法, 通过找到一个分类平面, 将数据分隔在平面两侧, 从而达到分类的目的。
SVM的推导分为5个步骤:
用数学来定义要求解的问题
- SVM是求解一个平面S:y = wx + b, 其实就是求解参数w, b。如何来求解w, b呢? 怎么判断训练的w, b构成的平面已经足够好呢? 这就需要把问题建模成一个数学问题(称为原始问题),从而明确求解的目标以及约束条件。
- 求解原始问题转换为二次凸函数+约束条件的优化问题
- 原始问题很难求解出参数, 转换为二次凸函数+约束条件的优化问题, 这种转换保证两个函数取最优解时,参数是相同的。做这种转换的主要原因是二次凸函数和约束条件有成熟的计算方法和理论支撑(拉格朗日优化理论)。
- 拉格朗日优化+对偶特性构建方程
- 将w, b参数优化转换为对参数alpha的优化(alpah为拉格朗日约束函数的参数)
- SMO求解alpha最优值
通过上步构建的方程, w, b可以通过alpha来表示。 SMO可以求解出alpha, 再通过alpha求出w,b。 到此平面的方程就可推导出来。
它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。
支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机(linear support vector machine in linearly separable case)、线性支持向量机(linear support vector machine)及非线性支持向量机(non-linear support vector machine)。
当训练数据线性可分时,通过硬间隔最大化(hard margin maximization),学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化(soft margin maximization),也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧(kernel trick)及软间隔最大化,学习非线性支持向量机。
线性可分支持向量机
线性支持向量机
参考:
https://mubu.com/doc/3r9y1haBaZ
李航 《统计学习方法》