Машина опорных векторов (подробное объяснение)

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

Что такое гиперплоскость:
Если у нас есть p-мерное пространство, гиперплоскость - это плоское подпространство с размерностью p-1. Например, в двумерном пространстве гиперплоскость - это прямая линия, а в трехмерном пространстве гиперплоскость - это двумерное подпространство. Представьте, как нож разрезает кусок сыра кубической формы и разделяет его на две части. Затем положите обе части на место и наблюдайте за этим пространством между ними, то есть двумерным подпространством в трехмерном пространстве. Если p больше 3, воображение может быть сложнее, но интуиция остается той же.

Это уравнение гиперплоскости в двумерном пространстве. Точно так же уравнение может быть расширено до p-мерной настройки и выглядеть так:

Каждая бета-версия - это параметр для одного из множества измерений, которые есть в нашем пространстве.

Следовательно, если у нас есть точка X, которая удовлетворяет приведенному выше уравнению, это означает, что точка находится на гиперплоскости. Другими словами, если у нас есть точка, скажем, в 5-мерном пространстве, то от X1 до X4 будут разные значения для одной единственной точки в этом пространстве, и если после того, как вы поместите значения в уравнение выше, уравнение окажется равно нулю, то это означает, что точка лежит на гиперплоскости.

Это означает, что если уравнение имеет значение меньше нуля, точка лежит не на плоскости, а, скорее, ниже гиперплоскости.

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

Приведенные выше два уравнения определяют эти два разных класса точек.

Классификация с использованием разделяющей гиперплоскости

Предположим, у нас есть одна матрица обучающих и тестовых данных. Матрица обучающих данных имеет размерность n × p. Это означает, что он имеет n наблюдений и p размерен. Каждое наблюдение относится к одному из двух классов, т.е. y1… .yn может иметь значение -1 или 1.

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

Каждому тестирующему наблюдению назначается класс в зависимости от того, на какой стороне гиперплоскости они лежат. Если наблюдение дает значение вышеуказанного уравнения меньше нуля, то оно относится к классу -1, и то же самое относится к классу 1.

То есть для любого тестового наблюдения x (theta) мы можем классифицировать его по знаку приведенного ниже уравнения. Если знак отрицательный, то присваивается класс -1, а если знак положительный, присваивается знак 1.

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

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

Теперь проблема в том, что если мы разделим данные на основе гиперплоскости, тогда может быть много возможных гиперплоскостей для разделения одного и того же набора чисел. Как определить конечное число гиперплоскостей для выбора?

Решение: классификатор максимальной маржи

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

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

тогда классификатор максимальной маржи может классифицировать новые тестовые наблюдения на основе знака

Проще говоря, для каждого тестового наблюдения мы помещаем все переменные в приведенное выше уравнение и решаем, к какой стороне гиперплоскости относится это конкретное наблюдение, на основе знака f (x).

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

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

Строительство:

Рассматривая задачу построения гиперплоскости с максимальным запасом на основе набора из n обучающих наблюдений x1,… .xn ассоциированного класса «, помеченного как -1 или 1, мы нужно рассмотреть три уравнения.

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

Эти два уравнения гарантируют, что каждое наблюдение находится на правильной стороне гиперплоскости и, по крайней мере, на расстоянии M от гиперплоскости. Другими словами, как только мы поместим значение наблюдения в уравнение ниже

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

Интерпретация: Определите значения всех бета-версий (beta1, beta2… beta_p) так, чтобы было поле M, которое имеет максимально возможное значение, затем классифицируйте каждое наблюдение таким образом, чтобы если вы умножили его результат (-1 или 1) с его уравнением

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

Проблема: неотделимый регистр:

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

Поддержка векторных классификаторов

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

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

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

Затем мы могли бы захотеть определить классификатор, который неправильно классифицирует несколько наблюдений, чтобы:

1- Надежность для индивидуального наблюдения.

2- Лучшая классификация большинства тренировочных наблюдений.

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

Классификатор опорных векторов = классификатор мягких полей

Подробности:

При добавлении этого нового условия уравнения выглядят следующим образом:

Если переменная slack равна нулю, это означает, что «i-е» наблюдение находится на правильной стороне поля, а если переменная slack ›чем 0, то это означает, что« i-е »наблюдение находится на неправильной стороне поля. Если переменная slack больше 1, тогда «i-е» наблюдение находится не на той стороне гиперплоскости.

Теперь рассмотрим роль переменной C: это сумма всех резервных переменных для всех n наблюдений. Если C = 0, это означает, что ни одно наблюдение не нарушило границы. Будьте осторожны, значение переменной slack также может быть дробным, например, допустим, C = 0,6, тогда возможно, что у нас есть три точки с переменной slack = 0,2 или две точки с переменной slack = 0,3; или у нас есть C = 1,6 с одной переменной слабины = 0,6 (изнаночная сторона поля) и другой переменной зарезки = 1 (изнанка плоскости). Итак, необходимо учитывать, что при C ›0 не более чем наблюдение C может идти по другую сторону гиперплоскости.

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

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

Поддержка векторной машины

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

Проблема

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

Решение:

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

Например, если у нас есть двумерное пространство признаков с обучающим наблюдением, имеющим значение (X1, Y1), (X1, Y1)…. (X_n, Y_n), так что они неразделимы с использованием линейной плоскости , то мы можем преобразовать пространство признаков в трехмерное пространство, имея трехмерное (X1, Y1, Z1), (X2, Y2, Z2)… .. (X_n, Y_n, Z_n)

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

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

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

Ядро

Уловка с ядром - это эффективный вычислительный подход для увеличения пространства функций. Уловка с ядром использует внутреннее произведение двух векторов. Внутреннее произведение двух r-векторов a и b определяется как

Где a и b - не что иное, как два разных наблюдения.

Предположим, у нас есть два вектора X и Z, оба с двумерными данными.

X= (x1,x2)

Z= (z1,z2)

Применение уловки ядра с точечным произведением даст нам -

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

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

Примечание:

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

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

Дж., Гарет. D, Виттен. Т, Хасти. Т, Роберт. (14 июня 2013 г.). Введение в статистическое обучение (Глава 9). Http://faculty.marshall.usc.edu/gareth-james/ISL/

H, Мартин. (26 июня 2016 г.). Машины опорных векторов - ядра и трюк с ядром. Https://pdfs.semanticscholar.org/6c41/c29257597af6b7da10fbb335cd2c2f9bde75.pdf