Понимание концепции SVM

Введение

Спасибо, что прочитали эту статью, в этой статье мы рассмотрим очень мощный и популярный алгоритм машинного обучения Support Vector Machine. Здесь мы попытаемся понять основную концепцию, на которой основана SVM, используя очень простой пример из наших реальных сценариев, чтобы лучше понять это. Мы также попытаемся понять несколько основных концепций линейной алгебры, потому что это поможет понять математику, лежащую в основе SVM, которую мы объясним в следующей статье.

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

Машина опорных векторов - это управляемый алгоритм машинного обучения, разработанный Владимиром Вапником и Алексеем Я. Червоненкисом в 1963 году, это дискриминирующий классификатор, который работает, отображая данные в N-мерном пространстве, а затем находя наиболее подходящую гиперплоскость, которая может четко классифицировать данные по их соответствующим классам, а для поиска гиперплоскости он использует концепцию максимума. край гиперплоскость. Его можно использовать как для классификации, так и для регрессии, но в основном он используется для задач классификации. Сегодня это один из наиболее часто используемых алгоритмов в машинном обучении. Как мы знаем, самым надежным и популярным алгоритмом в машинном обучении являются нейронные сети, но в его популярности есть вмятина, и эта вмятина связана с SVM, поскольку, используя гораздо меньшую вычислительную мощность, чем нейронные сети, он дает очень надежные результаты как для линейных, так и для линейных вычислений. и нелинейные данные.

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

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

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

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

Так почему же мы принимаем размерность пространства равным количеству объектов?

Причина этого в линейной алгебре, в линейной алгебре, если мы хотим построить точку, где X1 = 2 и X2 = 3, мы рисуем график, как показано ниже, и помещаем точку так, чтобы она находилась на расстоянии 2 от x1 и 3 от X2.

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

Основная цель SVM и почему эта цель важна: -

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

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

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

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

Нарисованная точка будет иметь значения координат, которые представляют собой не что иное, как значения объектов. Итак, для строки выше координата будет (1,3,6). Теперь представьте, что каждая такая строка представляет собой точку (точка также представляет собой плод), а затем мы наносим каждую точку в N (3 для этого примера) мерного пространства, и теперь наша цель - найти гиперплоскость, которая может разделять эти точки в два класса апельсина или манго таким образом, что мы можем сказать, что данные на одной стороне плоскости принадлежат апельсину, а данные на другой стороне - манго.

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

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

Предположим, у нас есть две функции X1 и X2, и у нас есть два класса A и B. И на основе количества обучающих примеров (предположим, что у нас есть n обучающих примеров), у нас будут нарисованы точки и значения X1 и X2. будут координаты этих точек -

Теперь предположим, что после размещения вышеуказанных точек в 2-мерном пространстве мы получили график, подобный приведенному выше. Поскольку у нас есть два столбца функций (X1, X2) и, как мы знаем, размерность пространства зависит от количества функций, мы выбрали 2D-пространство.

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

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

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

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

См. Рисунок ниже.

Но для этого потребуются огромные вычислительные ресурсы,

Итак, вопрос в том, есть ли у нас какой-либо другой эффективный механизм для решения этой проблемы без использования таких больших ресурсов?

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

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

Размерность гиперплоскости = N-1

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

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

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

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

Как мы знаем, идея машины опорных векторов состоит в том, чтобы найти такую ​​плоскость или границу решения, чтобы расстояние от ближайших точек каждого класса до границы решения было максимальным. Здесь у нас может быть 2 вопроса: один - почему нам нужно максимальное расстояние, второй - почему нужно максимальное расстояние от каждого класса. Чтобы понять это, давайте рассмотрим тот же пример разделения фруктов на 2 части или классы, то есть апельсин или манго. И на этот раз мы не будем рисовать график, а воспользуемся очень простым подходом, см. Рисунок ниже -

Рассмотрим пока только особенности, то есть размер и цвет, и мы можем сказать, что если размер меньше, а цвет оранжевый, класс оранжевый, а если размер больше и цвет желтый, он принадлежит манго. Теперь наша цель - найти границу решения, чтобы мы могли сказать, что данные на левой стороне границы решения принадлежат оранжевому классу, а данные на правой стороне границы решения принадлежат классу манго, и, увидев рисунок выше, мы можем сказать, что мы можем разместить границу решения в любом месте, поэтому давайте возьмем 3 случая, один ближе к классу апельсина, обозначенному на рисунке 7 ниже как D1, один ближе к классу манго, обозначенному D2 на рисунке, и для границы решения с максимальным расстоянием от каждого класса позволяет вычислить расстояние между ближайшими точками каждого класса, то есть Po класса апельсина и Pm сорта манго, и разместить нашу границу принятия решения точно посередине того расстояния, которое обозначено Dm на рисунке ниже.

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

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

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

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

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

Итак, из приведенного выше примера мы получили ответы на наши 2 вопроса:

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

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

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

Маржа- Маржа может быть определена как расстояние от ближайших точек до поверхности принятия решения. Мы также можем сказать, что запас - это расстояние между границей решения и каждым из классов. Итак, на рисунке ниже мы можем видеть, что точки (X11, X21) и (X12, X22) находятся ближе всего к поверхности принятия решения, следовательно, расстояние между этими точками и поверхностью принятия решения является запасом.

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

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

Заключение

Итак, в этой статье мы попытались понять основные концепции:

· Что такое опорная векторная машина.

· Концепции пространства на примере.

· Размер пространства зависит от количества функций.

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

· Объяснена идея гиперплоскости.

· Мы подробно рассмотрели SVM и на нескольких примерах получили представление о марже и о том, почему нам нужно иметь максимальную маржу от каждого класса.

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