Які переваги штучних нейронних мереж над підтримуючими векторними машинами? [зачинено]


381

ANN (Штучні нейронні мережі) та SVM (Support Vector Machines) - це дві популярні стратегії керованого машинного навчання та класифікації. Не часто зрозуміло, який метод краще для конкретного проекту, і я впевнений, що відповідь завжди "це залежить". Часто використовується комбінація обох поряд з байєсівською класифікацією.

Ці питання щодо Stackoverflow вже задавались щодо ANN vs SVM:

Класифікація ANN та SVM

яка різниця між ANN, SVM та KNN в моєму класифікаційному питанні

Підтримка векторної машини або штучної нейронної мережі для обробки тексту?

У цьому питанні я хотів би конкретно дізнатись, які аспекти ANN (зокрема, багатошарового перцептора) можуть зробити його бажаним використовувати над SVM? Причина, яку я запитую, полягає в тому, що легко відповісти на протилежне запитання: Підтримка векторних машин часто перевершує ANN, оскільки вони уникають двох основних слабких місць:

(1) ANN часто сходяться на локальних мінімумах, а не на глобальних мінімумах, це означає, що вони, по суті, іноді "не вистачають на велику картину" (або відсутні ліси для дерев)

(2) ANN часто перевищують, якщо навчання триває занадто довго, це означає, що для будь-якої заданої схеми ANN може почати розглядати шум як частину схеми.

SVM не страждають жодною з цих двох проблем. Однак, не очевидно, що SVM повинні бути повноцінною заміною ANN. Отже, яку конкретну перевагу має ANN перед SVM, що може зробити його застосовно до певних ситуацій? Я перерахував конкретні переваги SVM над ANN, тепер я хотів би побачити список переваг ANN (якщо такі є).


61
На жаль, це, швидше за все, буде закрито або перенесено, але я абсолютно люблю питання. Мені не хотілося б нічого кращого, ніж побачити цілий спектр продуманих відповідей на цей.
duffymo

10
Я думаю, що більшість відповідей на це питання будуть спекулятивними або ґрунтуються на доказах, оскільки теоретичних гарантій на потужність цих машин дуже мало. Наприклад (якщо я правильно пригадую), невідомо, чи нейронна нейромережа n-рівня подачі потужніша, ніж двошарова мережа. Тож як можна сказати, що одна краща за іншу в принципі, якщо ми навіть не розуміємо зв’язків між незначними варіаціями однієї моделі?
JeremyKun

13
Він закритий тим, що не дуже конструктивний ... Лол!
erogol

65
Мені подобається, що StackOverflow намагається підтримувати якість запитань та відповідей на високому рівні. Я ненавиджу, що StackOverflow застосовує це за допомогою сокири замість скальпеля. Існує різниця між запитанням "як мені зробити HTML stuffz?" і запитання щодо домену, на яке важко знайти відповідь в іншому місці. Існує причина, що в ньому є 140 результатів - але це вважається "неконструктивним". Такі питання є втіленням конструктивного. Звичайно, набагато більше, ніж багато з тих, кого я бачу щодня, які акуратно потрапляють у формат запитань, хоча вони, тим не менш, марні майже для всіх, крім того, хто ставить запитання.
Chase Ries

20
Це, очевидно, конструктивно. Я не можу зрозуміти, чому це було б закрито. Це вимагає конкретних ситуацій, коли використання одного алгоритму має переваги перед використанням альтернативного алгоритму. Хіба це не розумна справа?
Раб

Відповіді:


137

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

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

Крім того, онлайн-навчання мереж FF дуже просте порівняно з онлайн-підключенням SVM, і передбачення може бути досить швидким.

EDIT : все вищезазначене стосується загального випадку ядерних SVM. Лінійний SVM являє собою особливий випадок в тому , що вони є параметричними і дозволяють інтерактивне навчання з допомогою простих алгоритмів , таких як стохастичний градиентного спуск.


12
Ще одну причину можна знайти в цій статті: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . Коротше кажучи, автор зазначає, що "глибокі архітектури" можуть представляти "розумну" поведінку / функції тощо ефективніше, ніж "неглибокі архітектури", як SVM.
альфа

1
Як осторонь, глибоке навчання дещо втрачає "переваги", надані тут для MLP (фіксований розмір, простіша підготовка). Я не впевнений, що ці переваги того варті.
Мухаммед Алкароурі

6
@MuhammadAlkarouri: глибоке навчання - це досить широкий набір методів, але ті, з якими я знайомий, зберігають перевагу в тому, що моделі параметричні (фіксованого розміру).
Фред Фоо

Два коментарі: точка навчання в Інтернеті відповідає дійсності, але існує варіант класифікаторів, подібних до SVM, спеціально розроблених для онлайн-навчання, під назвою MIRA (тип пасивно-агресивного класифікатора), для якого оновлення тривіальні. По-друге, варто зазначити, що багато нейронних мереж можна сформулювати як SVM через фокус ядра.
Бен Еллісон

1
@FredFoo також ANN може застрявати в локальних мінімумах, де як векторні машини підтримки не схильні до цієї проблеми.
турист

62

Одним із очевидних переваг штучних нейронних мереж над машинами підтримки вектора є те, що штучні нейронні мережі можуть мати будь-яку кількість виходів, тоді як підтримуючі векторні машини мають лише один. Найбільш прямий спосіб створити n-арний класифікатор з підтримуючими векторними машинами - це створити n підтримуючих векторних машин і навчити кожну з них по черзі. З іншого боку, n-арний класифікатор з нейронними мережами може бути навчений за один раз. Крім того, нейронна мережа матиме більше сенсу, оскільки це одне ціле, тоді як апарати вектора підтримки є ізольованими системами. Це особливо корисно, якщо результати є взаємопов'язаними.

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

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


18
Насправді існують справжні багатокласові склади машини підтримки вектора (див. Статті Crammer & Singer). Я вважаю, що LibSVM містить їх реалізацію.
Фред Фоо

3
Однак навчити багатокласний SVM не так просто, і ефективність, здається, краща за підходу OVA, ніж AVA.
crodriguezo

3
"немає сенсу намагатися вирішити це за допомогою штучної нейронної мережі" Ви можете використовувати нейронну мережу для вирішення класифікації рукописних цифр. Я зробив це як завдання hw для класу. Вихідний шар містить ймовірності всіх цифр. Клас з найбільшою ймовірністю використовується як гіпотеза. Я мав 94% -ву точність.
користувач3266824

Ви маєте на увазі створити n число 1 від N-1 SVM класифікаторів проти NN, щоб зробити n виходів. SVM здається повільнішим таким чином?
mskw

@ user3266824 Так, ця цитата не старіла.
runDOSrun

46

Варто зазначити одне, що вони насправді дуже споріднені. Лінійні SVM еквівалентні одношаровим NN (тобто перцептронам), а багатошарові NN можуть бути виражені через SVM. Дивіться тут деталі.


18

Якщо ви хочете використовувати ядро ​​SVM, вам доведеться відгадати ядро. Однак ANN - це універсальні наближувачі, з якими можна тільки здогадуватися, - це ширина (точність наближення) та висота (ефективність наближення). Якщо правильно розробити проблему оптимізації, ви не перестараєтесь (див. Бібліографію щодо перевиконання). Це також залежить від навчальних прикладів, якщо вони правильно та рівномірно сканують простір пошуку. Виявлення ширини та глибини є предметом цілого програмування.

Припустимо, ви обмежили функції f (.) І обмежили універсальні наближувачі на I = [0,1] з діапазоном знову I = [0,1], наприклад, параметризовані реальною послідовністю компактної підтримки U (., A) з властивість, що існує послідовність послідовностей з

lim sup { |f(x) - U(x,a(k) ) | : x } =0

і ви малюєте приклади та тести (x,y)з розподілом D на IxI.

Для встановленої підтримки, що ви робите, це знайти найкраще таке, що таке

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

Нехай це a=aaє випадковою змінною!

середнє використання D and D^{N} of ( y - U(x,aa) )^{2}

Дозвольте мені пояснити, чому, якщо вибрати aaтакий, що помилка зведена до мінімуму, то для рідкісного набору значень вам ідеально підходить. Однак, оскільки вони рідкі, середнє значення ніколи не становить 0. Ви хочете мінімізувати друге, хоча у вас є дискретний наближення до D. І майте на увазі, що довжина підтримки вільна.


14

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


12

Також слід врахувати, що систему SVM можна застосовувати безпосередньо до неметричних просторів, таких як набір мічених графіків чи рядків. Насправді, внутрішня функція ядра може бути належним чином узагальнена практично до будь-якого виду входу, за умови, що вимога ядра позитивної визначеності задоволена. З іншого боку, щоб мати можливість використовувати ANN на наборі мічених графіків, слід враховувати чіткі процедури вбудовування.


6
На мій погляд, побудова розумного ядра та побудова розумного метричного вбудовування однаково проблематично. Тож це лише коментар, що ядра можуть бути більш різноманітними, ніж метрики, але я цього не купую. ohli.de/download/papers/Deza2009.pdf
JeremyKun
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.