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

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

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

Вы бы нарисовали эту красную линию на плоскости x1-x2 и вуаля !!

Сейчас подожди. Почему ваш разум выбрал эту красную линию ??

Почему бы не рассмотреть линию немного дальше от этой красной линии или тех пунктирных линий, проходящих через красные или зеленые точки?

Вы бы сказали: Я перестраховался. Или вы только что нашли самую большую область, которая четко разделяет группу синих и зеленых точек, и нашли линию, проходящую через середину области.

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

Маржа. Именно такова интуиция!

Давайте подумаем математически.

Теперь, как вы выбрали поле, вы сделали это, максимизируя расстояние между точками, которые лежат ближе всего к области разделения (то есть имеют минимальное расстояние от линии / гиперплоскости) между синей и зеленой точками.

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

Таким образом, расстояние до плоскости разделения между этими точками и линией можно записать как:

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

Допустим, метка y равна 1 для зеленого и -1 для красного.

Итак, наш классификатор правильно классифицирует точки, если и только если y * (Wtx + b) ≥0, т. Е. Неправильные обозначены как неправильные, а правильные как правильные, поэтому их продукты всегда будут ≥0 (см. Изображение)

Теперь у нас есть функция оптимизации, масштаб которой изменился на || W || мы получаем то, что называется основной формой SVM или Hard margin SVM

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

Таким образом, мы позволяем нашему классификатору допускать ошибки в некоторых моментах. Это дает нам то, что называется новой основной формой SVM или Soft Margin SVM.

Здесь ξ (Xi) - это величина штрафа (потеря шарнира), который мы налагаем, когда точка неправильно классифицируется, что приводит к увеличению целевой функции, поэтому граница корректируется (получение интуиции, как все происходит в фон !!), поскольку нашей целью было минимизировать функцию.

Чтобы управлять влиянием этого штрафа на границу принятия решения, мы вводим параметр C (Допуск), который здесь является гиперпараметром.

ВАЖНО: гиперпараметр не является параметром модели !!!

Значение C контролирует, насколько серьезный эффект на наш классификатор оказывает величина штрафа (прямо противоположный эффект лямбда - параметр регуляризации в гребенчатой ​​регрессии).

Таким образом, C = 0, приведет к тому, что граница решения будет меньше отклоняться и в значительной степени неверно классифицирует значения, т.е.

И значение C, стремящееся к бесконечности, создаст излишне сложную границу принятия решения, которая правильно классифицирует все точки, т. Е. Приведет к переобучению.

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

Я надеюсь, что это прояснило бы большинство основ SVM. Будем признательны, если вы сочли это полезным.