一、SVM简介
1.支持向量机(SVM)定义:
三种:线性可分支持向量机、线性支持向量机、非线性支持向量机。
SVM的学习算法就是求解凸二次规划的最优化算法;
SVM是一种二类分类模型,基本模型是定义在特征空间中的间隔最大的线性分类器。
学习策略是间隔最大化。
训练集线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机;
训练集近似线性可分时,通过软间隔最大化,学习一个线性支持向量机;
训练集线性不可分时,通过核技巧与软间隔最大化,学习一个非线性支持向量机。
线性可分支持向量机:
给定线性可分训练集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为:
以及相应的分类决策函数:
称为线性可分支持向量机。
2.概念
(1)函数间隔:可以表示分类预测的正确性及确信度。
在超平面wx+b=0确定的情况下,|wx+b|能够相应地表示点x距离超平面的远近,而wx+b的符号与类标记y的符号是否一致能够表示分类是否正确,所以可以用y(wx+b)来表示分类的正确性及确信度,这就是函数间隔的概念。则超平面关于样本点(xi,yi)的函数间隔可表示为:
(2)几何间隔:是为样本点到超平面的带符号距离,当样本被正确分类时,即为样本点到超平面的距离。
在选择分离超平面时,只有函数间隔是不够的,因为当w和b成比例地缩放时,函数间隔也会成比例地变化。所以我们可以对超平面的法向量w加以约束,如规范化,||w||=1,使得间隔是确定的,这时函数间隔是几何间隔。
超平面关于样本点(xi,yi)的几何间隔可表示为:
小结:如果超平面参数w和b成比例地改变(超平面没有改变),函数间隔也会成比例地改变,而几何间隔不会变。
(3)支持向量:距离分类超平面最近的样本即支持向量(如在H1,H2上的点)。
H1,H2称为间隔边界。
注: 在决定分离超平面时,只有支持向量起作用,而其他实例点不起作用。由于支持向量在确定分离超平面中起着决定性作用,所以把这种分类模型称为支持向量机,支持向量的个数一般很少,所以SVM由很少的“重要的”训练样本确定。
(4)核函数:
SVM可以处理线性可分的情况,而对于线性不可分的情况SVM会借助核函数,将当前线性不可分的数据映射到高维空间以达到线性可分的目的。
线性核:不会对原始特征空间进行转化,只能进行线性可分的数据。
多项式核函数: Q不可以过大,同时需要选择的参数有三个。
二、拉格朗日乘子法
解决带约束条件的极值问题
作为一种优化算法,拉格朗日乘子法的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题,或拉格朗日乘子法通过将k个约束条件转化进偏导方程组中的k个等式从而使得原问题不再出现约束。拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数。
KTT条件
三、对偶问题
为了方便求解,把原始最优化问题转化成了其对偶问题,因为对偶问题是一个凸二次规划问题,这样的凸二次规划问题具有全局最优解。
对偶问题就是将min与max位置互换。
关于对偶算法:
1.对偶算法更易求解。
2.对偶算法方便使用核技巧,解决非线性可分的问题。
出发点:将有约束优化问题转换为无约束的优化问题。
四、SMO算法
SMO是一个迭代的算法。
选择变量的启发式方法:
1、第1个变量的选择:
SMO称第1个变量的选择称为外循环。外循环在训练样本中选取违反KKT条件最严重的样本点,将其作为第一个变量。
遍历的时候首先遍历满足的样本点,也就是在间隔边界上的支持向量点,检验是否满足KKT条件;
如果都满足,那么遍历整个训练集,检验是否满足KKT条件。
2、第2个变量的选择:
SMO称第2个变量的选择称为内循环。在找到第一个变量的基础上,第二个变量的标准是希望能使有足够大的变化。
参考:https://blog.csdn.net/jesmine_gu/article/details/84024702
参考:https://blog.csdn.net/qq_32933503/article/details/78164692
参考:https://blog.csdn.net/YlcMeng/article/details/97374550