Введение в алгоритм опорных векторов

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

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

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

Как работает алгоритм

Вот краткое пошаговое объяснение того, как алгоритм машины опорных векторов (SVM) работает в машинном обучении:

  1. Сбор данных. Соберите и подготовьте данные для обучения алгоритму SVM. Это включает в себя сбор набора данных с входными функциями и соответствующими выходными метками и разделение его на наборы для обучения и тестирования.
  2. Определение гиперплоскости. Целью алгоритма SVM является поиск наилучшей гиперплоскости, которая разделяет входные данные на разные классы. Гиперплоскость выбирается таким образом, чтобы максимально увеличить расстояние между ближайшими точками двух классов.
  3. Выбор ядра: функция ядра используется для преобразования входных данных в многомерное пространство, где их легче разделить с помощью гиперплоскости. Доступны различные типы функций ядра, такие как линейные, полиномиальные и радиальные базисные функции (RBF). Выбор функции ядра зависит от характера данных и проблемы, которую мы пытаемся решить.
  4. Обучение модели. Во время обучения алгоритм SVM регулирует параметры гиперплоскости, чтобы максимально увеличить разницу между двумя классами. Это включает в себя решение задачи оптимизации, которая включает в себя поиск оптимальных значений параметров гиперплоскости.
  5. Тестирование и оценка. После обучения модели SVM мы можем протестировать ее на данных тестирования, чтобы оценить ее производительность. Производительность модели SVM можно измерить с помощью таких показателей, как точность, точность, полнота и оценка F1.
  6. Прогноз. Получив удовлетворительную модель SVM, мы можем использовать ее для прогнозирования новых данных. Модель SVM можно использовать для классификации новых данных в один из двух классов на основе границы решения, полученной во время обучения.

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

Объяснение понятий с примерами

В этом разделе мы подробно разберем приведенные выше определения и концепции с некоторыми примерами.

На изображении показана двумерная координатная плоскость с двумя классами точек данных: синей и красной. Цель алгоритма SVM — найти гиперплоскость, разделяющую два класса с максимально возможным запасом. Гиперплоскость — это линейная граница решения, которая делит данные на два класса. На изображении гиперплоскость представлена ​​черной линией.

Алгоритм SVM находит оптимальную гиперплоскость, максимизируя запас, который представляет собой расстояние между гиперплоскостью и ближайшими точками данных для каждого класса. Эти ближайшие точки известны как опорные векторы, и они представлены точками данных, обведенными кружками на изображении.

На изображении также показаны некоторые ошибочно классифицированные точки данных, представленные цветными крестами по обе стороны от гиперплоскости. Эти неправильно классифицированные точки известны как выбросы и могут негативно повлиять на производительность алгоритма SVM.

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

Вот краткое описание каждого термина:

→ Гиперплоскость

Гиперплоскость — это граница решения в многомерном пространстве, разделяющая данные на два класса. В случае алгоритма SVM гиперплоскость — это линейная функция, разделяющая точки данных в пространстве признаков. В двумерном пространстве гиперплоскость — это линия, а в трехмерном пространстве гиперплоскость — это плоскость. Цель алгоритма SVM — найти оптимальную гиперплоскость, которая максимизирует разницу между двумя классами.

Мы видим, что есть три гиперплоскости:

  • Гиперплоскость, касающаяся точек положительного класса, называется положительной гиперплоскостью.
  • Гиперплоскость, которая касается точек отрицательного класса, называется отрицательной гиперплоскостью.
  • Гиперплоскость, расположенная между положительным и отрицательным классами, называется разделяющей гиперплоскостью.
  • Все эти три гиперплоскости параллельны друг другу.

→ Предельная плоскость

Краевая плоскость — это гиперплоскость, равноудаленная от двух ближайших точек данных двух классов. Расстояние между граничной плоскостью и ближайшими точками данных называется границей. Другими словами, маргинальная плоскость — это гиперплоскость, которая максимизирует расстояние между двумя ближайшими точками данных для каждого класса.

есть два типа маргинальных плоскостей, которые имеют значение:

  1. Гиперплоскость с максимальным отступом. Гиперплоскость с максимальным отступом — это гиперплоскость, имеющая максимальное расстояние или отступ от ближайших точек данных каждого класса. Она также известна как оптимальная гиперплоскость. Эта гиперплоскость выбрана потому, что она обеспечивает максимально возможное разделение между различными классами точек данных. Этот тип маргинальной плоскости используется в стандартной формулировке SVM.
  2. Гиперплоскость с мягким полем. Гиперплоскость с мягким полем — это модификация гиперплоскости с максимальным полем. Он используется, когда точки данных не являются линейно разделимыми. В таких случаях алгоритм SVM допускает некоторые неправильные классификации или ошибки, чтобы достичь хорошего баланса между максимальным запасом и количеством ошибочных классификаций. Гиперплоскость с мягким полем позволяет некоторым точкам данных находиться внутри поля или даже с неправильной стороны поля. Этот тип граничной плоскости используется в формулировке SVM с мягкими краями.

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

→ Опорные векторы

Опорные векторы — это точки данных, ближайшие к маргинальной плоскости, для каждого из двух классов. Эти точки данных лежат на границе разделяющей гиперплоскости и являются единственными точками данных, которые необходимы для определения гиперплоскости. Алгоритм SVM использует эти опорные векторы, чтобы найти оптимальную гиперплоскость, которая максимизирует разницу между двумя классами. Опорные векторы играют решающую роль в алгоритме SVM, потому что они являются единственными точками данных, которые необходимы для определения гиперплоскости и поля.

→ Ядро

Функция ядра — это математическая функция, которая используется для преобразования данных из одного пространства в другое, часто для облегчения классификации или визуализации данных.

Вот некоторые из наиболее часто используемых функций ядра:

  1. Линейное ядро. Линейное ядро ​​— это простейшая функция ядра, которая используется для линейно разделимых данных. Он преобразует данные в многомерное пространство, используя линейную функцию.
  2. Полиномиальное ядро. Полиномиальное ядро ​​используется для преобразования данных в многомерное пространство с помощью полиномиальной функции. Это полезно для данных, которые не являются линейно разделимыми.
  3. Ядро радиальной базисной функции (RBF): ядро ​​RBF — это наиболее часто используемая функция ядра в алгоритме SVM. Он преобразует данные в бесконечномерное пространство, используя функцию Гаусса. Ядро RBF полезно для данных, которые не являются линейно разделимыми и имеют сложные шаблоны.
  4. Сигмовидное ядро. Сигмовидное ядро ​​преобразует данные в многомерное пространство с помощью сигмовидной функции. Это полезно для данных, которые имеют нелинейную связь между функциями.
  5. Ядро Лапласа. Ядро Лапласа — это тип ядра RBF, который использует функцию Лапласа для преобразования данных в многомерное пространство.

Выбор функции ядра зависит от характера данных и решаемой задачи. Некоторые функции ядра лучше работают с линейно разделимыми данными, а другие лучше работают с нелинейными данными. Важно поэкспериментировать с различными функциями ядра, чтобы найти ту, которая лучше всего подходит для конкретной задачи.

Предоставленное вами изображение является визуальным представлением алгоритма машины опорных векторов (SVM), примененного к набору данных Iris. Набор данных Iris является известным набором данных в области машинного обучения и состоит из 150 образцов цветов ириса, каждый из которых имеет четыре характеристики: длину чашелистика, ширину чашелистика, длину лепестка и ширину лепестка. Цель состоит в том, чтобы классифицировать цветы на три разных вида на основе этих четырех признаков.

На изображении показана диаграмма рассеяния набора данных Iris с длиной чашелистика по оси x и шириной чашелистика по оси y. Каждая точка представляет образец цветка, а цвет представляет вид цветка. Три вида обозначены как setosa (синий), versicolor (оранжевый) и Virginia (зеленый).

Алгоритм SVM используется для поиска гиперплоскости, которая разделяет точки данных на разные классы. Гиперплоскость представлена ​​сплошной черной линией на изображении и отделяет синие цветы сетозы от оранжевых и зеленых цветов.

В дополнение к гиперплоскости есть две пунктирные линии по обе стороны от гиперплоскости. Эти пунктирные линии представляют поля, и они являются границами, которые алгоритм SVM пытается максимизировать. Точки данных, лежащие на полях, известны как опорные векторы, и они обведены на изображении. Опорные векторы являются ключевыми точками данных, которые определяют положение гиперплоскости и полей.

В целом, алгоритм SVM является мощным инструментом для задач классификации, и его можно использовать для классификации сложных наборов данных, таких как набор данных Iris. На этом изображении мы видим, как алгоритм SVM может разделить три вида цветков ириса, основываясь только на двух их признаках.

Математическая формулировка SVM

Будем считать, что положительная и отрицательная гиперплоскости находятся на единичном расстоянии от разделяющей гиперплоскости.

→ Жесткая маржа SVM

→ Мягкая маржа SVM

В уравнении 5 первая часть уравнения перед знаком «+» называется «регуляризацией», а вторая часть называется «Потерями шарнира».

C – это гиперпараметр, который всегда имеет положительное значение. Если «C» увеличивается, то переоснащение увеличивается, а если «C» уменьшается, то увеличивается недообученность. Для больших значений «C» оптимизация выберет меньшую маржу. гиперплоскость, если эта гиперплоскость лучше справляется с правильной классификацией всех тренировочных точек. И наоборот, очень маленькое значение C заставит оптимизатор искать разделяющую гиперплоскость с большим запасом, даже если эта гиперплоскость неправильно классифицирует больше точек.

Преимущества и недостатки

У машин опорных векторов (SVM) есть несколько преимуществ и недостатков:

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

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

Недостатки:

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

«Стремитесь не к успеху, а к тому, чтобы быть ценным».