Глоссарий

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

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

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

Узнай больше

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

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

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

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

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

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

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

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

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

  • Классификация изображений: Классификация изображений по заранее определенным категориям, например, идентификация рукописных цифр или различение различных типов объектов. Например, SVM можно обучить классифицировать медицинские изображения как содержащие или не содержащие опухоли, основываясь на извлеченных признаках.
  • Категоризация текста: Сортировка документов по темам, анализ настроения (положительные/отрицательные отзывы) и обнаружение спама. Например, классификация новостных статей по таким категориям, как "спорт", "политика" или "технологии".
  • Обнаружение лиц: Идентификация лиц на изображениях, часто в качестве предварительного шага перед распознаванием.
  • Биоинформатика: Классификация белков, генов или образцов пациентов на основе сложных биологических данных.
  • Распознавание рукописного текста: Используется в системах для распознавания рукописных символов.

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

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

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

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

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

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

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

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