文章目录
6.1 间隔与支持向量
6.1.1 超平面
样本空间中,任意点x到超平面(w,b)的距离公式为: 推导过程
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
(
西
瓜
书
,
6.2
)
r = \frac{|w^Tx+b|} {||w||} \quad (西瓜书,6.2)
r=∣∣w∣∣∣wTx+b∣(西瓜书,6.2)
超平面可以理解为一维空间中的点,二维空间中的线,三维空间中的平面的扩展,是分类的决策边界。支持向量机(Support Vector Machine, SVM)是针对二分类任务设计的,其思想是基于训练样本集D在样本空间找到一个划分超平面,将不同类别的样本划分开。在选择超平面时,应该选择使超平面到离两种类别的样本点尽量远。
6.1.2 支持向量
距离超平面最近的几个训练样本点被称为支持向量
6.1.3 间隔
两个异类支持向量到超平面的距离之和为间隔
6.1.4 最大间隔
间隔最大化:SVM的直观目的就是找到最小函数间隔的样本点(即支持向量),然后最大化它的几何间隔。
要找到最大间隔的超平面,就是要找到满足约束条件的参数w 和 b,使得 r 最大,
即:
max
w
,
b
2
∣
∣
w
∣
∣
,
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
.
(
西
瓜
书
,
6.5
)
\max_{w,b} \frac{2}{||w||} ,\quad s.t.y_i(w^Tx_i+b)\geq1,\quad i=1,2,...,m. \quad (西瓜书,6.5)
w,bmax∣∣w∣∣2,s.t.yi(wTxi+b)≥1,i=1,2,...,m.(西瓜书,6.5)
亦即:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
,
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
.
(
西
瓜
书
,
6.6
)
\min_{w,b} \frac{1}{2} ||w||^2 ,\quad s.t.y_i(w^Tx_i+b)\geq1,\quad i=1,2,...,m. \quad (西瓜书,6.6)
w,bmin21∣∣w∣∣2,s.t.yi(wTxi+b)≥1,i=1,2,...,m.(西瓜书,6.6)
这就是SVM的基本型。
6.2 对偶问题
6.2.1 凸二次规划
公式6.6 本身是一个凸二次规划(convex quadratic programming)问题
6.2.2 对偶问题
更高效求解参数w和b的方法:拉格朗日乘子法
对SVM基本型式子的每条约束添加大于等于零的拉格朗日乘子,得到该问题的拉格朗日函数:
L
(
w
,
b
,
a
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
a
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
(
西
瓜
书
,
6.8
)
L(w,b,a) =\frac {1}{2}||w||^2 + \sum_{i=1}^ma_i(1-y_i(w^Tx_i+b)) \quad(西瓜书,6.8)
L(w,b,a)=21∣∣w∣∣2+i=1∑mai(1−yi(wTxi+b))(西瓜书,6.8)
令L(w,b,α)对w和b的偏导为零:
w
=
∑
i
=
1
m
a
i
y
i
x
i
(
西
瓜
书
,
6.9
)
w=\sum_{i=1}^m a_iy_ix_i \quad(西瓜书,6.9)
w=i=1∑maiyixi(西瓜书,6.9)
0
=
∑
i
=
1
m
a
i
y
i
(
西
瓜
书
,
6.10
)
0=\sum_{i=1}^m a_iy_i \quad(西瓜书,6.10)
0=i=1∑maiyi(西瓜书,6.10)
将L(w,b,α)中的w和b消去,得到SVM基本型式子的对偶问题:
max
a
∑
i
=
1
m
a
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
a
i
a
j
y
i
y
j
x
i
T
x
j
,
(
西
瓜
书
,
6.5
)
\max_{a}\sum_{i=1}^m a_i - \frac {1}{2} \sum_{i=1}^m\sum_{j=1}^m a_i a_j y_i y_j x_i^Tx_j, \quad (西瓜书,6.5)
amaxi=1∑mai−21i=1∑mj=1∑maiajyiyjxiTxj,(西瓜书,6.5)
s
.
t
.
∑
i
=
1
m
a
i
y
i
=
0
,
a
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
.
\quad s.t.\sum_{i=1}^m a_iy_i=0,a_i\geq0,\quad i=1,2,...,m.
s.t.i=1∑maiyi=0,ai≥0,i=1,2,...,m.
KKT(Karush-Kuhn-Tucker)条件
求解对偶问题中的α
思路:当做二次规划问题求解
算法:
- 二次规划算法
缺点:问题的规模正比于训练样本数,开销大 - SMO(Sequential Minimal Optimization)算法
先固定αi之外的所有参数,再求αi上的极值,不断执行,直到收敛。
确定偏移项b
思路:使用所有支持向量求解的平均值
6.2.3 支持向量机的一个重要性质
训练完成后,大部分的训练样本都不用保留,最终模型只与支持向量有关。
6.3 核函数
6.3.1 支持向量展开式
模型最优解可通过训练样本的核函数展开:
6.3.2 核函数定理
- 核矩阵(kernel matrix)K总是半正定的
- 只要一个对称函数所对应的核矩阵半正定,就能用作核函数
- 对于一个半正定矩阵,总能找到一个与之对应的映射
- 任何一个核函数都隐式地定义了一个称谓“再生核希尔伯特空间”(RKHS)的特征空间
特征空间的好坏对支持向量机的性能至关重要。
“核函数的选择”成为支持向量机的最大变数。
6.3.3 常用的核函数
6.3.4 核函数特点
- 两个核函数的线性组合结果也是核函数,即核函数加核函数也是核函数。
- 两个核函数的直积也是核函数,即核函数乘核函数也是核函数。
- 若 k 1 0 k_10 k10为核函数,则对于任意函数 g ( x ) g(x) g(x), k ( x , z ) = g ( x ) k 1 ( x , z ) g ( z ) k(x,z)=g(x)k1(x,z)g(z) k(x,z)=g(x)k1(x,z)g(z)也是核函数。
6.4 软间隔与正则化
6.4.1 硬间隔
hard margin,要求所有样本都必须划分正确,完全线性可分。
6.4.2 软间隔
soft margin,近似线性可分,允许某些样本划分错误。
解决现实问题:
很难确定合适的核函数使得训练样本在特征空间中线性可分。
缓解方法:
- 允许支持向量机在一些样本上出错
- 允许某些样本不满足约束: y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)≥1 yi(wTxi+b)≥1
- 在最大化间隔的同时,使不满足约束的样本尽可能少
软间隔支持向量机的优化目标函数变为:
其中,
l
0
/
1
(
z
)
l_{0/1}(z)
l0/1(z)是0/1损失函数,当z<0时,取值为1;否则为0。
关于常数C,其取无穷大时,约束条件就相当于原SVM条件;
而C取有限值时,允许一些样本出现不满足约束。
6.4.3 替代损失
替代损失(surrogate loss)函数比0/1损失函数一般具有较好的数学性质:
- 凸的连续函数
- 0/1损失函数的上界
常用的替代损失函数:
6.4.4 松弛变量
引入松弛变量(slack variables)
ξ
i
≥
0
ξ_i≥0
ξi≥0 后,新的目标函数:
min
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
,
(
西
瓜
书
,
6.35
)
\min_{w,b,ξ}\frac {1}{2} ||w||^2 + C\sum_{i=1}^mξ_i, \quad (西瓜书,6.35)
w,b,ξmin21∣∣w∣∣2+Ci=1∑mξi,(西瓜书,6.35)
限制条件:
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
ξ
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
y_i(w^Tx_i+b)≥1-ξ_i,ξ_i≥0,i=1,2,...,m
yi(wTxi+b)≥1−ξi,ξi≥0,i=1,2,...,m
这就是常用的“软间隔支持向量机”。
6.5 支持向量回归
支持向量机中的原始样本空间不一定存在符合条件的超平面,但是如果原始空间是有限维,则总存在一个高维特征空间使样本线性可分.核函数就是用来简化计算高维特征空间中的内积的一种方法.核函数选择是支持向量机的最大变数.常用的核函数有线性核,多项式核,高斯核(RBF核),拉普拉斯核,Sigmoid核.对文本数据常用线性核,情况不明时可先尝试高斯核.
SVR问题形式
支持向量回归可以容忍预测输出f(x)和真实输出y之间存在ε的偏差,仅当偏差绝对值大于ε时才计算损失.
支持向量机中许多规划问题都使用拉格朗日对偶算法求解,原因在于改变了算法复杂度.原问题的算法复杂度与样本维度有关,对偶问题的样本复杂度与样本数量有关.如果使用了升维的方法,则此时样本维度会远大于样本数量,在对偶问题下求解会更好.
6.6 核方法
6.6.1 表示定理
核函数的巨大威力
- 表示定理对损失函数没有限制
- 对正则化项Ω仅要求单调递增,不要求是凸函数
核方法定义
基于核函数的学习方法
核方法的常见用法
通过“核化”(引入核函数)将线性学习器拓展为非线性学习器
核线性判别分析(Kernelized Linear Discriminant Analysis, KLDA)
6.7 总结
1. SVM框架步骤:
(1)收集数据:可以用任意方法
(2)准备数据:需要数值型数据
(3)分析数据:有助于可视化分隔超平面
(4)训练算法:主要实现两个参数的调优
(5)测试算法:简单的计算过程就可以实现
(6)使用算法:几乎所有分类算法都可以用SVM
2. 向量机中的原始样本空间不一定存在符合条件的超平面,但是如果原始空间是有限维,则总存在一个高维特征空间使样本线性可分.核函数就是用来简化计算高维特征空间中的内积的一种方法.核函数选择是支持向量机的最大变数.常用的核函数有线性核,多项式核,高斯核(RBF核),拉普拉斯核,Sigmoid核.对文本数据常用线性核,情况不明时可先尝试高斯核.
3. 软间隔是缓解支持向量机过拟合的主要手段,软间隔允许某些样本不满足约束.
4. 支持向量回归可以容忍预测输出f(x)和真实输出y之间存在ε的偏差,仅当偏差绝对值大于ε时才计算损失.
支持向量机中许多规划问题都使用拉格朗日对偶算法求解,原因在于改变了算法复杂度.原问题的算法复杂度与样本维度有关,对偶问题的样本复杂度与样本数量有关.如果使用了升维的方法,则此时样本维度会远大于样本数量,在对偶问题下求解会更好.
6.8 参考资料
《机器学习》(周志华)西瓜书读书笔记(完结)
机器学习 Week 3
西瓜书理解之支持向量机
约束规划问题与凸二次规划
MLb-006 47《机器学习》周志华 第六章:支持向量机
【西瓜书笔记】——支持向量机(SVM)