支持向量机算法原理
简介1
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
数学角度及公式推导
SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。如下图所示, [公式] 即为分离超平面,对于线性可分的数据集来说,这样的超平面有无穷多个(即感知机),但是几何间隔最大的分离超平面却是唯一的。
在推导之前,先给出一些定义。假设给定一个特征空间上的训练数据集:
其中:
xi 为第 i 个特征向量, yi 为类标记,当它等于+1时为正例;为-1时为负例。再假设训练数据集是线性可分的。
几何间隔:对于给定的数据集 T 和超平面 w*x + b = 0 ,定义超平面关于样本点 (xi, yi) 的几何间隔为:
超平面关于所有样本点的几何间隔的最小值为:
实际上这个距离就是我们所谓的支持向量到超平面的距离。
根据以上定义,SVM模型的求解最大分割超平面问题可以表示为以下约束最优化问题:
将约束条件两边同时除以 [公式] ,得到:
因为 ||w||, gamma 都是标量,所以为了表达式简洁起见,令:
得到:
又因最大化 gamma,等价于最大化:
也就等价于最小化:
因此SVM模型的求解最大分割超平面问题又可以表示为以下约束最优化问题:
这是一个含有不等式约束的凸二次规划问题,可以对其使用拉格朗日乘子法得到其对偶问题(dual problem)。
首先,我们将有约束的原始目标函数转换为无约束的新构造的拉格朗日目标函数:
其中,alpha i 为拉格朗日乘子,且 alpha I>=0。现在我们令:
当样本点不满足约束条件时,即在可行解区域外:
此时,将 [alpha i] 设置为无穷大,则 [theta(ommega)] 也为无穷大。
当满本点满足约束条件时,即在可行解区域内:
此时, [theta(ommega)] 为原函数本身。于是,将两种情况合并起来就可以得到我们新的目标函数:
于是原约束问题就等价于:
损失函数
核函数
基本概念
常见类型
作用
软间隔和硬间隔
多分类问题
回归问题
对偶问题
基本概念
原因
KTT
基本概念
限制
支持向量机算法实战
https://zhuanlan.zhihu.com/p/31886934 ↩︎