《机器学习》周志华-CH6(支持向量机)

6.1间隔与支持向量

给定训练样本 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\},y_i\in\{-1,+1\} D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,+1}分类学习最基本的想法是基于训练集 D D D在样本空间找到一个划分超平面,将不同类别样本分析。

应该找位于两类训练样本"正空间"的划分超平面,如红色的,泛化能力最强,鲁棒性最强。

划分超平面可通过如下线性方程描述:
w T x + b = 0 \begin{equation} w^Tx+b=0 \tag{6.1} \end{equation} wTx+b=0(6.1)

w = ( w 1 , ; w 2 ; . . . w d ) w=(w_1,;w_2;...w_d) w=(w1,;w2;...wd)为法向量, b b b为维向量,决定超平面与原点之间距离

划分超平面由法向量 w w w和位移 b b b确定,记为 ( w , b ) (w,b) (w,b)

任意点 x x x到超平面 ( w , b ) (w,b) (w,b)的距离可写为:
r = ∣ w T x + b ∣ ∣ ∣ x ∣ ∣ \begin{equation} r=\frac{|w^{T}x+b|}{||x||} \tag{6.2} \end{equation} r=∣∣x∣∣∣wTx+b∣(6.2)

假设超平面 ( w , b ) (w,b) (w,b)可将训练样本正确分类

欲找到具有"最大间隔"(maximum margin)的划分超平面,也就是要找满足约束的 w w w和 b b b,使得 γ \gamma γ最大,即:

6.2对偶问题

求解(6.6)来得到最大划分对应模型

解出 α \alpha α后,求出 w w w与 b b b即可得模型

f ( x ) = w T + b = ∑ i = 1 m α i y i x i T x + b \begin{equation} f(x)=w^T+b=\sum_{i=1}^m\alpha_{i}y_{i}x_{i}^{T}x+b \tag{6.12} \end{equation} f(x)=wT+b=i=1∑mαiyixiTx+b(6.12)

对任意训练样本 ( x i , y i ) (x_i,y_i) (xi,yi)总有 α i = 0 \alpha_i=0 αi=0或 y i f ( x i ) = 1 y_if(x_i)=1 yif(xi)=1

若 α i = 0 \alpha_i=0 αi=0,则样本不会在(6.12)中出现,不会对 f ( x ) f(x) f(x)有影响

若 α i > 0 \alpha_i>0 αi>0,则必有 y i f ( x i ) = 1 y_if(x_i)=1 yif(xi)=1,对应样本点位于最大间隔边界上,是支持向量。

支持向量机性质:

训练完成后,大部分训练样本都不需要保留,最终模型仅与支持向量有关。

如何求解(6.11)?

二次规划算法正比于训练样本数,会造成较大开销。

SMO(Sequential Minimal Optimization)是高效算法,著名代表。

SMO基本思路:

先固定 α i \alpha_i αi之外的所有参数,然后求 α i \alpha_i αi上的极值。

参数初始化后,SMO不断执行如下两个步骤至收敛:

  • 选取一对需更新的变量 α i \alpha_i αi和 α j \alpha_j αj;
  • 固定 α i \alpha_i αi和 α j \alpha_j αj以外的参数,求解(6.11)获得更新后的 α i \alpha_i αi和 α j \alpha_j αj

KKT条件违背的程度越大,则变量更新后可能导致的目标函数值减幅越大

使选取的两变量所对应样本之间的间隔最大

SMO高效因为在固定其他参数后,优化两个参数的过程能做到非常高效

仅考虑 α i \alpha_i αi和 α j \alpha_j αj时,(6.11)约束可写为:

6.3核函数

可将样本从原始空间映射到一个更高维的特征空间

如果原始空间是有限维,属性数有限,一定存在一个高维特征空间使样本可分:


(6.24)显示模型最优解可通过训练样本的核函数展开,亦称"支持向量展开式"

若已知合适映射 ϕ ( ⋅ ) \phi(\cdot) ϕ(⋅)的具体形式,则可写成核函数 κ ( ⋅ , ⋅ ) \kappa(\cdot,\cdot) κ(⋅,⋅)

定理6.1(核函数):

令 χ \chi χ为输入空间, κ ( ⋅ , ⋅ ) \kappa(\cdot,\cdot) κ(⋅,⋅)是定义在 χ × χ \chi\times\chi χ×χ的对称函数 ,则 κ \kappa κ是核函数当且仅当对于任意数据 D = { x , , x 2 , . . . , x m } D=\{x_,,x_2,...,x_m\} D={x,,x2,...,xm},"核矩阵"(kernel matrix) K K K总是半正定的;

只要一个对称函数所对应的矩阵半正定,它总能作为核函数使用

对于一个半正定核矩阵,总能找到一个与之对应的映射 ϕ \phi ϕ

任意一个核函数都隐式地定义了一个称为"再生核希尔伯特空间"(Reproducing Kernel Hilbert Space,简称RKHS)的特征空间

我们希望样本在特征空间内线性可分,因此特征空间的好坏对支持向量机的性能至关重要。

也可通过函数组合得到:

  • 若 κ 1 \kappa_1 κ1和 κ 2 \kappa_2 κ2为核函数,则对于任意正数 γ 1 、 γ 2 \gamma_1、\gamma_2 γ1、γ2,其线性组合
    γ 1 κ 1 + γ 2 κ 2 也是核函数 \begin{equation} \gamma_1\kappa_1+\gamma_2\kappa_2 \quad\quad\quad也是核函数 \tag{6.25} \end{equation} γ1κ1+γ2κ2也是核函数(6.25)
  • 若 κ 1 \kappa_1 κ1和 κ 2 \kappa_2 κ2为核函数,则核函数的直积

κ 1 ⊗ κ 2 ( x , z ) = κ 1 ( x , z ) κ 2 ( x , z ) 也是核函数 \begin{equation} \kappa_1\otimes\kappa_2(x,z)=\kappa_1(x,z)\kappa_2(x,z) \quad\quad\quad也是核函数 \tag{6.26} \end{equation} κ1⊗κ2(x,z)=κ1(x,z)κ2(x,z)也是核函数(6.26)

  • 若 κ 1 \kappa_1 κ1为核函数,则对于任意函数 g ( x ) g(x) g(x)

κ 1 ( x , z ) = g ( x ) κ 1 ( x , z ) g ( z ) 也是核函数 \begin{equation} \kappa_1(x,z)=g(x)\kappa_1(x,z)g(z) \quad\quad\quad也是核函数 \tag{6.26} \end{equation} κ1(x,z)=g(x)κ1(x,z)g(z)也是核函数(6.26)

6.4软间隔与正则化

前面讨论在,假定存在一个超平面可将不同类样本完全分开。然而,现实中很难出现这种完美情况,缓解该问题办法是允许支持向量机在一些样本上出错,引出"软间隔"(soft margin)概念。


能否用对率损失函数来替代损失函数?

  • 支持向量机与对率回归优化目标相近,通常性能相当
  • 优势在于输出具有自然的概率意义
  • 对率回归可直接用于多分类任务
  • 对率回归的解依赖于更多的训练样本,预测开销更大


6.5支持向量回归

给定训练样本 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , y i ∈ R D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\},y_i\in{R} D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈R,希望学得一个形如(6.7) f ( x ) = w T + b f(x)=w^T+b f(x)=wT+b的回归模型,使得 f ( x ) f(x) f(x)与 y y y尽可能相近, w , b w,b w,b得求。

支持向量回归(Suport Vector Regressiom,SVR) 假设完美能容忍 f ( x ) f(x) f(x)与 y y y之间最多有 ξ \xi ξ的偏差,仅当 f ( x ) f(x) f(x)与 y y y之间差别绝对值大于 ξ \xi ξ才计算损失。

相当于以 f ( x ) f(x) f(x)为中心,构建了一个宽度为 ξ \xi ξ的间隔带,若落入此带,则认为被预测正确,带中不计算损失


将(6.47)代入(6.7) f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b中,则SVR解形如:

6.6核方法



相关推荐
deephub2 分钟前
使用 PyTorch-BigGraph 构建和部署大规模图嵌入的完整教程
人工智能·pytorch·深度学习·图嵌入
deephub34 分钟前
优化注意力层提升 Transformer 模型效率:通过改进注意力机制降低机器学习成本
人工智能·深度学习·transformer·大语言模型·注意力机制
搏博1 小时前
神经网络问题之二:梯度爆炸(Gradient Explosion)
人工智能·深度学习·神经网络
KGback1 小时前
【论文解析】HAQ: Hardware-Aware Automated Quantization With Mixed Precision
人工智能
电子手信1 小时前
知识中台在多语言客户中的应用
大数据·人工智能·自然语言处理·数据挖掘·知识图谱
不高明的骗子1 小时前
【深度学习之一】2024最新pytorch+cuda+cudnn下载安装搭建开发环境
人工智能·pytorch·深度学习·cuda
Chef_Chen1 小时前
从0开始学习机器学习--Day33--机器学习阶段总结
人工智能·学习·机器学习
搏博1 小时前
神经网络问题之:梯度不稳定
人工智能·深度学习·神经网络
databook1 小时前
『玩转Streamlit』--布局与容器组件
python·机器学习·数据分析
GL_Rain1 小时前
【OpenCV】Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
人工智能·opencv·计算机视觉