Открой для себя мощь машин с опорными векторами (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 отлично справляются с автоматическим извлечением признаков из необработанных данных (например, пикселей в компьютерном зрении (КВ)), SVM часто требуют тщательной проработки признаков, но могут исключительно хорошо работать с небольшими наборами данных или определенными типами структурированных данных, где признаки четко определены. Популярные реализации включают LibSVM и модуль SVM в scikit-learn. Обучение и управление такими моделями, а также различными другими, можно упростить с помощью таких платформ, как Ultralytics HUB, которые упрощают жизненный цикл MLOps.