Нейронні мережі та підтримуючі векторні машини: чи є другий, безумовно, кращим?


52

Багато авторів статей, які я читаю, стверджують, що SVM - це чудова техніка для вирішення проблеми регресії / класифікації, усвідомлюючи, що вони не змогли отримати подібних результатів через NN. Часто порівняння стверджує, що

SVM, замість NN,

  • Майте сильну теорію заснування
  • Досягти глобального оптимуму завдяки квадратичному програмуванню
  • Немає проблем з вибором належної кількості параметрів
  • Менш схильні до перевитрати
  • Для зберігання прогнозної моделі потрібно менше пам'яті
  • Виходять більш читабельні результати та геометрична інтерпретація

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

З іншого боку, з якою абстрактною проблемою ви б неодмінно зіткнулися з NN?


4
Я думаю, питання може бути трохи широким. Але на практиці НН здається набагато більш коригуваним у виборі структури NN, тоді як у SVM є менші параметри. Є два питання, якби NN були оптимально налаштовані для вирішення проблеми, як би це було проти SVM? А в руках середнього практикуючого, як SVM порівнюється з NN?
Патрік Калдон

2
@PatrickCaldon Я розумію вашу точку зору, але більше параметрів для вирішення не завжди означає кращий інструмент, якщо ви не знаєте, як їх правильно налаштувати. Навіть якщо це можливо, може знадобитися тривале вивчення; або, можливо, вам не знадобиться настільки широка настройка для вашої програми
stackovergio

1
це моя суть. Яке питання, як інструмент працює в ідеальних обставинах щодо конкретних проблем? або як інструмент працює для більшості людей більшу частину часу? Я думаю, що найбільшою складовою тут є людина, яка перебуває до речі. Зважаючи на це, я думаю, що часто є відповідними чинниками: Наскільки важко вчитися кожному інструменту? Чи є навколо фахівці, які знають, як ним користуватися? і т. д. Це може пояснити багато "Я отримав хороші показники з X"
Патрік Калдон

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

2
У практичному використанні я вважаю, що NN трохи практичніше через час навчання. Нелінійні SVM просто не можуть впоратися з великими N дуже добре. Обидва алгоритми можуть перевищувати, і обидва потребують сильної регуляризації.
Ши Паркес

Відповіді:


43

Це питання компромісів. SVMs знаходяться в прямо зараз, NNS раніше в . Ви знайдете зростаючу кількість паперів, які заявляють про випадкові ліси, імовірнісні графічні моделі або непараметричні байєсівські методи . Хтось повинен опублікувати модель прогнозування в « Анналах неможливих досліджень» про те, які моделі вважатимуться стегнами.

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


Плюси НН:

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

  • Більшість контрольованого машинного навчання вимагає, щоб ваші дані були структуровані за спостереженнями за матрицею функцій, з мітками як вектором спостережень за довжиною. Це обмеження не потрібно для NN. Існує фантастична робота зі структурованим SVM, але навряд чи він коли-небудь буде таким гнучким, як мережеві мережі.


Плюси SVM:

  • Менше гіперпараметрів. Як правило, для отримання достатньо точної моделі SVM потрібен менший пошук по сітці. SVM з ядром RBF зазвичай працює досить добре.

  • Глобальний оптимум гарантований.


Мінуси NN та SVM:

  • Для більшості цілей вони обоє чорні скриньки. Існує деяке дослідження інтерпретації SVM, але я сумніваюся, що воно коли-небудь буде настільки інтуїтивним, як GLM. Це серйозна проблема в деяких проблемних областях.
  • Якщо ви збираєтесь прийняти чорний ящик, тоді, як правило, ви можете вичавити трохи більшу точність, упакуючи / укладаючи / підвищуючи багато багатьох моделей з різними компромісами.

    • Випадкові ліси привабливі тим, що вони можуть створювати прогнози, що не входять у мішок (передбачення «один-один») без додаткових зусиль, вони дуже інтерпретаційні, вони мають хороший компроміс з відхиленням відхилення (чудово підходить для моделей для переробки мішків), і вони відносно стійкі до упередженості відбору. Дуже просто написати паралельну реалізацію.

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

    • Непараметричні (або насправді надзвичайно параметричні) баєсові методи привабливі, оскільки вони безпосередньо створюють довірчі інтервали. Вони дуже добре працюють на невеликих розмірах зразків і дуже добре на великих розмірах зразків. Дуже просто написати лінійну реалізацію алгебри.


41
З недавнім поглибленням глибокого навчання, я можу сказати, що НН можна вважати "більше", ніж СВМ.
bayerj

30

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

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


7
Я з цим повністю згоден. Зараз я навчаю SVM та ANN на даних інтерфейсу мозок-комп'ютер, і є деякі набори даних, де SVM краще, а деякі набори, де ANN - кращі. Цікавим є те, що коли я оцінюю продуктивність за всіма наборами даних, якими я користуюся, SVM та ANN досягають абсолютно однакової продуктивності. Звичайно, це не доказ. Це просто анекдот. :)
альфа

27

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

  1. У класичному НН кількість параметрів надзвичайно велика. Скажімо, у вас є вектори довжиною 100, які ви хочете класифікувати на два класи. Один прихований шар такого ж розміру, що і вхідний шар, призведе до отримання більш ніж 100000 вільних параметрів. Уявіть собі, як сильно ви можете переоцінити (як легко впасти до місцевого мінімуму в такому просторі), і скільки навчальних балів вам знадобиться, щоб цього не допустити (і скільки часу вам тоді потрібно буде тренуватися).
  2. Зазвичай вам потрібно бути справжнім експертом, щоб обрати топологію з першого погляду. Це означає, що якщо ви хочете отримати хороші результати, вам слід провести безліч експериментів. Ось чому простіше використовувати SVM і сказати, що ви не могли отримати подібних результатів з NN.
  3. Зазвичай результати NN не відтворюються. Навіть якщо ви двічі проходите навчання з NN, ви, ймовірно, отримаєте різні результати через випадковість алгоритму навчання.
  4. Зазвичай у вас взагалі немає інтерпретації результатів. Це невелике занепокоєння, але все одно.

Це не означає, що ви не повинні використовувати NN, а просто обережно. Наприклад, Convolutional NN може бути надзвичайно хорошим для обробки зображень, інші Deep NN виявилися хорошими і для інших проблем.

Сподіваюся, це допоможе.


2
Щоб результати ANN були відтворювані, наведіть випадкову функцію.
Франк Дернонкурт

@Franck Це не реальна відтворюваність.
розум

17

Я використовую нейронні мережі для більшості проблем. Справа в тому, що це в більшості випадків більше про досвід користувача, ніж про модель. Ось кілька причин, чому мені подобаються сімейні мережі.

  1. Вони гнучкі. Я можу кинути будь-яку втрату, яку хочу на них: втрата шарніру, квадрат, перехресна ентропія, ти це називаєш. Поки вона відрізняється, я можу навіть спроектувати втрати, які точно відповідають моїм потребам.
  2. Їх можна лікувати ймовірнісно: Байєсові нейронні мережі, варіативні Байєси, MLE / MAP, все є. (Але в деяких випадках складніше.)
  3. Вони швидкі. Більшість MLP матимуть два матричних множення та один нелінійний застосований компонент з проміжком між ними. Побийте це SVM.

Я перегляну ваші інші пункти крок за кроком.

Майте сильну теорію заснування

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

Досягти глобального оптимуму завдяки квадратичному програмуванню

Для одного набору гіперпараметрів. Однак пошук хороших hps не випуклий, і ви не дізнаєтесь, чи знайшли ви також глобальний оптимум.

Немає проблем з вибором належної кількості параметрів

З SVM, ви також повинні вибрати гіпер параметри.

Для зберігання прогнозної моделі потрібно менше пам'яті

Вам потрібно зберігати вектори підтримки. Загалом, SVM не будуть дешевшими для зберігання MLP, це залежить від конкретного випадку.

Виходять більш читабельні результати та геометрична інтерпретація

Верхній шар MLP - це логістична регресія у випадку класифікації. Таким чином, існує геометрична інтерпретація (розділяє гіпер площину) і ймовірнісна інтерпретація.


Чому мені потрібно зберігати вектори підтримки? Чи недостатньо для зберігання гіперплану / мармування SVM?
Джуліан

Це тому, що гіпер площина представлена ​​через вектори підтримки. Щоб обчислити відстань нової точки від неї, ви будете перебирати їх.
байерж

0

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

Ронан Коллоберт і Сеймі Бенджо. 2004. Зв'язок між перцептронами, MLP та SVM. У матеріалах двадцять першої міжнародної конференції з машинного навчання (ICML '04). ACM, Нью-Йорк, Нью-Йорк, США, 23-. DOI: https://doi.org/10.1145/1015330.1015415

і

Андрас, Пітер. (2002). Еквівалентність векторної машини підтримки та нейронних мереж регуляризації. Нейронна обробка листів. 15. 97-104. 10.1023 / А: 1015292818897.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.