Серия ML-DL101: Часть 2

Вступление :

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

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

Математика, лежащая в основе SVM (на самом деле это очень просто):

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

Допустим, у нас есть произвольный вектор u.

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

Теперь мы знаем, что скалярное произведение вектора u и w даст нам проекцию вектора u на w.

Здесь c - константа, такая, что, когда скалярное произведение, то есть длина проекции u на w, пересекает границу принятия решения или среднюю линию улицы. Улица - это перемычка области между линиями l1 и l2. На рисунке 1 представлена ​​основная идея используемых терминов.

Теперь мы можем расположить это уравнение как:

Здесь b просто отрицательно по сравнению с c. По сути, это означает, что если уравнение 1 верно, то выборка u находится выше границы принятия решения или находится в выборке «a»:

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

Y таков, что yi равен +1 для образцов, принадлежащих категории «a», и -1 для образцов, принадлежащих категории «b».

Теперь мы должны немного упростить оба выражения и попытаться представить их одним выражением.

Мы знаем, что для, значения y будут равны 1, поскольку все точки данных лежат выше границы решения, и аналогично для всех значений y будет -1, поскольку все точки данных b лежат ниже границы решения. Теперь мы умножаем оба неравенства на «y» с обеих сторон. Итак, для образца «а» мы получаем:

Для b выборки yi = -1 и поскольку мы умножаем на отрицательную величину, неравенство меняется, и мы получаем:

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

Здесь оба уравнения сводятся к одному в зависимости от значения y, которое, в свою очередь, зависит от категории образца, то есть ui. Итак, здесь наше уравнение (2) представляет точки данных, лежащие либо в выборке «A», либо в выборке «B», то есть точки данных, лежащие за пределами улицы. Следовательно, точки, лежащие на улице, неравенством не представлены. Другими словами, для точек, лежащих на улице, значение yi (w.ui + b) будет меньше 1. Теперь легко понять, что точки, лежащие на границе улицы, будут иметь равенство, т.е. для точек лежащее на границе неравенство изменится на равенство.

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

Теперь у нас есть (va-vb), как показано на рисунке. Также у нас есть вектор "w", перпендикулярный улице. Таким образом, длина (va-vb) в направлении «w» даст нам ширину улицы. Итак, мы берем скалярное произведение единичного вектора «w» и (va-vb).

Итак, получаем ширину как:

Поскольку va и vb оба лежат на границе улицы, неравенство 2 становится равенством для этих двух точек. Следовательно, мы имеем

Ya (w.va + b) -1 = 0 и Yb (w.vb + b) -1 = 0

Из уравнения (2) мы можем сказать, что для точки a мы имеем Ya = 1, поскольку она лежит в категории «a», то есть выше границы принятия решения, а для точки b мы имеем Yb = -1, поскольку точка b лежит в категория «b», т. е. ниже границы принятия решения. Это можно лучше понять с помощью диаграммы и ее последующего пояснения, приведенного в начале этого раздела. Итак, мы можем сказать, что теперь уравнения станут такими:

ш. va = 1-b и w. vb = -1-b

Теперь поместив это в значение ширины, полученное в уравнении (3), мы получим

Как было сказано ранее, здесь цель состоит в том, чтобы максимально увеличить эту ширину. Таким образом, нам нужно максимизировать уравнение (4), т.е. максимизировать значение 2 / | w | т.е. минимизировать знаменатель, т.е. минимизировать | w | при условии, что указано в уравнении (2). Теперь мы можем сказать, что минимизация | w | то же самое, что минимизировать | w | ². Мы воспользуемся принципом двойственности Лагранжа из теории ВК, чтобы решить эту проблему. Итак, для простоты, допустим, нам нужно минимизировать | w | ² / 2.

Итак, мы получаем,

Обратите внимание, что набор значений «ai» является множителем Лагранжа. Для решения вышеуказанной задачи Лагранжа мы дифференцируем L по переменной, которая в данном случае является вектором «w» и b. Затем приравняем полученное выражение к нулю.

Итак, здесь, по правилам векторного дифференцирования, мы получаем:

Итак, по Лагранжу получаем

Теперь мы помещаем полученное значение «w» в уравнение (5) и помещаем его в L.

Теперь мы используем уравнение (6), чтобы немного упростить L:

Вот как выглядит наше окончательное выражение. Но было бы интересно узнать толкование этого. Уравнение в основном использует скалярное произведение пары точек выборки. Итак, наша гипотеза зависит от суммы скалярного произведения точек выборки. Теперь, анализируя границу принятия решения, заданную уравнением (1), подставляя значение w, полученное из уравнения (5), мы получаем:

чтобы точка лежала в категории «а».

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

Уловки ядра (гениальное нововведение):

Уловки ядра, используемые в машинном обучении, - это метод решения задач нелинейной классификации с использованием линейного классификатора. Случается, что во многих случаях точки данных не разделяются линейно. В такие моменты мы вносим изменения в размеры, чтобы стало легче разделить данные. Мы пытаемся найти взаимосвязь в точках данных, как если бы точки данных были в более высоких измерениях. Это можно сделать с помощью ядер. Следует отметить важный момент: трюк с ядром на самом деле не преобразует векторы в более высокие измерения, так как это потребует больших вычислительных усилий. Он скорее просто вычисляет отношения точек данных, учитывая, что они были в более высоких измерениях. Предположим, что векторы x и y из предыдущего раздела. Это те, скалярное произведение которых должно было быть вычислено, чтобы найти границу решения. Теперь функция ядра «K (x, y)» задается следующим образом:

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

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

  1. Ядра полиномов: Функция задается следующим образом: K (x, y) = (x.y + 1) ^ d, где «d» - параметр, обозначающий степень полинома. Xi и Xj - точки данных. Это полиномиальное ядро ​​вычисляет n-мерное отношение между каждой парой точек данных. Эти отношения используются для поиска классификатора опорных векторов в d-измерении. А чтобы максимизировать эффективность, мы можем найти оптимальное значение d с помощью перекрестной проверки. Эта функция ядра широко используется при обработке изображений.
  2. Ядра Гаусса: функция ядра Гаусса показана на изображении ниже. Это ядро ​​общего назначения. Здесь сигма - это параметр, используемый для регулирования взаимосвязи между двумя точками данных. Чем больше расстояние (или меньше сходство), тем меньше значение функции ядра и чем меньше расстояние (или больше сходство), тем ближе значение функции ядра к 1.

3. Ядро с радиальным базисом (RBF):

Здесь гамма - это параметр, который масштабирует степень влияния двух точек x и y друг на друга. Ядро Radial Basis отображает данные в бесконечные измерения. Это связано с расширением экспоненциальной функции (вспомните расширение e ^ x). Это гарантирует, что RBF ведет себя как классификатор ближайшего соседа. Другими словами, самые близкие соседи точки данных имеют наибольшее влияние на классификацию, тогда как дальние соседи имеют наименьшее влияние.

Мягкая маржа:

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

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

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

Еще много статей ждут вас. Устройтесь поудобнее в период карантина, регулярно мойте руки, узнавайте больше о Corona Virus с помощью машинного обучения, применяемого к их наборам данных, и, что самое главное, будьте в безопасности! Следите за нашими новыми статьями в серии ML-DL 101!