Вступление

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

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

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

Существует два типа SVM с жесткими маржами и мягкими маржами SVM,

Давайте сначала посмотрим на SVM с жесткими границами, а затем во второй части мы расширим его до SVM с мягкими границами.

Hard Margin SVM

Общее уравнение гиперплоскости имеет вид

Здесь мы предполагаем, что x - это вектор признаков обучающих данных, а w и b - веса и смещения соответственно.

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

Когда у нас есть маржа, следующая задача - определить наши w (веса) и b (смещение), чтобы рассчитанную маржу можно было максимизировать. Следует отметить, что значение максимального поля будет одинаковым с обеих сторон гиперплоскости.

Расстояние от точки до гиперплоскости задается как

Теперь мы вычисляем расстояние для каждой точки в наборе данных и выбираем минимальную.

Это выражение можно переформулировать как

В приведенной выше минимизации переменная равна x, а поскольку w не зависит от x, мы можем убрать ее из выражения минимизации. Мы воспользуемся уловкой, чтобы уменьшить нашу проблему минимизации.

Мы предполагаем, что

Почему это предположение верно, можно понять на следующем примере. Предположим, что M оказывается δ, поэтому

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

Это показывает, что любое значение маржи можно масштабировать до 1, поэтому можно сделать предположение, что

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

Это можно переформулировать как

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

Это можно сформулировать как -

Поскольку наш класс label (y) равен 1 или -1, мы можем переформулировать три приведенных выше уравнения как

У нас есть еще одно ограничение:

Приведенные выше два уравнения можно объединить и записать как

Окончательное выражение

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

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

Использованная литература :

[1] Лекция 14 по машинному обучению« Машины (линейные) опорные векторы - Cornell CS4780 SP17»

[2] Александр Ковальчик (2017). Машины опорных векторов лаконично