Разница между СВМ и персептроном


29

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

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

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


Ответы:


18

Это звучит правильно для меня. Люди иногда также используют слово «Персептрон» для обозначения алгоритма обучения вместе с классификатором. Например, кто-то объяснил мне это в ответе на этот вопрос . Кроме того, ничто не мешает вам использовать ядро ​​с персептроном, и это часто лучший классификатор. Смотрите здесь некоторые слайды (pdf) о том, как реализовать ядро ​​персептрон.

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


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


4

SVM: Перцептрон

minw2+Ci=1n(1yi(wxi+w0))+
mini=1n(yi(wxi+w0))+

Мы можем видеть, что SVM имеет почти ту же цель, что и L2-регуляризованный персептрон.

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

Почему Perceptron позволяет онлайн-обновления? Если вы видите правило обновления градиентного спуска для потери шарнира (потеря шарнира используется как SVM, так и персептроном),

wt=wt1+η1Ni=1NyixiI(yiwtxi0)

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

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

wt=wt1+yy+1xt+1I(yt+1wtxt+10)

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


-1

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.