支持向量机
一、重要概念
1.1、超平面
- i、通过支持向量机求解出的划分超平面是对训练样本局部扰动的 “容忍” 性最好的划分超平面。
- ii、对于所有可能的划分超平面,通过支持向量机求解出的划分超平面所产生的分类结果是较鲁棒的,是对未见示例的泛化能力较强的。
- iii、可以通过求解对偶问题的方法来求解支持向量机的最大间隔划分超平面。
- iV、对于线性可分的训练样本,支持向量机算法学习得到的能够将训练样本正确分类且具有 “最大间隔” 的超平面是存在并且唯一的。
- V、将训练样本分开的超平面仅由支持向量决定。
1.2、最大间隔
- i、两个异类支持向量到超平面的距离之和称之为间隔。
- ii、间隔带两侧的松弛程度可有所不同,支持向量回归也存在对偶问题,支持向量回归模型的解仍然具有稀疏性。
1.3、求解与优化
a、截距项求解:
- i、通过任意支持向量都能够求解出截距项;
- ii、为了提高鲁棒性,通常使用所有支持向量求解的平均值;
- iii、截距项的求解能够体现支持向量机学习到的超平面仅与少量支持向量有关。
- iv、解具有稀疏性
b、优化:
- i、可以通过常规的优化计算包求解
- ii、可以通过SMO进行高效的求解(在使用SMO时需要先推导出支持向量机的对偶问题)
二、求解方法
2.1、拉格朗日乘子法
2.1.1、拉格朗日乘子法
支持向量机基本型是一个凸二次规划问题,能用优化计算包求解,但可以有更高效的办法,拉格朗日乘子法。
引入拉格朗日乘子得到拉格朗日函数,对拉格朗日函数求偏导并令其为0, 回带变量关系。
2.1.2、对偶问题
通过拉格朗日乘子法可以得到支持向量机的对偶问题。
对偶问题需要满足KKT条件,通过对偶问题推导出的模型表达式能够体现解的稀疏性,支持向量机对偶问题得到的目标函数最优值是原始问题目标函数最优值的下界。
KKT条件:
解的稀疏性:训练完成后,最终模型仅与支持向量有关,支持向量机因此而得名。
2.2、SMO
SMO是一个迭代更新的算法,在使用SMO时需要先推导出支持向量机的对偶问题。
基本思路:先选取KKT条件违背程度最大的变量,每次需要选择2个变量并固定其他变量不变,不断执行以上2个步骤直至收敛。
当变量固定后,原始问题具有闭式解。
为了提高鲁棒性,通常使用所有支持向量求解的平均值。
2.3、特征空间映射
若不存在一个能正确划分两类样本的超平面,将样本从原始空间映射到一个更高维的特征空间,使样本在这个特征空间内线性可分。
如果原始空间是有限维(属性数有限),那么一定存在一个高维特征空间使样本线性可分。
将样本映射到高维空间后,支持向量机问题的表达式为:
2.4、核函数
当数据是线性可分时,可以考虑支持向量机的基本型。
当数据是线性不可分时,可以考虑引入核函数的支持向量机。
若使用引入核函数的支持向量机,可以通过模型选择等技术挑选较为合适的核函数。
核函数能绕过显式考虑特征映射,能够缓解计算高维内积的困难,能够直接在原始的特征空间计算。
三、损失
当样本距离超平面的距离小于一定程度时,没有损失。
当样本距离超平面的距离大于一定程度时,有损失且损失随着距离线性增加。