Визуализация машины опорных векторов (SVM)

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

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

Ожидаемые вопросы, на которые нужно ответить в этом блоге:

1. Что такое опорные векторы?

2. Как работает классификатор опорных векторов?

3. Чем он отличается от моделей логистической и линейной регрессии?

4. Как работает машина опорных векторов?

Опорные векторы

Рассмотрим изображение ниже,

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

Мы получаем эту цифру. Предположим, что точки над линией положительны, а точки под линией отрицательны.

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

Расстояние между w ’и w’ ’известно как предельное расстояние, и наша главная цель - максимально увеличить это расстояние.

Итак, переходя к опорным векторам, точки данных, пересекаемые w ’и w’ ’, называются опорными векторами. На рис. 3.3 точки данных, заключенные в рамку, являются опорными векторами.

Опорные векторы очень важны, поскольку они влияют на ориентацию гиперплоскости. Они также используются для расчета предельного расстояния.

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

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

Здесь вы можете заметить, что точки, расположенные выше w ’, положительны, а точки, лежащие ниже w’ ’, - отрицательны. Этот тип классификации не позволяет точкам лежать в пределах поля. Поэтому они называются Hard Margin Classier.

Это состояние ухудшается, когда у нас есть выброс в наборе данных. Рассмотрим изображение ниже,

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

Из-за этого сильно влияет наша граница принятия решения (w). Это состояние называется переобучением. Чтобы понять еще лучше, представьте, что в нашем тестовом наборе данных у нас есть 5 отрицательно помеченных точек рядом с выбросом. Теперь все эти 5 точек будут ошибочно классифицированы нашим классификатором как положительные из-за одного выброса, вся линия (w) сдвинута.

Классификатор опорных векторов

Этот классификатор исправляет недостатки классификатора Hard Margin, допуская некоторую пропускную способность без значительного влияния на линию W.

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

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

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

Чем классификация SVM отличается от логистической регрессии?

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

Машины опорных векторов

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

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

SVM справляется с этим путем преобразования набора данных более низкого измерения в более высокое измерение.

Рассмотрим пример выше в 1-D (слева). Здесь точки классифицируются как оранжевые, только если они принадлежат диапазону от 0 до 10 и выше 30, иначе они классифицируются как зеленые. Теперь SVM применяет функцию к каждой точке данных.

Пусть функция будет

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

Теперь мы можем легко разделить эти точки линией W.

Аналогично рассмотрим пример в 2-D. Здесь SVM решает эту проблему, вычисляя ее в 3-D, так что точки выглядят следующим образом:

Теперь мы можем легко классифицировать эти точки, нарисовав плоскость.

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

Продолжай учиться! :)