Чи досі підтримуючі векторні машини вважаються "найсучаснішими" у своїй ніші?


58

Це запитання відповідає на коментар, який я побачив на іншому запитанні.

Зауваження стосувалося навчальної програми з вивчення машинного навчання на Coursera, і, відповідно, "SVM не використовуються настільки багато".

Я лише щойно закінчив відповідні лекції, і моє розуміння SVM полягає в тому, що вони є надійним і ефективним алгоритмом навчання для класифікації, і що при використанні ядра вони мають "нішу", що охоплює кількість функцій, можливо, від 10 до 1000 і кількість навчальних зразків, можливо, від 100 до 10000. Обмеження щодо навчальних зразків пояснюється тим, що алгоритм основного механізму обертається навколо оптимізації результатів, сформованих з квадратної матриці з розмірами на основі кількості навчальних зразків, а не кількості оригінальних функцій.

Так і коментар, який я бачив, посилається на деякі реальні зміни з моменту проходження курсу, і якщо так, то що це за зміна: Новий алгоритм, який так само добре охоплює "солодке місце" SVM, кращі процесори, що означають обчислювальні переваги SVM, не вартують стільки ? Або це, можливо, думка чи особистий досвід коментатора?

Я спробував шукати, наприклад, "не підтримують векторні машини підтримки", і не знайшов нічого, що б означало, що їх відмовляють на користь будь-чого іншого.

І у Вікіпедії є таке: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . Основним моментом стикання є труднощі інтерпретації моделі. Що робить SVM чудовим для двигуна прогнозування чорних ящиків, але не настільки гарний для отримання уявлень. Я не вважаю це головним питанням, лише іншою дрібницею, яку слід враховувати під час вибору правильного інструменту для роботи (разом із характером даних про навчання та навчальним завданням тощо).


1
Дивіться також stats.stackexchange.com/questions/tagged/svm
StasK

6
Я не розумію - це не питання, яке слід розміщувати на CrossValidated? Я продовжую плутати, що стосується DataScience та CrossValidated.
fnl

@fnl: svms мають певну конкуренцію як класифікатори з менш математично "чистих" інженерних рішень, тому я думаю, що DataScience в кращому становищі для порівняння тут. Хоча я поділяю вашу плутанину!
Ніл Слейтер

Відповіді:


46

SVM - потужний класифікатор. Він має деякі приємні переваги (які, мабуть, відповідали за його популярність) ... Це:

  • Ефективність: Лише підтримуючі вектори відіграють роль у визначенні межі класифікації. Усі інші пункти з навчального набору не повинні зберігатися в пам'яті.
  • Так звана потужність ядер: за допомогою відповідних ядер ви можете перетворити простір функцій у вищий розмір, щоб він став лінійно відокремлюваним. Поняття ядер працює з довільними об'єктами, на яких можна визначити деяке поняття подібності за допомогою внутрішніх продуктів ... і, отже, SVM можуть класифікувати довільні об'єкти, такі як дерева, графіки тощо.

Є і деякі суттєві недоліки.

  • Чутливість параметрів: Продуктивність дуже чутлива до вибору параметра регуляризації C, що дозволяє певну дисперсію в моделі.
  • Додатковий параметр для ядра Гаусса: радіус ядра Гаусса може мати значний вплив на точність класифікатора. Зазвичай пошук сітки повинен вестись для пошуку оптимальних параметрів. LibSVM має підтримку пошуку в сітці.

SVM, як правило, належать до класу "Розріджені машини ядра". Рідкі вектори у випадку SVM - це вектори підтримки, які вибираються з критерію максимальної границі. Інші розріджені векторні машини, такі як релевантна векторна машина (RVM), працюють краще, ніж SVM. Наступний малюнок показує порівняльну ефективність цих двох. На малюнку вісь x показує одновимірні дані з двох класів y = {0,1}. Модель суміші визначається як P (x | y = 0) = Unif (0,1) і P (x | y = 1) = Unif (.5,1.5) (Unif позначає рівномірний розподіл). З цієї суміші було відібрано 1000 балів, для оцінки задньої частини використовували SVM та RVM. Проблема SVM полягає в тому, що прогнозовані значення далекі від справжніх коефіцієнтів журналу.

RVM проти SVM

Дуже ефективним класифікатором, який сьогодні користується великою популярністю, є випадковий ліс . Основними перевагами є:

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

4
Я не хочу бути надто критичним, але SVM НЕ ефективні. Вони мають кубічну складність у більшості випадків, через що відбувається багато поступових припинень.
indico

2
так, стандартні методи конвергенції займають O (n ^ 3) ... але я думаю, що я десь бачив (можливо, з домашньої сторінки Т. Йоахімса), що це було зведено до O (n ^ 2)
Debasis

4
@indico для більшості практичних проблем ядра SVM складність навчання ближче до квадратичної. Кубічний SMO Платта був поза вживанням вже досить давно. Це все ще занадто високо для справді великих наборів даних, але це не так вже й погано, як ви зображуєте. Лінійний SVM відрізняється високою ефективністю і має підлінійну складність.
Marc Claesen

Інші переваги SVM: 1) Їх внутрішню роботу можуть добре уявити люди, менш знайомі з аналізом даних. [і в меншій мірі: 2) Якщо потрібен інтерактивний зворотний зв'язок у реальному часі експертом (не є наукою про дані), лінійні SVM можуть бути більш швидким варіантом - що призводить до кращої підготовки фахівців.]
tsttst

2
Випадкові ліси зазвичай мають інші гіперпараметри, такі як максимальна кількість особливостей на дереві та максимальна глибина. Варто також зазначити, що SVM легко вводити у виробництво в обмежених ресурсами середовищах - їм не потрібно багато пам’яті, щоб оцінити модель.
Девід Андерсон

8

Відповідаючи на це запитання, однією суттєвою відмінністю є те, чи ми говоримо про лінійні підтримуючі векторні машини або нелінійні , тобто ядрові векторні машини підтримки.

Лінійні SVM

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

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

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

Нелінійні SVM

Нелінійні SVM все ще є лінійними моделями та мають однакові теоретичні переваги, але вони використовують так званий трюк ядра для побудови цієї лінійної моделі на збільшеному просторі. Видимий результат полягає в тому, що отримана модель може приймати нелінійні рішення щодо ваших даних. Оскільки ви можете надати спеціальне ядро, що кодує схожість між точками даних, ви можете використовувати проблемні знання, щоб зробити таке ядро ​​фокусом у відповідних частинах вашої проблеми. Однак зробити це ефективно може бути важко, тому загалом майже всі користуються гауссовим ядром «plug and play».

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

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

Популярність цих методів

Це правда, що SVM не настільки популярні, як раніше: це можна перевірити за допомогою гуглінгу для дослідницьких робіт або впроваджень для SVMs проти випадкових лісів або методів глибокого навчання. Проте вони корисні в деяких практичних умовах, особливо в лінійному випадку.

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

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