Примечание. Я буду использовать Введение в статистическое обучение, версия 2 (ISLRv2) в качестве основного ориентира для моего обзора этой темы.

Что такое машины опорных векторов? По сути, это просто плоскости (помните, линия — это не что иное, как одномерная плоскость!), которые изо всех сил стараются линейно разделить два (или более) класса точек. (SVM также можно использовать для регрессии — см. Регрессия опорных векторов, но в этой статье мы придерживаемся только классификации). Возможно, вы слышали о таких терминах, как slack-переменные, функции ядра и т. д., которые используются в окружении SVM, поэтому мы будем постепенно пытаться использовать их повсюду.

Поскольку мы рассматриваем SVM как классификаторы, давайте начнем с основ —

Предположим, что данные находятся в двумерном пространстве, по своей сути принадлежат двум классам (синий и фиолетовый) и линейно разделимы.

Мы могли бы уместить линию так, чтобы она идеально разделяла эти данные на два отдельных составляющих класса.
Если подумать, таких линий, разделяющих классы, могло бы быть почти бесконечное количество...

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

Классификатор опорных векторов пытается максимизировать запас «M» между линией и каждой точкой данных в каждом классе.

Мы видим, что значение M зависит только от точек данных, расположенных вдоль границы с каждой стороны линии, а не от какой-либо другой точки. Векторы, проведенные из точек на полях к гиперплоскости, определяют гиперплоскость. Они называются опорными векторами, и именно отсюда происходит термин «Машина опорных векторов».

Как мы можем использовать эту плоскость для классификации точек?

Математически определим уравнение этой гиперплоскости в p-измерениях следующим образом:

Теперь, если мы подставим в уравнение точки, лежащие на противоположной стороне плоскости, то значение уравнения будет иметь противоположные знаки! Вот как мы можем интуитивно классифицировать каждую точку! Если подстановка точки в уравнение дает положительное значение, то она принадлежит к первому классу. Если он дает отрицательное значение, он принадлежит ко второму классу.

Это принцип, по которому работают машины опорных векторов.

Если мы определим переменную yᵢ таким образом, что yᵢ = 1, когда класс синий, и yᵢ = -1, когда класс фиолетовый, мы можем показать для всех i=1…n (количество баллов) -

Но что, если данные не идеально линейно разделимы?

Давайте определим задачу оптимизации, которая поможет нам определить гиперплоскость математически следующим образом:

где M = общая маржа, а ‹βᵢ› — коэффициенты уравнения гиперплоскости.

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

В реальном мире возможно, что данные не полностью разделимы.

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

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

Мы можем сделать это, введя резервную переменную ϵᵢ в ограничениях задачи оптимизации —

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

Константа «C» действует как параметр настройки и контролирует величину резерва, допустимого в решении. Более высокие значения C означают более высокие возможные значения резерва и, следовательно, более высокую вероятность неправильной классификации.

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

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

Можем ли мы использовать концепцию классификаторов опорных векторов для разделения данных, которые вообще не являются линейно разделимыми? Например -

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

Не углубляясь в математику, мы можем представить уравнение гиперплоскости классификатора по-другому следующим образом -

Где ‹x,xᵢ› — внутренний продукт между двумя точками в p-мерном пространстве.

Это уравнение говорит нам, что уравнение гиперплоскости определяется n select 2 скалярными произведениями всех точек данных. Однако мы можем показать, что значение для αᵢ для всех точек, которые не лежат на полях или внутри них, равно 0. Это связано с тем фактом, что гиперплоскость определяется только точками на полях или внутри них. поле (т. е. опорными векторами), а не какие-либо другие точки.

Следовательно, если все точки, которые лежат или находятся на полях, определяются набором S, мы можем переписать уравнение гиперплоскости следующим образом:

Это значительно снижает сложность вычисления f(x), поскольку пространство решений теперь сводится к точкам в S, что значительно меньше, чем весь набор точек данных.

Подумайте об этом: внутренний продукт, по сути, является мерой подобия между двумя точками, вообще говоря. Но является ли это единственной мерой подобия? Можем ли мы рассмотреть какие-либо другие меры подобия в нашем уравнении классификатора?

Заменим скалярный продукт подобия более обобщенным обозначением K(x,xᵢ), называемым функцией ядра.

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

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

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

Например, давайте установим функцию ядра как полином степени «d» -

Если d=1, он преобразуется в предыдущий классификатор опорных векторов, который мы рассматривали.

Мы также можем преобразовать данные в сферическое пространство, используя радиальное ядро ​​—

(Это важное ядро ​​— нам потребуется бесконечное число измерений, чтобы представить это подпространство более высокого измерения!)

Давайте посмотрим, как мы можем использовать эти нелинейные ядра для разделения данных на предыдущем рисунке —

Мы видим, как введение концепции функции ядра в машины опорных векторов помогает нам в разделении нелинейных данных.

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

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