Глоссарий

Машина опорных векторов (SVM)

Открой для себя мощь машин с опорными векторами (SVM) для классификации, регрессии и обнаружения выбросов, а также реальные приложения и выводы.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

Support Vector Machine (SVM) - популярный и мощный алгоритм контролируемого машинного обучения (ML), используемый в основном для задач классификации, хотя он также эффективен для регрессии (Support Vector Regression - SVR) и обнаружения выбросов. Разработанные в 1990-х годах, SVM, подробно описанные в Википедии, работают путем нахождения оптимальной границы, называемой гиперплоскостью, которая наилучшим образом разделяет точки данных, принадлежащие различным классам в высокоразмерном пространстве. Ключевая идея заключается в том, чтобы максимизировать маржу - расстояние между гиперплоскостью и ближайшими точками данных (опорными векторами) из каждого класса, - что часто приводит к хорошей производительности обобщения на невидимых данных.

Как работает Svm

Основной принцип SVM - поиск идеальной гиперплоскости для разделения набора данных. Для данных, которые можно разделить прямой линией или плоской плоскостью (линейно разделяемые данные), SVM определяет гиперплоскость, которая создает наибольший возможный разрыв между классами. Точки из обучающих данных, ближайшие к этой гиперплоскости и имеющие решающее значение для определения ее положения и ориентации, называются опорными векторами. Такое внимание к наиболее сложным точкам вблизи границы делает SVM эффективным с точки зрения памяти, так как только эти векторы поддержки нужны для определения модели после обучения.

Для наборов данных, в которых классы не могут быть разделены линейной границей (нелинейно разделяемые данные), SVM используют технику, называемую трюком ядра. Этот хитрый метод позволяет SVM отображать исходные данные в более высокоразмерное пространство, в котором возможно линейное разделение, без явного вычисления координат в этом новом пространстве. К распространенным функциям ядра относятся:

  • Линейный: Для линейно разделяемых данных.
  • Полиномиальные: Переводи данные в более высокие измерения с помощью полиномиальных функций.
  • Радиальная базисная функция (РБФ): Популярный выбор для сложных, нелинейных отношений.
  • Сигмоид: Похожа на функцию активации, используемую в нейронных сетях (NN).

Выбор ядра и его параметров имеет решающее значение и часто требует тщательной настройки гиперпараметров.

Актуальность и применение

SVM остаются актуальными, несмотря на развитие Deep Learning (DL), особенно в сценариях с высокоразмерными данными (много признаков), но ограниченным количеством обучающих выборок. Они известны своими теоретическими гарантиями и робастностью, особенно когда существует явная граница разделения. Исторически SVM в сочетании с экстракторами признаков, такими как Histogram of Oriented Gradients (HOG), были самыми современными для таких задач, как обнаружение объектов, что было отмечено в эволюции обнаружения объектов.

К числу распространенных применений относятся:

  • Классификация изображений: Категоризация изображений на основе их содержания (например, различение разных типов цветов или животных). SVM могут быть эффективны при использовании ручных признаков, извлеченных из изображений, особенно на наборах данных умеренного размера.
  • Категоризация текста: Классификация текстовых документов по заранее определенным категориям, например обнаружение спама в электронной почте или анализ настроения отзывов покупателей. SVM хорошо справляются с высокоразмерными текстовыми данными (например, с TF).
  • Биоинформатика: Используется для таких задач, как классификация белков или диагностика рака на основе данных об экспрессии генов, где количество признаков может быть очень большим по сравнению с количеством образцов.
  • Распознавание лиц: Идентификация или проверка личности по чертам лица, часто как часть более крупной системы.

Преимущества и ограничения

Преимущества:

  • Эффективен в высоких измерениях: Отлично справляется с задачей, даже если количество признаков больше, чем количество образцов.
  • Экономия памяти: Использует только подмножество обучающих точек (опорных векторов) в функции принятия решения.
  • Универсальность: Для функции принятия решений можно задавать различные функции ядра, что обеспечивает гибкость в работе с различными типами данных.
  • Хорошая обобщенность: Задача максимизации маржи часто приводит к созданию моделей с хорошей точностью на невидимых данных.

Ограничения:

  • Интенсивность вычислений: Обучение может быть медленным на очень больших наборах данных.
  • Чувствительность ядра и параметров: Производительность сильно зависит от выбора ядра и его параметров (например, C, гамма), требуя тщательной настройки.
  • Плохая производительность при пересекающихся классах: Не идеальный вариант, если классы данных сильно пересекаются.
  • Нет прямых оценок вероятности: Стандартные SVM выдают распределение по классам, но не прямые оценки вероятностей. Для калибровки результатов SVM в вероятности необходимы такие техники, как шкалирование Платта.

Svm против других алгоритмов

По сравнению с более простыми алгоритмами, такими как логистическая регрессия, SVM нацелены на максимизацию маржи, а не просто на поиск разделяющей границы, что может привести к лучшему обобщению. В отличие от древовидных методов, таких как Decision Trees или Random Forests, SVM строят единственную оптимальную гиперплоскость (возможно, в высокоразмерном пространстве). Хотя современные модели глубокого обучения, такие как Ultralytics YOLO отлично справляются с автоматическим извлечением признаков из необработанных данных (например, пикселей в компьютерном зрении (КВ)), SVM часто требуют тщательной проработки признаков, но могут исключительно хорошо работать с небольшими наборами данных или определенными типами структурированных данных, где признаки четко определены. Популярные реализации включают LibSVM и модуль SVM в scikit-learn. Обучение и управление такими моделями, а также различными другими, можно упростить с помощью таких платформ, как Ultralytics HUB, которые упрощают жизненный цикл MLOps.

Читать полностью