第六章 支持向量机
此系列文章旨在提炼周志华《机器学习》的核心要点,不断完善中…
6.1 间隔与支持向量
-
超平面(w,b)
存在多个划分超平面将两类样本分开
线性方程
w:法向量,决定超平面方向
b:位移项,决定超平面与原点之间的距离
样本空间中任意点到超平面的距离 -
支持向量(super vector)
条件一:距离超平面最近的几个训练样本点
条件二:使得右边任一式子的等号成立 -
间隔(margin)
两个一类支持向量到超平面的距离直和 -
最大间隔(maximum margin)
对应的划分超平面
支持向量机的基本型
6.2 对偶问题
6.2.1 凸二次规划问题(convex quadratic programming)
6.2.2 对偶问题(dual problem)
- 更高效求解参数w和b的方法:拉格朗日乘子法
对SVM基本型式子的每条约束添加大于等于零的拉格朗日乘子,得到该问题的拉格朗日函数
令L(w,b,α)对w和b的偏导为零
将L(w,b,α)中的w和b消去,得到SVM基本型式子的对偶问题 - KKT(Karush-Kuhn-Tucker)条件
- 求解对偶问题中的α
思路:当做二次规划问题求解
算法- 二次规划算法
缺点:问题的规模正比于训练样本数,开销大 - SMO(Sequential Minimal Optimization)算法
选取一对需更新的变量
固定这对变量以外的参数,求解对偶问题式中获得更新后的参数
不断执行,直到收敛
- 二次规划算法
- 确定偏移项b
思路:使用所有支持向量求解的平均值
6.2.3 支持向量机的重要性质
训练完成后大部分的训练样本都不需保留,最终模型仅与支持向量有关
6.3 核函数
-
起初
对非线性可分问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分
如:异或问题与非线性映射 -
对偶问题
目标函数
限制条件
困难性:由于特征空间维数可能很高,甚至无穷维,直接计算特征向量内积通常是困难的
进行函数变换 -
支持向量展式(support vector expansion)
模型最优解可通过训练样本的核函数展开 -
核函数定理
核矩阵(kernel matrix)K总是半正定的
只要一个对称函数所对应的核矩阵半正定,就能用作核函数
对于一个半正定矩阵,总能找到一个与之对应的映射
任何一个核函数都隐式地定义了一个称谓“再生核希尔伯特空间”(RKHS)的特征空间 -
常用的核函数
线性核
多项式核(d=1退化为线性核)
高斯核(RBF核)
拉普拉斯核
Sigmoid核 -
注意点
特征空间的好坏对支持向量机的性能至关重要
“核函数选择”成为支持向量机的最大变数
6.4 软间隔与正则化
- 硬间隔(hard margin):要求所有样本均满足约束,即所有样本都必须划分正确
- 软间隔(soft margin)
- 解决现实任务:很难确定合适的核函数使得训练样本在特征空间中线性可分
- 缓解的方法:允许支持向量机在一些样本上出错
允许某些样本不满足约束
不满足约束的样本应尽可能少 - 新的优化目标函数
- 替代损失(surrogate loss)
- 替代损失函数比0/1损失函数一般具有较好的数学性质
凸的连续函数
0/1损失函数的上界 - 常用的替代损失函数
hinge损失
指数损失(exponential loss)
对率损失(logistic loss)
- 替代损失函数比0/1损失函数一般具有较好的数学性质
- 松弛变量(slack variables)
新的目标函数
限制条件 - 正则化(regularization)
- 各种替代损失函数学习模型的共性
结构风险(structural risk):优化目标中的第一项用来描述划分超平面的“间隔”大小
经验风险(empirical risk):另一项用来表述训练集上的误差
C用于对二者进行折中 - 可理解为一种“罚函数法”:对不希望得到的结果施以惩罚,从而使得优化过程中趋向于希望目标
- 正则化问题
Ω(f):正则化项(Lp范数是常用的正则化项)
Lo范数||w||o
L1范数||w||1倾向于w的分量尽量稀疏,即非零分量个数尽量少
L2范数||w||2倾向于w的分量尽量取值均衡,即非零分量个数尽量稠密
C:正则化常数
- 各种替代损失函数学习模型的共性
6.5 支持向量回归
ε-间隔带:容忍f(x)与y之间最多有ε的偏差(认为此带中的预测正确)
SVR问题形式
ε-不敏感损失函数
1)表达式
2)图像
SVR式子重写(间隔带两次的松弛程度可以不同,引入两个松弛变量)
引入拉格朗日乘子、偏导为零、对偶问题、KKT条件、求解w和b,特征映射、核函数
6.6 核方法
- 表示定理(representer theorem)
- 核函数的巨大威力
表示定理对损失函数没有限制
对正则化项Ω仅要求单调递增,不要求是凸函数 - 核方法定义:基于核函数的学习方法
- 核方法的常见用法:通过“核化”(引入核函数)将线性学习器拓展为非线性学习器
核线性判别分析(Kernelized Linear Discriminant Analysis, KLDA)