术语表

支持向量机 (SVM)

了解支持向量机 (SVM) 在分类、回归和离群点检测方面的强大功能,以及在现实世界中的应用和见解。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

支持向量机(SVM)是一种流行且功能强大的机器学习(ML)监督算法,主要用于分类任务,尽管它在回归(支持向量回归 - SVR)和离群点检测方面也很有效。维基百科上详细介绍的 SVM 是在 20 世纪 90 年代开发的,其工作原理是找到一个最佳边界(称为超平面),将高维空间中属于不同类别的数据点进行最佳分离。其关键思路是最大化边际--超平面与每个类别中最近的数据点(支持向量)之间的距离--这通常会带来对未见数据的良好泛化性能

Svm 如何工作

SVM 的核心原理是找到理想的超平面来划分数据集。对于可以用直线或平面分离的数据(线性可分离数据),SVM 可以识别出在类之间产生最大可能差距的超平面。训练数据中最接近该超平面的数据点被称为支持向量,这些数据点对确定超平面的位置和方向至关重要。这种对边界附近最具挑战性的点的关注使 SVM 具有高效的记忆能力,因为训练后只需要这些支持向量来定义模型。

对于无法用线性边界(非线性可分离数据)区分类别的数据集,SVM 采用了一种称为 "技巧 "的技术。这种巧妙的方法允许 SVM 将原始数据映射到一个可能实现线性分离的高维空间,而无需明确计算这个新空间中的坐标。常见的核函数包括

  • 线性适用于线性可分数据。
  • 多项式使用多项式函数将数据映射到更高维度。
  • 径向基函数 (RBF):适用于复杂的非线性关系。
  • 西格码类似于神经网络 (NN) 中使用的激活函数。

核及其参数的选择至关重要,通常需要仔细调整超参数

相关性和应用

尽管深度学习(DL)兴起,SVM 仍然具有重要意义,尤其是在高维数据(特征多)但训练样本有限的情况下。SVM 以其理论保证和鲁棒性而著称,尤其是当存在明显的分离边际时。从历史上看,SVM 与定向梯度直方图(HOG)等特征提取器相结合,在物体检测等任务中是最先进的,这一点在物体检测的发展过程中也有所体现。

常见的应用包括

  • 图像分类根据图像内容对图像进行分类(例如,区分不同类型的花朵或动物)。SVM 可与从图像中提取的手工特征一起使用,尤其是在中等规模的数据集上,效果显著。
  • 文本分类将文本文档归入预定义的类别,如垃圾邮件检测或客户评论的情感分析。SVM 可以很好地处理高维文本数据(如TF 特征)。
  • 生物信息学用于蛋白质分类或基于基因表达数据的癌症诊断等任务,与样本数量相比,特征数量可能非常庞大。
  • 面部识别根据面部特征识别或验证个人,通常是更大系统的一部分。

优势与局限

优势

  • 高维有效:即使特征数量多于样本数量,也能表现出色。
  • 节省内存:在决策函数中只使用训练点(支持向量)的子集。
  • 用途广泛:可为决策函数指定不同的内核函数,从而灵活处理各种数据类型。
  • 良好的泛化:边际最大化目标通常能使模型在未见过的数据上具有良好的准确性

局限性:

  • 计算密集:在非常大的数据集上,训练速度会很慢。
  • 内核和参数敏感性:性能在很大程度上取决于内核及其参数(如 C、伽玛)的选择,需要仔细调整。
  • 类重叠时性能不佳:如果数据类别严重重叠,则效果不理想。
  • 无直接概率估计:标准 SVM 可生成类别分配,但不能直接得出概率分数。需要使用Platt Scaling等技术将 SVM 输出校准为概率。

Svm 与其他算法的比较

逻辑回归等更简单的算法相比,SVM 的目标是最大化边际,而不仅仅是找到一个分离边界,这可以带来更好的泛化效果。与决策树随机森林等基于树的方法不同,SVM 会构建一个单一的最优超平面(可能在高维空间中)。而现代深度学习模型,如 Ultralytics YOLO等现代深度学习模型擅长从原始数据(如计算机视觉 (CV) 中的像素)中自动提取特征,而 SVM 通常需要仔细的特征工程,但在特征定义明确的较小数据集或特定类型的结构化数据中,SVM 的表现却异常出色。流行的实现包括LibSVMscikit-learn 中的 SVM 模块。使用Ultralytics HUB 等平台可以简化 MLOps 生命周期,从而简化此类模型以及其他各种模型的训练和管理。

阅读全部