Все, что нужно знать - машины опорных векторов (SVM)

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

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

В этой статье я собираюсь четко объяснить оба метода и разницу между ними.

Давайте начнем!

Машина опорных векторов для классификации ~ Классификатор опорных векторов

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

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

Как узнать, какая мягкая маржа лучше?

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

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

Типы SVM

SVM бывает двух типов:

  • Линейная SVM. Линейная SVM используется для линейно разделяемых данных. Это означает, что если набор данных можно разделить на два класса с помощью одной прямой линии, то такие данные называются линейно разделяемыми данными, а классификатор - используется как линейный классификатор SVM.
  • Нелинейная SVM: Нелинейная SVM используется для нелинейно разделенных данных. Это означает, что если набор данных не может быть классифицирован с помощью прямой линии, такие данные называются нелинейными данными и Используемый классификатор называется Нелинейным классификатором SVM.

Основная идея SVM:

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

Вывод максимальной маржи в SVM для линейно разделяемых данных

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

Обратите внимание, что оба уравнения одинаковы для положительных и отрицательных образцов.

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

Теперь давайте найдем ширину / поле гиперплоскости.

Теперь нам нужно найти решение таким образом, чтобы ширина гиперплоскости была максимальной. Мы будем использовать уравнение 2 и уравнение 3, чтобы найти крайнюю величину ширины. Чтобы найти экстремум функции с ограничениями, мы будем использовать L agrange Multipliers.

Вычтите уравнение 2 из уравнения 3:

Подставьте уравнения 5 и 6 в уравнение 4:

Для линейно разделяемых точек данных нам нужно найти максимум выражения L, который зависит от скалярного произведения точек Xi и Xj.

Но что, если точки данных нелегко разделить? Как мы решаем, как преобразовать данные?

Алгоритмы SVM используют набор математических функций, которые определены как ядро. Функция ядра - принимать данные в качестве входных и преобразовывать их в требуемую форму. В разных алгоритмах SVM используются разные типы функций ядра. Эти функции могут быть разных типов. Например, линейная, нелинейная, полиномиальная, радиальная базисная функция (RBF) и сигмоид.

Полиномиальная функция ядра

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

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

Здесь мы производим точечные произведения точек данных, что дает нам высокоразмерные координаты данных.

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

Когда d = 2, полиномиальное ядро ​​вычисляет двумерные отношения между каждой парой наблюдений, которые помогают найти классификатор опорных векторов.

Аналогично для d = 3,4,5…

Примечание. Мы используем перекрестную проверку, чтобы выбрать оптимальное значение для d

Радиальное (RBF) ядро

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

  • a и b - два вектора признаков из двух выборок.
  • Затем разность между векторами возводится в квадрат, то есть дает квадрат расстояния.
  • γ (Гамма) масштабирует квадрат расстояния и, таким образом, масштабирует влияние двух векторов / точек друг на друга. Наилучшее значение γ определяется перекрестной проверкой.

Когда мы подставляем эти значения γ, мы получаем многомерное соотношение между двумя точками.

Таким образом, любое число (не близкое к нулю) является многомерным соотношением между двумя относительно близкими друг к другу наблюдениями. И любое число (очень близкое к нулю) является многомерным соотношением между двумя наблюдениями, которые относительно далеки друг от друга.

Ядро с радиальным базисом может работать для бесконечных измерений, потому что мы можем представить функцию (степень x) в Расширении ряда Тейлора до тех пор, пока не существует f (x).

Примечание о функциях ядра

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

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

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

Машина опорных векторов для регрессии ~ Регрессор опорных векторов

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

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

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

Преимущества и недостатки машины опорных векторов

Преимущества SVM

  • Гарантированная оптимальность: из-за природы выпуклой оптимизации решение всегда будет глобальным минимумом, а не локальным минимумом.
  • Обилие реализаций: мы можем получить к нему удобный доступ, будь то из Python или Matlab.
  • SVM может использоваться как для линейно разделимых, так и для нелинейно разделимых данных. Линейно разделяемые данные представляют собой жесткую границу, тогда как нелинейно разделяемые данные представляют собой мягкую границу.
  • SVM обеспечивают соответствие моделям полууправляемого обучения. Его можно использовать в областях, где данные помечены, а также не помечены. Это требует только условия для задачи минимизации, которая известна как Transductive SVM.
  • Отображение функций раньше было значительной нагрузкой на вычислительную сложность общей производительности обучения модели. Однако с помощью Kernel Trick SVM может выполнять отображение функций с помощью простого скалярного произведения.

Недостатки SVM

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

Вот и все! Спасибо за чтение. Пожалуйста, поделитесь, если эта статья окажется для вас полезной :)

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

Https://pdfs.semanticscholar.org/7cc8/3e98367721bfb908a8f703ef5379042c4bd9.pdf
https://www.kdnuggets.com/2017/02/yhat-support-vector-machine.html
Https://www.javatpoint.com/machine-learning-support-vector-machine-algorithm
https://statinfer.com/204-6-8-svm-advantages-disadvantages-applications/
https://data-flair.training/blogs/svm-support-vector-machine-tutorial/
https://www.saedsayad.com/support_vector_machine_reg.htm размером
«Https://www.youtube.com/watch?v=efR1C6CvhmE

https://www.youtube.com/watch?v=Toet3EiSFcM
https: // www .youtube.com / watch? v = Qc5IyLW_hns
https://www.youtube.com/watch?v=_PwhiWxHK8o&t=2s