术语表

支持向量机 (SVM)

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

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

了解更多

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

Svm 如何工作

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

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

  • 线性核:用于线性可分离数据。
  • 多项式核将数据映射到高阶多项式空间。
  • 径向基函数 (RBF) 内核:一种常用的选择,可以处理复杂的关系,将数据映射到无限维空间。
  • 西格码核类似于神经网络中使用的激活函数。

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

相关性和应用

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

常见的应用包括

  • 图像分类将图像分类到预定义的类别中,例如识别手写数字或区分不同类型的物体。例如,根据提取的特征,可以训练 SVM 将医学图像分类为是否包含肿瘤。
  • 文本分类:将文档分类为主题、情感分析(正面/负面评论)和垃圾邮件检测。例如,将新闻文章分为 "体育"、"政治 "或 "技术 "等类别。
  • 人脸检测识别图像中的人脸,通常是识别前的一个初步步骤。
  • 生物信息学:根据复杂的生物数据对蛋白质、基因或病人样本进行分类。
  • 手写识别:用于识别手写字符的系统。

优势与局限

优势

  • 即使维数超过样本数,也能在高维空间中发挥有效作用。
  • 由于它们在决策函数中只使用训练点(支持向量)的子集,因此内存效率高。
  • 内核功能各不相同,可适应各种数据类型,因此用途广泛。
  • 一般情况下,当类别很好区分时,准确率会很高。

局限性:

  • 在超大数据集上进行训练时,计算成本可能会很高,速度也会很慢。
  • 性能在很大程度上取决于核函数和超参数的选择。
  • 对于类别重叠较多的嘈杂数据集效果较差。
  • SVM 不能直接提供概率估计值;这些估计值需要进一步处理(如普拉特缩放)。

Svm 与其他算法的比较

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

阅读全部