Как работает машина опорных векторов (SVM)?


108

Как работает машина опорных векторов (SVM) и чем она отличается от других линейных классификаторов, таких как линейный персептрон , линейный дискриминантный анализ или логистическая регрессия ? *

(* Я имею в виду основные мотивы для алгоритма, стратегии оптимизации, возможности обобщения и сложность во время выполнения )


4
Смотрите также: stats.stackexchange.com/questions/3947/…

Ответы:


126

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

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

Перцептроны и другие классификаторы:

Перцептроны построены, беря одну точку за один раз и соответственно корректируя разделительную линию. Как только все точки разделены, алгоритм персептрона останавливается. Но это может остановиться где угодно. На рисунке 1 показано, что существует множество различных разделительных линий, которые разделяют данные. Критерии остановки персептрона просты: «разделить точки и прекратить улучшать линию, когда вы получите 100% разделение». Перцептрону явно не сказано, чтобы найти лучшую разделительную линию. Логистическая регрессия и линейные дискриминантные модели строятся аналогично персептронам.

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

введите описание изображения здесь

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

В отличие от других классификаторов, машине опорных векторов явно сказано найти лучшую разделительную линию. Как? Машина опорных векторов ищет ближайшие точки (рисунок 2), которые она называет «опорными векторами» (название «машина опорных векторов» происходит из-за того факта, что точки подобны векторам и что лучшая линия «зависит» или «поддерживается» ближайшими точками).

Как только он обнаружил самые близкие точки, SVM рисует линию, соединяющую их (см. Линию, обозначенную «w» на рисунке 2). Он рисует эту соединительную линию, выполняя вычитание вектора (точка A - точка B). Затем машина опорных векторов объявляет наилучшую разделительную линию линией, которая делит пополам - и перпендикулярно - соединительной линии.

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

введите описание изображения здесь

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


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

Прочитав свм более двух лет, сегодня понял, как определяется разделительная линия и еще несколько вещей. Спасибо за чистый ответ.
user123

53

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

нотации

Далее скаляры обозначаются курсивом в нижнем регистре (например, ), векторами с жирным нижним регистром (например, ) и матрицами с курсивом в верхнем регистре (например, ) - это транспонирование и .y,bw,xWwTww=wTw

Позволять:

  • x будет вектором объектов (т. е. входом SVM). , где - размерность векторного элемента.xRnn
  • y быть классом (т. е. выводом SVM). , т.е. задача классификации является двоичной.y{1,1}
  • w и - параметры SVM: нам нужно изучить их, используя обучающий набор.b
  • (x(i),y(i)) будет образцом в наборе данных. Предположим, у нас есть образцов в тренировочном наборе.ithN

При можно представить границы решений SVM следующим образом:n=2

введите описание изображения здесь

Класс определяется следующим образом:y

y(i)={1 if wTx(i)+b11 if wTx(i)+b1

который может быть более кратко записан как .y(i)(wTx(i)+b)1

Цель

SVM стремится удовлетворить два требования:

  1. SVM должен максимизировать расстояние между двумя границами решения. Математически это означает, что мы хотим максимизировать расстояние между гиперплоскостью, определенной и гиперплоскостью, определенной . Это расстояние равно . Это означает, что мы хотим решить . Эквивалентно, мы хотим .wTx+b=1wTx+b=12wmaxw2wminww2

  2. SVM также должен правильно классифицировать все , что означаетx(i)y(i)(wTx(i)+b)1,i{1,,N}

Что приводит нас к следующей квадратичной задаче оптимизации:

minw,bw2,s.t.y(i)(wTx(i)+b)1i{1,,N}

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

Можно ослабить ограничения, введя так называемые слабые переменные . Обратите внимание, что у каждого образца тренировочного набора есть своя переменная слабины. Это дает нам следующую квадратичную задачу оптимизации:ξ(i)

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTx(i)+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

Это мягкий край SVM . - гиперпараметр, называемый штрафом за ошибку . ( Каково влияние C в SVM с линейным ядром? И какой диапазон поиска для определения оптимальных параметров SVM? ).C

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

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTϕ(x(i))+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

оптимизация

Задача квадратичной оптимизации может быть преобразована в другую задачу оптимизации, называемую лагранжевой двойственной задачей (предыдущая задача называется основной ):

maxαminw,bw2+Ci=1Nα(i)(1wTϕ(x(i))+b)),s.t.0α(i)C,i{1,,N}

Эту задачу оптимизации можно упростить (установив некоторые градиенты на ) до:0

maxαi=1Nα(i)i=1Nj=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),s.t.0α(i)C,i{1,,N}

w не отображается как (как указано в теореме о представителе ).w=i=1Nα(i)y(i)ϕ(x(i))

Поэтому мы изучаем используя обучающего набора.α(i)(x(i),y(i))

(К вашему сведению: зачем беспокоиться о двойной проблеме при установке SVM? Краткий ответ: более быстрые вычисления + позволяет использовать трюк с ядром, хотя существуют некоторые хорошие методы для обучения SVM в основном, например, см. {1})

Делать прогноз

Как только изучены, можно предсказать класс новой выборки с вектором признаков следующим образом:α(i)xtest

ytest=sign(wTϕ(xtest)+b)=sign(i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)

Суммирование может показаться подавляющим, поскольку это означает, что нужно суммировать по всем обучающим выборкам, но подавляющее большинство равно (см. Почему Множители Лагранжа редки для SVM? ), Поэтому на практике это не проблема. (обратите внимание, что можно построить особые случаи, когда все ) тогда и только тогда, когда является опорным вектором , Иллюстрация выше имеет 3 опорных вектора.i=1Nα(i)0α(i)>0α(i)=0x(i)

Трюк с ядром

Можно заметить, что задача оптимизации использует только во внутреннем произведении . Функция, которая отображает на внутреннее произведение будет называется ядро , иначе функция ядра, часто обозначается .ϕ(x(i))ϕ(x(i))Tϕ(x(j))(x(i),x(j))ϕ(x(i))Tϕ(x(j))k

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

Идти дальше

Некоторые интересные QAs на SVM:

Другие ссылки:


Рекомендации:


2
Привет Франк, большое спасибо за твой ответ. Не могли бы вы объяснить, почему вектор ортогонален гиперплоскости, которую генерирует SVM? И как вы вычислили расстояние между двумя границами решения, чтобы оно было равноw2w
tosik

3
В дополнение к этому замечательному ответу я хочу порекомендовать это видео, в котором рассказывается о математике, стоящей за SVM, и особенно проясняется вопрос @tosik прокомментировал youtube.com/watch?v=_PwhiWxHK8o
Николас Рибл

Очень хороший ответ. Только одно замечание относительно этой части: тогда и только тогда, когда является опорным вектором . Для классификации суммирование эффективно по опорным векторам (т. ). α(i)=0x(i)α(i)0
989

13

Я собираюсь сосредоточиться на сходствах и отличиях его от других классификаторов:

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

  • Из логистической регрессии: логистическая регрессия использует термин логистических потерь и может использовать регуляризацию L1 или L2. Вы можете думать о логистической регрессии как о различающем брате порождающих наивных байесов.

  • Из LDA: LDA также можно рассматривать как генеративный алгоритм, он предполагает, что функции плотности вероятности (p (x | y = 0) и p (x | y = 1) нормально распределены. Это идеально, когда данные находятся в факт обычно распределяется. Однако есть и обратная сторона: «обучение» требует инверсии матрицы, которая может быть большой (когда у вас много функций). При гомоседастичности LDA становится QDA, который является байесовским оптимальным для нормально распределенных данных. Это означает, что если предположения удовлетворены, вы действительно не можете сделать лучше, чем это.

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


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

1
@ DavideChicco.it Да, мы можем использовать функцию индикатора для классификации новых данных, что часто является основной целью классификатора. (Не верьте мне на слово, хотя, я новичок во всем этом).
ключ

12

Техника основана на построении границы решения, оставляющей максимально возможный запас для первых положительных и отрицательных примеров:

введите описание изображения здесь

Как и на иллюстрации выше, если мы выберем ортогональный вектор такой, что мы можем установить критерий решения для любого неизвестного примера который будет каталогизирован как положительный вид:w=1u

wuC

соответствует значению, которое поместит проекцию за линией принятия решения в середине улицы. Обратите внимание, что .wu=uw

Эквивалентное условие для положительной выборки будет:

(1)wu+b0

с участием C=b.

Нам нужны иbw чтобы иметь правило принятия решения, а чтобы попасть туда, нам нужны ограничения .

Первое ограничение мы будем вводить в том , что для любого положительного образца , ; а для отрицательных образцов - . На границе деления или гиперплоскости ( медиана ) значение будет равно , а значения в желобах будут равны и :x+,wx++b1wx+b1011

введите описание изображения здесь

Вектор является вектором весов , тогда как является векторомwb смещением .


Чтобы свести воедино эти два неравенства, мы можем ввести переменную чтобы для положительных примеров, иyiyi=+1yi=1 если примеры отрицательные, и заключить

yi(xiw+b)10.

Таким образом, мы устанавливаем, что это должно быть больше нуля, но если пример находится на гиперплоскостях («желобах»), которые максимизируют предел разделения между гиперплоскостью принятия решения и вершинами опорных векторов, в данном случае линиями), тогда:

(2)yi(xiw+b)1=0

Обратите внимание, что это эквивалентно требованию, чтобыyi(xiw+b)=1.

введите описание изображения здесь


Второе ограничение : расстояние гиперплоскости решения до вершин опорных векторов будет максимальным. Другими словами, предел разделения («улица») будет максимальным:

введите описание изображения здесь

Предполагая единичный вектор, перпендикулярный границе решения, , скалярное произведение с разницей между двумя «граничащими» плюс и минус примерами является шириной «улицы»w :

width=(x+x)ww

В приведенном выше уравнении и находятся в желобе (на гиперплоскостях, максимизирующих расстояние). Поэтому для положительного примера: или ; и для отрицательного примера:x+x (xiw+b)1=0x+w=1bxw=1b . Итак, переформулируем ширину улицы:

width=(x+x)ww=x+wxww=1b(1b)w(3)=2w

Так что теперь нам просто нужно максимизировать ширину улицы - т.е. максимизировать минимизировать или минимизировать:2w,w

(4)12w2

что математически удобно.


Итак, мы хотим:

  1. Сверните с помощью ограничения:x2

  2. yi(wxi+b)1=0


Поскольку мы хотим минимизировать это выражение на основе некоторых ограничений, нам нужен множитель Лагранжа (возвращаясь к уравнениям 2 и 4):

(5)L=12w2λi[yi(xiw+b)1]

Дифференцируя,

Lw=wλiyixi=0
.

Следовательно,

(6)w=λiyixi

И дифференцируя по отношению кb:

Lb=λiyi=0,

это означает, что у нас есть произведение с нулевой суммой множителей и меток:

(7)λiyi=0

Вставив уравнение (6) обратно в уравнение (5),

L=12(λiyixi)(λjyjxj)(λiyixi)(λjyjxj)λiyib+λi

Предпоследний член равен нулю согласно уравнению (7).

Следовательно,

(8)L=λi12ijλiλjyiyjxixj

Уравнение (8) является последним лагранжианом.

Следовательно, оптимизация зависит от скалярного произведения пар примеров.

Возвращаясь к «правилу принятия решений» в уравнении (1) выше и используя уравнение (6):

(9)λiyixiu+b0

будет окончательным правилом принятия решения для нового вектораu.


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

И как мне вычислить б ?
Майк

1
@mike где - это набор индексов опорных векторовВы можете найти это здесь . b=ysmSαmymxmxsS(αi>0).
Антони Пареллада

@AntoniParellada потрясающий ответ Антони большое спасибо - но разве вы не пропустили часть по проблеме Dual и условиям KTT?
Ксавье Бурре Сикотт

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

3

Некоторые комментарии по условиям двойственности и KTT

Основная проблема

Взяв сообщение @ Antoni между уравнениями и , напомним, что наш оригинал или первичное(4)(5) задача оптимизации имеет вид:

minw,bf(w,b)=minw,b 12||w||2s.t.  gi(w,b)=y(i)(wTx(i)+b)+1=0

Метод Лагранжа

Метод множителей Лагранжа позволяет нам превратить ограниченную задачу оптимизации в безусловную форму:

L(w,b,α)=12||w||2imαi[y(i)(wTx(i)+b)1]

Где называется лагранжианом, а - лагранжевыми множителямиL(w,b,α)αi .

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

minw,b(maxαL(w,b,α))

Двойная проблема

То, что @Antoni и профессор Патрик Уинстон сделали в своем выводе, предполагают, что функция оптимизации и ограничения удовлетворяют некоторым техническим условиям, так что мы можем сделать следующее:

minw,b(maxαL(w,b,α))=maxα(minw,bL(w,b,α))

Это позволяет нам взять частные производные от по и , приравнять к нулю, а затем включить результаты обратно в исходное уравнение лагранжиана, следовательно, генерируя эквивалентный двойнойL(w,b,α)wb задача оптимизации вида

maxαminw,bL(w,b,α)maxαimαi12i,jmy(i)y(j)αiαj<x(i)x(j)>s.t. αi0s.t. imαiy(i)=0

Двойственность и КТТ

Не вдаваясь в излишние математические подробности, эти условия являются комбинацией условий Двойственности и Каруша Куна Такера (KTT) и позволяют нам решать двойственную задачу вместо основной , обеспечивая при этом одно и то же оптимальное решение. В нашем случае условия следующие:

  • Функции основного объекта и ограничения неравенства должны быть выпуклыми
  • Функция ограничения равенства должна быть аффинной
  • Ограничения должны быть строго выполнимыми

Тогда существует которые являются решениями первичных и двойственных задач. Кроме того, параметры удовлетворяют условиям KTT ниже:w,αw,α

wiL(w,α,β)=0(A)βiL(w,α,β)=0(B)αigi(w)=0(C)gi(w)0(D)αi0(E)

Более того, если некоторые удовлетворяют решениям KTT, то они также являются решением первичной и двойственной задачи.w,α

Приведенное выше уравнение имеет особое значение и называется условием двойной комплементарности . Это означает, что если то что означает, что ограничение активно, т.е. оно выполняется с равенством, а не неравенством. Это объяснение уравнения(C)αi>0gi(w)=0gi(w)0(2) в выводе Антони, где ограничение неравенства превращается в ограничение равенства.

Интуитивно понятная, но неформальная диаграмма

введите описание изображения здесь

источники


2
Большое спасибо. Я читаю это быстро и возвращаюсь к нему позже с большим количеством времени, но это звучит великолепно и затрагивает пропущенные моменты в моем ответе.
Антони Пареллада
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.