机器学习13——支持向量机下

支持向量机下

非线性支持向量机(Non-linear SVMs)详解

核心思想

当数据在原始空间线性不可分时,通过**核技巧(Kernel Trick)**将数据映射到高维特征空间,使其在该空间中线性可分。

比如以下的样本在一维空间不可分,但是映射到二维空间变得线性可分:

关键步骤
  • 特征映射(Feature Mapping)

    定义映射函数 ϕ:Rd→RD\phi: \mathbb{R}^d \to \mathbb{R}^Dϕ:Rd→RD(D≫dD \gg dD≫d),将原始特征 x\mathbf{x}x 映射到高维空间 ϕ(x)\phi(\mathbf{x})ϕ(x)。

  • 映射后,分类器函数变成了:
    g(x)=wTϕ(x)+b=∑xi∈SVλiyiϕ(xi)ϕ(x)+b g(x)=w^T \phi(x)+b=\sum_{x_i \in S V} \lambda_i y_i \phi\left(x_i\right) \phi(x)+b g(x)=wTϕ(x)+b=xi∈SV∑λiyiϕ(xi)ϕ(x)+b

  • 但是我们其实并不需要找到这个映射函数,然后将样本映射到高维空间后做内积!!我们可以用一个Kernel Trick:

    • 核函数(Kernel Function)

      直接计算高维空间的内积,避免显式映射。也就是我们可以在样本空间(原空间维度)下计算高维下样本的内积结果:
      K(xi,xj)=ϕ(xi)Tϕ(xj) K(\mathbf{x}_i, \mathbf{x}_j) = \phi(\mathbf{x}_i)^T \phi(\mathbf{x}_j) K(xi,xj)=ϕ(xi)Tϕ(xj)

    • 示例:

      • 一个二维空间样本:x=[x1x2];\mathrm{x}=\left[\begin{array}{ll}x_1 & x_2\end{array}\right] ;x=[x1x2];

      • 让核函数K(xi,xj)=(1+xiTxj)2K\left(\mathrm{x}{\mathrm{i}}, \mathrm{x}{\mathrm{j}}\right)=\left(1+\mathrm{x}{\mathrm{i}}^{\mathrm{T}} \mathrm{x}{\mathrm{j}}\right)^2K(xi,xj)=(1+xiTxj)2,即K(xi,xj)=φ(xi)Tφ(xj)K\left(\mathrm{x}{\mathrm{i}}, \mathrm{x}{\mathrm{j}}\right)=\varphi\left(\mathrm{x}{\mathrm{i}}\right)^{\mathrm{T}} \varphi\left(\mathrm{x}{\mathrm{j}}\right)K(xi,xj)=φ(xi)Tφ(xj)

      • 我们有:
        K(Xi,Xj)=(1+Xi⊤Xj)2=1+Xi12Xj12+2Xi1Xj1Xi2Xj2+Xi22Xj22+2Xi1Xj1+2Xi2Xj2=[1Xi122Xi1Xi2Xi222Xi12Xi2][1Xj122Xj1Xj2Xj222Xj12Xj2]⊤=φ(Xi)⊤φ(Xj),where φ(X)=[1X122X1X2X222X12X2]⊤ \begin{aligned} K\left(X_i, X_j\right) &= \left(1 + X_i^{\top} X_j \right)^2 \\ &= 1 + X_{i1}^2 X_{j1}^2 + 2 X_{i1} X_{j1} X_{i2} X_{j2} + X_{i2}^2 X_{j2}^2 + 2 X_{i1} X_{j1} + 2 X_{i2} X_{j2} \\ &= \left[ \begin{array}{llll} 1 & X_{i1}^2 & \sqrt{2} X_{i1} X_{i2} & X_{i2}^2 & \sqrt{2} X_{i1} & \sqrt{2} X_{i2} \end{array} \right] \left[ \begin{array}{llll} 1 & X_{j1}^2 & \sqrt{2} X_{j1} X_{j2} & X_{j2}^2 & \sqrt{2} X_{j1} & \sqrt{2} X_{j2} \end{array} \right]^{\top} \\ &= \varphi\left(X_i\right)^{\top} \varphi\left(X_j\right), \quad \text{where } \varphi(X) = \left[ \begin{array}{llllll} 1 & X_1^2 & \sqrt{2} X_1 X_2 & X_2^2 & \sqrt{2} X_1 & \sqrt{2} X_2 \end{array} \right]^{\top} \end{aligned} K(Xi,Xj)=(1+Xi⊤Xj)2=1+Xi12Xj12+2Xi1Xj1Xi2Xj2+Xi22Xj22+2Xi1Xj1+2Xi2Xj2=[1Xi122 Xi1Xi2Xi222 Xi12 Xi2][1Xj122 Xj1Xj2Xj222 Xj12 Xj2]⊤=φ(Xi)⊤φ(Xj),where φ(X)=[1X122 X1X2X222 X12 X2]⊤

    • 常用核函数

      • 线性核 :K(xi,xj)=xiTxjK(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i^T \mathbf{x}_jK(xi,xj)=xiTxj
      • 多项式核 :K(xi,xj)=(1+xiTxj)pK(\mathbf{x}_i, \mathbf{x}_j) = (1 + \mathbf{x}_i^T \mathbf{x}_j)^pK(xi,xj)=(1+xiTxj)p
      • 高斯核(RBF) :K(xi,xj)=exp⁡(−∥xi−xj∥22σ2)K(\mathbf{x}_i, \mathbf{x}_j) = \exp\left(-\frac{\|\mathbf{x}_i - \mathbf{x}_j\|^2}{2\sigma^2}\right)K(xi,xj)=exp(−2σ2∥xi−xj∥2)
      • Sigmoid核 :K(xi,xj)=tanh⁡(β0xiTxj+β1)K(\mathbf{x}_i, \mathbf{x}_j) = \tanh(\beta_0 \mathbf{x}_i^T \mathbf{x}_j + \beta_1)K(xi,xj)=tanh(β0xiTxj+β1)
  • 对偶问题优化

    使用核函数替换内积,对偶问题变为:
    max⁡λ∑i=1nλi−12∑i,j=1nλiλjyiyjK(xi,xj)s.t.0≤λi≤C,∑i=1nλiyi=0 \begin{aligned} \max_{\lambda} \quad & \sum_{i=1}^n \lambda_i - \frac{1}{2} \sum_{i,j=1}^n \lambda_i \lambda_j y_i y_j K(\mathbf{x}_i, \mathbf{x}j) \\ \text{s.t.} \quad & 0 \leq \lambda_i \leq C, \quad \sum{i=1}^n \lambda_i y_i = 0 \end{aligned} λmaxs.t.i=1∑nλi−21i,j=1∑nλiλjyiyjK(xi,xj)0≤λi≤C,i=1∑nλiyi=0

    求解后得到判别函数:
    g(x)=∑xi∈SVλiyiK(x,xi)+b g(\mathbf{x}) = \sum_{\mathbf{x}_i \in SV} \lambda_i y_i K(\mathbf{x}, \mathbf{x}_i) + b g(x)=xi∈SV∑λiyiK(x,xi)+b

    其中偏移项 bbb 通过支持向量计算:
    b=yk−∑xi∈SVλiyiK(xi,xk),0<λk<C b = y_k - \sum_{\mathbf{x}_i \in SV} \lambda_i y_i K(\mathbf{x}_i, \mathbf{x}_k), \quad 0 < \lambda_k < C b=yk−xi∈SV∑λiyiK(xi,xk),0<λk<C

  • 算法流程:

    1. 选择核函数
    2. 选择一个C的值
    3. 求解二次规划问题 ,得到 λi\lambda_iλi 和 bbb。
    4. 从支持向量构造分类函数
Other issues(使用 SVM 时需要注意的问题)
  1. Choice of kernel(核函数的选择)
  • 在 SVM 中,核函数(kernel function)是关键,它定义了如何将数据从输入空间映射到高维特征空间。
  • 常见的默认核函数是:
    • 高斯核(Gaussian kernel / RBF kernel)
    • 多项式核(Polynomial kernel)
  • 这些核函数在很多通用任务上效果不错,但:
    • 如果效果不佳,就需要更复杂的核函数(例如:字符串核、图核、语义核等),这时候可以结合具体任务设计。
  1. Domain experts can help formulate appropriate similarity measures
  • 专业领域的知识可以帮助设计适合该任务的相似性度量方式,也就是定制核函数;
  • 例如在生物信息学、图像识别等任务中,专家可以帮助构建更合适的核函数结构。
  1. Choice of kernel parameters(核函数参数的选择)
  • 以高斯核为例,其形式是:
    K(xi,xj)=exp⁡(−∥xi−xj∥22σ2) K(x_i, x_j) = \exp\left(-\frac{\|x_i - x_j\|^2}{2\sigma^2}\right) K(xi,xj)=exp(−2σ2∥xi−xj∥2)

    其中:

    • σ\sigmaσ 控制核的"宽度",即数据点之间多远才被认为是"相似"的。
    • 有经验规则认为:σ\sigmaσ 可设为"类别不同的最近样本点之间的距离"。
  • 在缺乏理论依据时,常用:

    • 验证集(validation set)
    • 交叉验证(cross-validation)
      来选择最优参数。
  1. Optimization criterion - Hard margin vs. Soft margin(优化标准)
  • Hard margin SVM
    • 要求所有样本完全分开(间隔大,零误差),适用于数据线性可分的情况;
  • Soft margin SVM
    • 允许一定的分类错误,引入松弛变量,更适用于现实世界中不可分的数据;
  • 实际应用中常常需要:
    • 通过大量试验调整不同参数来选择最优设置,比如 C 值(正则化参数)、核函数和其参数等。
Comparison with Neural Networks(与神经网络的比较)
特性 神经网络(Neural Networks) 支持向量机(SVM)
特征映射 隐藏层将数据映射到低维空间(逐层抽象) 核函数将数据映射到高维空间(甚至无限维)
搜索空间 存在多个局部最小值(非凸优化) 唯一全局最小值(凸优化问题)
训练效率 训练成本高(梯度下降迭代,需调网络结构) 训练效率高(凸优化,理论保证)
分类效率 分类效率高(一次前向传播) 分类效率也高(通过支持向量计算)
模型参数 需要选择隐藏单元数和层数(模型复杂) 只需选择核函数和 C(简洁)
泛化性能 在典型任务中表现良好 同样在多数任务中表现优越,且对噪声更鲁棒
相关推荐
GIS小天10 分钟前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年8月25日第170弹
人工智能·算法·机器学习·彩票
Ronin-Lotus2 小时前
深度学习篇--- ResNet-18
人工智能·深度学习·resnet
说私域3 小时前
基于开源 AI 智能名片链动 2+1 模式 S2B2C 商城小程序的新开非连锁品牌店开业引流策略研究
人工智能·小程序·开源
moonsims3 小时前
无人机和无人系统的计算机视觉-人工智能无人机
人工智能·计算机视觉·无人机
钓了猫的鱼儿3 小时前
无人机航拍数据集|第27期 无人机交通目标检测YOLO数据集3717张yolov11/yolov8/yolov5可训练
人工智能·yolo·目标检测
tzc_fly3 小时前
rbio1:以生物学世界模型为软验证器训练科学推理大语言模型
人工智能·语言模型·自然语言处理
北方有星辰zz4 小时前
语音识别:概念与接口
网络·人工智能·语音识别
阿里-于怀4 小时前
携程旅游的 AI 网关落地实践
人工智能·网关·ai·旅游·携程·higress·ai网关
赴3355 小时前
神经网络和深度学习介绍
人工智能·深度学习·反向传播
爱看科技5 小时前
英伟达新架构9B模型引领革命,谷歌/阿里/微美全息AI多维布局锻造底座竞争力
人工智能·架构