统计学习方法(李航)- 第7章支持向量机笔记
SVM是一种二类分类模型,基本的模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使得它有别于感知机。核技巧使得成为非线性分类器。
支持向量机的学习策略就是间隔最大化,可以形式化为求解图二次规划的问题,也等价于正则化的hinge损失函数最小化的,支持向量机的学习方法就是求解凸二次规划的最优化算法。
当输入空间为欧式或者离散空间、特征空间为希尔伯特空间时候,和很熟表示叫输入从输入空间映射到特征空间得到的特征向量的内积。
一般的,当训练数据集线性可分的时候,存在无穷个分离超平面可以将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,不过这时候的解有无穷多个。新型可分支持向量机用间隔最大化求解最优分离超平面,这时候解是唯一的。
间隔最大化
间隔最大化的直观理解是:对训练数据找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类、也就是说不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将他们分开,这样的超平面应该对未知的新实例有很好的分类预测能力。
在决定分离超平面的时候只有支持向量起作用,而其他实例点并不起作用。如果移动支持向量将改变所求的解;但是如果在间隔边界以外移动其他实例点,甚至去掉这些点,则解释不会改变的。由于支持向量在确定分离超平面中起着决定性作用,因此将这种分类模型叫做支持向量机。支持向量个数一般很少,所以支持向量机由很少的重要的训练样本决定。
核技巧
核技巧的想法是,在学习和预测中只定义核函数,而不显示的定义映射函数。通常,计算河汉数比较简答,但是通过映射计算核函数比较不容易。
对于给定的和,特征空间和映射函数的取法并不唯一,可以取不同的特征空间,即便在同一特征空间里也可以取不同映射。
字符串核函数
字符串核函数k_n(s,t)给出了字符换s和t中长度等于n的所有子串组成的特征向量的余弦死盎司度。直观上,两个字符串相同的子串越多,就越相似,字符串核函数的值就越大。字符串核函数可以由动态规划快速计算。
序列最小优化算法(SMO)
SMO算法是一种启发式算法,基本思路是如果所有变量解都满足最优化问题KKT条件,那么这个最优化问题的解就得到了。因为KKT条件是该最优化问题的充分必要条件。否则,选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题。这个这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解。因为这会使得原二次规划问题的目标函数值变得更小。重要的是,这时子问题可以通过解析方法求解,可以大大提高计算速度。子问题有两个变量,一个是违反KKT条件最严重的一个,另一个由约束条件自动确定,如此,SMO算法将原问题不断分解为子问题并对子问题求解。
算法包含两部分:求解两个变量二次规划的解析方法和选择变量的启发式算法。