Опорные векторные машины

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

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

В приведенном выше примере, если вам нужно классифицировать красные и синие точки, можете ли вы сделать это с помощью линии? Ответ «НЕТ», вы можете попробовать сделать это с помощью логистической регрессии, добавив к данным некоторые полиномиальные признаки, но все равно результаты будут неудовлетворительными, а также это будет очень затратно в вычислительном отношении. А вот и метод ядра SVM. Эта фигура в 2D, поэтому мы добавим новое измерение Z, чтобы Z=e^-x². График e^-x² выглядит следующим образом.

Здесь мы видим, что красные центральные точки будут подняты вверх, поскольку они находятся близко к центру, а синие точки останутся почти в их первоначальном положении. Таким образом, вы можете видеть, что мы находим плоскость, которая будет классифицировать оба класса. Здесь мы видим, что получаем плоскость, разделяющую красные и синие точки. Фигура в 3d будет выглядеть так.

Здесь, в 2D, наша плоскость классификации будет выглядеть примерно так, как показано на следующем изображении.

Плоскость в 3d, которая классифицирует точки, называется гиперплоскостью. Функции, с помощью которых наши данные преобразуются в более высокое измерение, называются функциями ядра. Я все еще запутался с ядром, не волнуйтесь, мы разберемся с этим к концу блога.

Интуиция за SVM

Чтобы понять геометрическую интуицию, лежащую в основе SVM, мы для простоты сконцентрируемся на 2D-данных. На следующем рисунке мы должны классифицировать синие ромбы и зеленые круги. Может быть несколько границ решений, которые будут классифицировать эти точки, тогда как мы должны решить, какая линия будет лучшей границей решения?

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

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

Гиперпараметры SVM

Ядро:

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

Несколько ядер, используемых в SVM:

Полиномиальное ядро. Полиномиальное ядро ​​преобразует данные в многомерное пространство с помощью полиномиальных функций. Обычно используется следующая формула: K(x,y)=(xy+c)^d, где d — степень многочлена, а c — постоянный член. Это ядро ​​полезно для захвата умеренных уровней нелинейности.

Ядро радиальной базисной функции (RBF):ядро RBF, также известное как ядро ​​Гаусса, преобразует данные в бесконечномерное пространство (это может показаться нелогичным, но это так). Формула: K(x,y)=exp(−∥xy∥²​/2*σ^*2), где σ — это параметр пропускной способности, который часто работает как «Гамма». При увеличении значения σ распределение Гаусса становится шире, а граница решения становится более гладкой. Меньшие значения σ приводят к более узким распределениям, что делает границу решения более чувствительной к отдельным точкам данных. Это ядро ​​довольно гибкое и может фиксировать сложные нелинейные отношения в данных. Он обычно используется, когда у вас нет предварительных знаний о конкретном требуемом нелинейном преобразовании.

Сигмовидное ядро: это еще один тип функции ядра, используемый в машинах опорных векторов (SVM) для классификации. В отличие от некоторых других ядер, таких как линейное или RBF-ядро, сигмовидное ядро ​​не так широко используется и реже используется на практике.

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

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

Гамма(γ): управляет формой ядра RBF и оказывает значительное влияние на границу решения SVM. Это влияет на распространение дистрибутива.

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

Заключение

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

Я надеюсь, что этот блог поможет понять концепции SVM. Прокомментируйте свои мысли, отзывы или предложения, если таковые имеются ниже. Если вам понравился этот блог, поделитесь им с друзьями и нажмите кнопку хлопка, подпишитесь на Mohan Kumar — Medium