Откройте для себя возможности машин с опорными векторами (SVM) для классификации, регрессии и обнаружения выбросов.
Support Vector Machine (SVM) - популярный и мощный алгоритм контролируемого машинного обучения (ML), используемый в основном для задач классификации, хотя он также эффективен для регрессии (Support Vector Regression - SVR) и обнаружения выбросов. Разработанные в 1990-х годах, SVM, подробно описанные в Википедии, работают путем нахождения оптимальной границы, называемой гиперплоскостью, которая наилучшим образом разделяет точки данных, принадлежащие к различным классам в высокомерном пространстве. Ключевая идея заключается в максимизации маржи - расстояния между гиперплоскостью и ближайшими точками данных (опорными векторами) из каждого класса, что часто приводит к хорошей эффективности обобщения на невидимых данных.
Основной принцип SVM - поиск идеальной гиперплоскости для разделения набора данных. Для данных, которые можно разделить прямой линией или плоской плоскостью (линейно разделяемые данные), SVM определяет гиперплоскость, которая создает наибольший возможный разрыв между классами. Точки данных из обучающих данных, расположенные ближе всего к этой гиперплоскости и имеющие решающее значение для определения ее положения и ориентации, называются опорными векторами. Такое внимание к наиболее сложным точкам вблизи границы делает SVM эффективным с точки зрения памяти, поскольку после обучения для определения модели требуются только эти опорные векторы.
Для наборов данных, в которых классы не могут быть разделены линейной границей (нелинейно разделяемые данные), SVM используют технику, называемую трюком ядра. Этот хитрый метод позволяет SVM отобразить исходные данные в более высокоразмерное пространство, где возможно линейное разделение, без явного вычисления координат в этом новом пространстве. К распространенным функциям ядра относятся:
Выбор ядра и его параметров имеет решающее значение и часто требует тщательной настройки гиперпараметров.
SVM остаются актуальными, несмотря на развитие глубокого обучения (Deep Learning, DL), особенно в сценариях с высокоразмерными данными (много признаков), но ограниченным количеством обучающих выборок. Они известны своими теоретическими гарантиями и устойчивостью, особенно когда существует четкая граница разделения. Исторически SVM в сочетании с экстракторами признаков, такими как Histogram of Oriented Gradients (HOG), были самыми современными для таких задач, как обнаружение объектов, как отмечается в эволюции обнаружения объектов.
К числу распространенных областей применения относятся:
Преимущества:
Ограничения:
По сравнению с более простыми алгоритмами, такими как логистическая регрессия, SVM нацелены на максимизацию маржи, а не просто на поиск разделяющей границы, что может привести к лучшему обобщению. В отличие от древовидных методов, таких как Decision Trees или Random Forests, SVM строят единственную оптимальную гиперплоскость (возможно, в высокоразмерном пространстве). В то время как современные модели глубокого обучения, такие как Ultralytics YOLO, отлично справляются с автоматическим извлечением признаков из необработанных данных (например, пикселей в компьютерном зрении (CV)), SVM часто требуют тщательной разработки признаков, но могут работать исключительно хорошо на небольших наборах данных или специфических типах структурированных данных, где признаки четко определены. Популярные реализации включают LibSVM и модуль SVM в scikit-learn. Обучение и управление такими моделями, а также различными другими, можно упростить с помощью таких платформ, как Ultralytics HUB, которая упрощает жизненный цикл MLOps.