作者 青鸟

最近在学习数图相关的知识,在数图中经常使用的机器学习方法是线性回归和支持向量机(SVM)。由于支持向量回归(SVR)在图像特征融合中使用的比较多,所以着重介绍关于SVR的芝士

什么是支持向量回归

对于传统的回归模型直接基于模型输出f(x)与真实输出y之间的差别来调整系数,并且当且仅当f(x)和y完全相同时候,损失才为0.与之不同的是支持向量回归(Support Vector Regression 简称SVR)假设我们能容忍一个一个偏差值z,当前仅当f(x)与y之间的差值大于z才计算损失,这相当于以f(x)为中心,构建了一个宽度为2z的间隔带,若训练样本落入此间隔带,则认为预测正确。

这里需要解释的是为什么需要引入一个软间隔z。假如没有软间隔z,我们基于的假设是训练样本在样本空间或特征空间中是线性可分的,即存在一个超平面能将不同类的样本完全划分开。然而,我们其实很难判断我们找到的超平面是不是由于过拟合而造成的在特征空间中线性可分,因此我们引入软间隔来避免过拟合的这种情况。

支持向量回归的非线性拟合

支持向量回归(SVR)可以处理非线性数据的原因在于其能够利用核函数来转换数据,使其在高维空间中线性可分。这是因为SVR的关键思想是将非线性问题映射到一个高维特征空间,然后在该空间中寻找一个线性关系,从而实现对非线性数据的建模。

我们通过表示定理,可以得出结论,表示定理对损失函数没有限制,对正则化项仅要求单调递增,甚至不要求为凸函数,意味着对于一般的损失函数和正则化项,优化问题的最优解h*(x)都可以表示为k(x,xi)的线性组合。我们将一系列基于核函数的学习方法统称为“核方法”。最常见的,通过“核化”(即引入核函数)来将线性学习器拓展为非线性学习器,我们将这个方法称为“核线性判别分析”(KLDA)

使用SVM处理非线性数据的步骤

以下是SVR处理非线性数据的关键步骤:

  1. 核函数:SVR使用核函数来将原始特征映射到一个更高维的特征空间。常用的核函数包括线性核、多项式核、径向基核(RBF核)等。这些核函数可以捕捉数据中的非线性关系。

  2. 高维空间中的线性回归:在高维特征空间中,SVR寻找一个线性超平面,该超平面在高维空间中对应于在原始特征空间中的非线性关系。通过这种方式,SVR能够更好地适应非线性数据的模式。

  3. 控制间隔:SVR的目标是在高维空间中找到一个线性模型,同时最大化数据点距离模型的间隔(也称为间隔边界)。这个间隔边界的宽度可以控制模型对于噪声和离群值的敏感度。

总之,SVR通过核函数和高维空间中的线性建模,允许它处理非线性数据。这使得SVR成为一种强大的工具,能够适应各种数据模式,包括非线性关系。核函数的选择和参数调优通常取决于数据的特性以及要解决的问题。

支持向量回归和线性回归的区别

支持向量回归(SVR)和线性回归是两种用于建立预测模型的不同方法,它们之间有一些关键区别:

  1. 目标函数:

    • 线性回归旨在建立一个线性关系模型,试图找到一条最佳拟合直线或平面来描述自变量与因变量之间的关系。它的目标是最小化平方误差。
    • SVR 是一种支持向量机(SVM)的回归版本,其目标是建立一个边界(或者称之为”间隔”)以容纳大部分数据点,同时尽量减小数据点违反边界的程度。SVR寻求最小化边界内的误差,并且可以容忍一些点超出边界。
  2. 约束:

    • 线性回归通常没有明确的约束,它可以生成任意的线性模型。
    • SVR 强制要求模型尽量容纳大多数数据点在一个边界内,这个边界的宽度由模型参数控制,从而使得模型对于离群值(outliers)更加鲁棒。
  3. 稳健性:

    • SVR 对于离群值具有更好的稳健性,因为它的目标是在一定容忍度内容纳大多数数据点,而线性回归可能对离群值更敏感。
  4. 核函数:

    • SVR 可以使用核函数来处理非线性关系,从而扩展到非线性回归问题。线性回归通常用于线性关系建模,不容易处理非线性数据。

总之,选择使用线性回归还是SVR取决于数据的性质以及您希望模型对于离群值和非线性关系的处理方式。如果您有非线性数据或者需要对离群值更加稳健,SVR可能是一个更好的选择。如果数据是线性的,线性回归可能足够了。

参考资料:

  1. 机器学习(周志华)