本文主要是介绍机器学习理论 | 周志华西瓜书 第六章:支持向量机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第六章 支持向量机
此系列文章旨在提炼周志华《机器学习》的核心要点,不断完善中…
6.1 间隔与支持向量
-
超平面(w,b)
存在多个划分超平面将两类样本分开的情况
线性方程: w T x + b = 0 w^Tx+b=0 wTx+b=0- w w w:法向量,决定超平面方向
- b b b:位移项,决定超平面与原点之间的距离
样本空间中任意点到超平面的距离: r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|w^Tx+b|}{||w||} r=∣∣w∣∣∣wTx+b∣
-
支持向量(super vector)
条件一:距离超平面最近的几个训练样本点
条件二:使得下方任一式子的等号成立
{ w T x i + b ≥ + 1 , y i = + 1 w T x i + b ≤ − 1 , y i = − 1 \begin{cases} w^Tx_i+b≥+1,y_i=+1\\ w^Tx_i+b≤-1,y_i=-1 \end{cases} {wTxi+b≥+1,yi=+1wTxi+b≤−1,yi=−1
-
间隔(margin)
两个一类支持向量到超平面的距离直和: r = 2 ∣ ∣ w ∣ ∣ r=\frac 2{||w||} r=∣∣w∣∣2 -
最大间隔(maximum margin)
对应的划分超平面
m a x w , b 2 ∣ ∣ w ∣ ∣ max_{w,b}\ \frac 2{||w||} maxw,b ∣∣w∣∣2
s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . m s.t. \ y_i(w^Tx_i+b)≥1,i=1,2,...m s.t. yi(wTxi+b)≥1,i=1,2,...m
支持向量机的基本型
m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 min_{w,b}\ \frac 1 2||w||^2 minw,b 21∣∣w∣∣2
s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . m s.t. \ y_i(w^Tx_i+b)≥1,i=1,2,...m s.t. yi(wTxi+b)≥1,i=1,2,...m
上式就是凸二次规划问题
6.2 对偶问题
6.2.1 凸二次规划问题(convex quadratic programming)
6.2.2 对偶问题(dual problem)
- 更高效求解参数w和b的方法:拉格朗日乘子法
对SVM基本型式子的每条约束添加大于等于零的拉格朗日乘子,得到该问题的拉格朗日函数:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(\bm w,b,\bm{\alpha})=\frac 1 2||\bm w||^2+\sum_{i=1}^m\alpha_i(1-y_i(\bm w^T\bm x_i+b)) L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))
令L(w,b,α)对w和b的偏导为零
w = ∑ i = 1 m α 1 y i x i , 0 = ∑ i = 1 m α i y i \bm w=\sum_{i=1}^m\alpha_1y_i\bm x_i,\ 0=\sum_{i=1}^m\alpha_iy_i w=i=1∑mα1yixi, 0=i=1∑mαiyi
将L(w,b,α)中的w和b消去,得到SVM基本型式子的对偶问题
m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j max_\bm \alpha\sum_{i=1}^m\alpha_i-\frac 1 2\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\bm x_i^T\bm x_j maxαi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , . . . m s.t.\ \sum_{i=1}^m\alpha_iy_i=0,\ \alpha_i≥0,i=1,2,...m s.t. i=1∑mαiyi=0, αi≥0,i=1,2,...m - KKT(Karush-Kuhn-Tucker)条件
{ α i ≥ 0 ; y i f ( x i ) − 1 ≥ 0 ; α i ( y i f ( x i ) − 1 ) = 0 b \begin{cases} \alpha_i≥0;\\ y_if(\bm x_i)-1≥0;\\ \alpha_i(y_if(\bm x_i)-1)=0b \end{cases} ⎩⎪⎨⎪⎧αi≥0;yif(xi)−1≥0;αi(yif(xi)−1)=0b - 求解对偶问题中的α
思路:当做二次规划问题求解
算法- 二次规划算法
缺点:问题的规模正比于训练样本数,开销大 - SMO(Sequential Minimal Optimization)算法
选取一对需更新的变量
固定这对变量以外的参数,求解对偶问题式中获得更新后的参数
不断执行,直到收敛
- 二次规划算法
- 确定偏移项b
思路:使用所有支持向量求解的平均值
6.2.3 支持向量机的重要性质
训练完成后大部分的训练样本都不需保留,最终模型仅与支持向量有关
6.3 核函数
-
起初
对非线性可分问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分
如:异或问题与非线性映射
-
对偶问题
目标函数: m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) max_\alpha\sum_{i=1}^m\alpha_i-\frac 1 2 \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \phi(\bm x_i)^T\phi(\bm x_j) maxα∑i=1mαi−21∑i=1m∑j=1mαiαjyiyjϕ(xi)Tϕ(xj)
限制条件: ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , . . . , m \sum_{i=1}^m \alpha_i y_i=0, \alpha_i≥0, i=1,2,...,m ∑i=1mαiyi=0,αi≥0,i=1,2,...,m
困难性:由于特征空间维数可能很高,甚至无穷维,直接计算特征向量内积通常是困难的
进行函数变换: m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j K ( x i , x j ) max_\alpha\sum_{i=1}^m\alpha_i-\frac 1 2 \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \mathcal{K}(\bm x_i,\bm x_j) maxα∑i=1mαi−21∑i=1m∑j=1mαiαjyiyjK(xi,xj) -
支持向量展式(support vector expansion)
模型最优解可通过训练样本的核函数展开
f ( x ) = w T ϕ ( x ) + b = ∑ i = 1 m α i y i ϕ ( x i ) T ϕ ( x ) + b = ∑ i = 1 m α i y i K ( x , x i ) + b \begin{aligned} f(\bm x)&=\bm w^T\phi (\bm x)+b \\ &=\sum_{i=1}^m \alpha_i y_i \phi (\bm x_i)^T\phi(\bm x)+b\\&=\sum_{i=1}^m\alpha_i y_i \mathcal{K}(\bm x,\bm x_i)+b \end{aligned} f(x)=wTϕ(x)+b=i=1∑mαiyiϕ(xi)Tϕ(x)+b=i=1∑mαiyiK(x,xi)+b -
核函数定理
核矩阵(kernel matrix)K总是半正定的
只要一个对称函数所对应的核矩阵半正定,就能用作核函数
对于一个半正定矩阵,总能找到一个与之对应的映射
任何一个核函数都隐式地定义了一个称谓“再生核希尔伯特空间”(RKHS)的特征空间 -
常用的核函数
线性核: K ( x i , x j ) = x i T x j \mathcal{K}(\bm x_i,\bm x_j)=\bm x_i^T\bm x_j K(xi,xj)=xiTxj
多项式核(d=1退化为线性核): K ( x i , x j ) = ( x i T x j ) d \mathcal{K}(\bm x_i,\bm x_j)=(\bm x_i^T\bm x_j)^d K(xi,xj)=(xiTxj)d
高斯核(RBF核): K ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 ) \mathcal{K}(\bm x_i,\bm x_j)=exp(-\frac{||\bm x_i-\bm x_j||^2}{2\sigma^2}) K(xi,xj)=exp(−2σ2∣∣xi−xj∣∣2)
拉普拉斯核: K ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ σ ) \mathcal{K}(\bm x_i,\bm x_j)=exp(-\frac{||\bm x_i-\bm x_j||}{\sigma}) K(xi,xj)=exp(−σ∣∣xi−xj∣∣)
Sigmoid核: K ( x i , x j ) = t a n h ( β x i T x j + θ ) \mathcal{K}(\bm x_i,\bm x_j)=tanh(\beta \bm x_i^T \bm x_j +\theta) K(xi,xj)=tanh(βxiTxj+θ) -
注意点
特征空间的好坏对支持向量机的性能至关重要
“核函数选择”成为支持向量机的最大变数
6.4 软间隔与正则化
- 硬间隔(hard margin):要求所有样本均满足约束,即所有样本都必须划分正确
- 软间隔(soft margin)
- 解决现实任务:很难确定合适的核函数使得训练样本在特征空间中线性可分
- 缓解的方法:允许支持向量机在一些样本上出错
允许某些样本不满足约束: y i ( w T x i + b ) ≥ 1 y_i(\bm w^T \bm x_i +b)≥1 yi(wTxi+b)≥1
不满足约束的样本应尽可能少 - 新的优化目标函数: m i n w . b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 2 l 0 / 1 ( y i ( w T x i + b ) − 1 ) min_{w.b}\ \frac 1 2||\bm w||^2 +C\sum_{i=1}^2l_{0/1}(y_i(\bm w^T\bm x_i+b)-1) minw.b 21∣∣w∣∣2+C∑i=12l0/1(yi(wTxi+b)−1)
- 替代损失(surrogate loss)
- 替代损失函数比0/1损失函数一般具有较好的数学性质
凸的连续函数
0/1损失函数的上界 - 常用的替代损失函数
hinge损失: l h i n g e ( z ) = m a x ( 0 , 1 − z ) l_{hinge}(z)=max(0,1-z) lhinge(z)=max(0,1−z)
指数损失(exponential loss): l e x p ( z ) = e x p ( − z ) l_{exp}(z)=exp(-z) lexp(z)=exp(−z)
对率损失(logistic loss): l l o g ( z ) = l o g ( 1 + e x p ( − z ) ) l_{log}(z)=log(1+exp(-z)) llog(z)=log(1+exp(−z))
- 替代损失函数比0/1损失函数一般具有较好的数学性质
- 松弛变量(slack variables)
新的目标函数: m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i min_{w,b}\ \frac 1 2||\bm w||^2+C\sum_{i=1}^m\xi_i minw,b 21∣∣w∣∣2+C∑i=1mξi
限制条件: y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 , i = 1 , 2 , . . . m y_i(\bm w^T\bm x_i+b)≥1-\xi_i, \ \xi_i ≥0, i=1,2,...m yi(wTxi+b)≥1−ξi, ξi≥0,i=1,2,...m - 正则化(regularization)
- 各种替代损失函数学习模型的共性: m i n f Ω ( f ) + C ∑ i = 1 m l ( f ( x i ) , y i ) min_f \Omega(f)+C\sum_{i=1}^ml(f(\bm x_i),y_i) minfΩ(f)+C∑i=1ml(f(xi),yi)
- 结构风险(structural risk):优化目标中的第一项用来描述划分超平面的“间隔”大小
- 经验风险(empirical risk):另一项用来表述训练集上的误差
- C用于对二者进行折中
- 可理解为一种“罚函数法”:对不希望得到的结果施以惩罚,从而使得优化过程中趋向于希望目标
- 正则化问题
- Ω(f):正则化项(Lp范数是常用的正则化项)
- Lo范数||w||o
- L1范数||w||1倾向于w的分量尽量稀疏,即非零分量个数尽量少
- L2范数||w||2倾向于w的分量尽量取值均衡,即非零分量个数尽量稠密
- C:正则化常数
- Ω(f):正则化项(Lp范数是常用的正则化项)
- 各种替代损失函数学习模型的共性: m i n f Ω ( f ) + C ∑ i = 1 m l ( f ( x i ) , y i ) min_f \Omega(f)+C\sum_{i=1}^ml(f(\bm x_i),y_i) minfΩ(f)+C∑i=1ml(f(xi),yi)
6.5 支持向量回归
ε-间隔带:容忍f(x)与y之间最多有ε的偏差(认为此带中的预测正确)
SVR问题形式: m i n w . b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m l ε ( f ( x i ) − y i ) min_{w.b}\ \frac 1 2 ||w||^2 +C\sum_{i=1}^m l_{\varepsilon }(f(\bm x_i)-y_i) minw.b 21∣∣w∣∣2+C∑i=1mlε(f(xi)−yi)
ε-不敏感损失函数
1)表达式
{ 0 , i f ∣ z ∣ ≤ ε ∣ z ∣ − ε , o t h e r w i s e \begin{cases} 0,\ \ \ \ \ \ \ \ \ \ if \ |z|≤\varepsilon\\ |z|-\varepsilon,otherwise \end{cases} {0, if ∣z∣≤ε∣z∣−ε,otherwise
2)图像
SVR式子重写(间隔带两次的松弛程度可以不同,引入两个松弛变量)
引入拉格朗日乘子、偏导为零、对偶问题、KKT条件、求解w和b,特征映射、核函数
6.6 核方法
- 表示定理(representer theorem)
- 核函数的巨大威力
表示定理对损失函数没有限制
对正则化项Ω仅要求单调递增,不要求是凸函数 - 核方法定义:基于核函数的学习方法
- 核方法的常见用法:通过“核化”(引入核函数)将线性学习器拓展为非线性学习器
核线性判别分析(Kernelized Linear Discriminant Analysis, KLDA)
这篇关于机器学习理论 | 周志华西瓜书 第六章:支持向量机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!