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

Как видно из приведенной выше диаграммы, цель состоит в том, чтобы создать максимальную разницу между двумя классами A и B. Если маржа очень близка к одной из категорий, то новые тестовые данные с небольшим отклонением от маржи будут классифицированы неправильно. Таким образом, оптимальный запас, равный удалению от обеих целей, был бы желательным. Мы будем использовать рассмотренные ранее концепции линейной алгебры. Итак, пора вспомнить скалярное произведение векторов, величину вектора и единичный вектор.

Содержание:

  • Математика SVM
  • Жесткая маржа и мягкая маржа
  • Уловка ядра для нелинейных разделимых данных
  • За и против

Математика SVM:. Это интересная часть, в которой мы узнаем, как на самом деле работает алгоритм. Но перед этим давайте разберемся с терминологией линейной алгебры.

  • Гиперплоскость - из приведенного выше примера мы выделили разделительную линию (1D). Если точки данных существуют в двухмерном пространстве, тогда граница будет линией. Уравнение гиперплоскости (разделителя): w1x1 + w2x2 +…. + wnxn + b = 0. Это похоже на уравнение прямой, но переписано для входов более высокой размерности.
  • Расстояние между точкой и гиперплоскостью - поскольку цель состоит в том, чтобы найти максимальное расстояние между опорным вектором (точкой) и гиперплоскостью, нам нужна формула для вычисления этого расстояния. Как упоминалось ранее, уравнение гиперплоскости: w1x1 + w2x2 +…. + wnxn + b = 0, и точка является (z1, z2, z3… zn) (т.е. опорным вектором).

Примечание: настоятельно рекомендую посмотреть видео о том, как найти расстояние между точкой и гиперплоскостью.

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

Нахождение расстояния относительно t (w1, w2, w3), при котором получается max (min (расстояние)). Поскольку мы рассмотрели проблему бинарной классификации.

w1x1 + w2x2 +…. + wnxn + b ›0 для положительного класса

w1x1 + w2x2 +…. + wnxn + b ‹0 для отрицательного класса

Обычно в задачах классификации мы рассматриваем цель как «0» и «1». Но для SVM мы сохраним вывод как +1 и -1. Когда мы умножаем фактическое значение на прогнозируемое, результат всегда должен быть положительным. Потому что, если и прогнозируемые, и фактические положительные, тогда результат будет + ve, та же логика применяется, если два значения отрицательны. Что, если модель неверно классифицировала данные? Результат будет отрицательным.

yn = фактическое значение

w1x1 + w2x2 +… .wnxn + b = прогнозируемое значение

yn * (w1x1 + w2x2 +…. + wnxn + b) равно + ve для правильных прогнозов

yn * (w1x1 + w2x2 +…. + wnxn + b) является -ve для неправильной классификации

Подставляя это в приведенное выше уравнение расстояния, мы имеем:

Поскольку значение фактическое * прогнозируемое = 1, мы хотим максимизировать 1 / величину W (норма L2). Это также можно было бы переписать как минимум (величина W (норма L2).

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

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

Уловка ядра для нелинейных разделяемых данных: иногда данные, которые мы получаем, вообще не могут быть линейно отделимы. Вспоминая полиномиальную функцию, которую мы использовали для линейной регрессии. Применяя аналогичный трюк здесь, называемый трюком ядра, чтобы преобразовать неотделимые данные в разделяемые путем преобразования данных в более высокий порядок. Например, возьмем rbf (радиальная базисная функция).

Плюсы SVM:

  • SVM очень хороши, когда мы не имеем представления о данных.
  • Он хорошо работает даже с неструктурированными данными, такими как тексты.
  • Уловка с ядром - одно из главных преимуществ SVM. Поскольку он также может вмещать неразделимые данные.
  • Переобучением можно управлять путем правильного выбора гиперпараметров.

Минусы SVM:

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

Рекомендуемая литература:

Https://www.analyticsvidhya.com/blog/2020/10/the-mat Mathematics-behind-svm/