Різниця між SVM та перцептроном


29

Я трохи плутаю різницю між SVM та перцептроном. Дозвольте спробувати узагальнити своє розуміння тут, і, будь ласка, не соромтесь виправити, де я помиляюся, і заповнити те, що я пропустив.

  1. Perceptron не намагається оптимізувати роздільну "відстань". Поки він знаходить гіперплан, який розділяє два набори, це добре. SVM, з іншого боку, намагається максимізувати "вектор підтримки", тобто відстань між двома найближчими протилежними точками вибірки.

  2. SVM, як правило, намагається використовувати "функцію ядра" для проектування вибіркових точок на простір високих розмірів, щоб зробити їх лінійно відокремленими, в той час як персептрон передбачає, що точки вибірки лінійно відокремлюються.


Відповіді:


18

Мені це звучить правильно. Люди іноді також використовують слово "Perceptron" для позначення алгоритму навчання разом із класифікатором. Наприклад, хтось мені це пояснив у відповіді на це запитання . Крім того, ніщо не заважає вам використовувати ядро ​​з перцептроном, і це часто кращий класифікатор. Дивіться тут кілька слайдів (pdf) про те, як реалізувати перцептрон ядра.

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


3
SVM можна навчати в Інтернеті. З подвійного рішення ви можете отримати відповідне первинне і з цього оновити ваги стохастично.
Firebug


4

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.