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

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

Машина опорных векторов - путь к социальному дистанцированию!

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

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

Классификатор максимальной маржи

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

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

Ядро SVM и гиперплоскость

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

Не все данные можно разделить линейно, и в этом случае мы не можем найти прямую линию для разделения классов данных. В этом случае SVM использует метод ядра для разделения этих классов. Основная идея метода ядра заключается в том, что когда набор данных неразделим в текущем измерении, мы добавляем еще одно измерение, чтобы попытаться разделить данные. Мы используем такие функции ядра, как: полиномиальное ядро, гауссовское ядро, радиальная базовая функция (RBF), RBF-ядро Лапласа, сигмовидное ядро ​​и т. Д., Чтобы найти лучший способ изменить данные из измерения D в D + 1.

Математика, лежащая в основе машин опорных векторов

В отличие от логистической регрессии с диапазоном значений [0,1], использующей сигмовидную функцию, SVM обрабатывает выходные данные в другом диапазоне. Если результат больше 1, SVM идентифицирует его с одним классом, а если результат -1, он идентифицируется как другой класс. Это делает диапазон усиления значений [-1,1] для SVM.

Уравнение гиперплоскости

Рассматривая уравнение прямой y = mx + c, мы можем сформулировать общее уравнение гиперплоскости:

Уравнение линии: y = ax + b
Это можно записать как: y − ax − b = 0

Рассматривая 2 вектора w и x как:

Мы можем сделать вывод: wᵀ x = −b × (1) + (−a) × x + 1 × y
Что можно записать как: wᵀ x = y - ax - b

Измерение расстояния

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

Расстояние гиперплоскости wᵀ x + b = 0, где b - член смещения, от заданного точечный вектор x можно рассчитать по формуле:

где || w || ² - евклидова норма длины.

Потеря шарнира в SVM

Потеря шарнира - это функция потерь, используемая для обучения классификаторов машинному обучению. Для предполагаемого выхода t = ± 1 и классификатора y потеря предсказания определяется как:

где t - это выход SVM с заданным входом x, а y - истинный класс [-1,1].

Внедрение SVM с нуля

Примечание. sklearn библиотека используется только для создания набора данных с помощью make_classification() функции.

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

Спасибо за внимание.
Не забудьте нажать 👏!