Допоможіть мені зрозуміти підтримку векторних машин


76

Я розумію основи того, що мета підтримки Vector Vector Machines полягає в класифікації вхідного набору на декілька різних класів, але те, що я не розумію, - це деякі деталі, що містять круту. Для початку мене трохи бентежить використання Slack Variables. Яке їх призначення?

Я займаюся класифікаційною проблемою, коли я фіксував показання тиску від датчиків, які розмістив на устілці взуття. Під час запису даних про тиск суб'єкт буде сидіти, стояти і ходити пару хвилин. Я хочу навчити класифікатора, щоб він міг визначити, чи сидить людина, стоїть чи ходить, і мати можливість це робити для будь-яких поданих даних тесту. Який тип класифікатора мені потрібно спробувати? Який найкращий спосіб для мене класифікувати класифікатор із даних, які я захопив? У мене 1000 записів для сидіння, стояння та ходьби (всього 3х1000 = 3000), і всі вони мають наступну векторну форму. (тискfromsensor1, pressurefromsensor2, pressurefromsensor3, pressurefromsensor4)


Дивіться також: stats.stackexchange.com/questions/23391/…

Відповіді:


103

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

Тепер залишилися деякі проблеми.
Перш за все, що з тими недобрими людьми безсоромно лежати в центрі хмари точок іншого класу?
alt текст
З цією метою ми дозволяємо оптимізатору залишити певні зразки неправильно маркованими, але покараємо кожен із таких прикладів. Щоб уникнути мультиоб'єктивної оптимізації, штрафні санкції за неправильно розмічені випадки об'єднуються з розміром маржі з використанням додаткового параметра C, який контролює рівновагу між цими цілями.
Далі, іноді проблема просто не лінійна, і хорошої гіперплани не знайти. Тут ми вводимо хитрість ядра - ми просто проектуємо оригінальний, нелінійний простір у вищий розмірний з деяким нелінійним перетворенням, звичайно визначеним купою додаткових параметрів, сподіваючись, що в отриманому просторі проблема буде придатною для простої SVM:

alt текст

Знову ж таки, з деякою математикою і ми можемо побачити, що всю цю процедуру перетворення можна елегантно приховати, змінивши цільову функцію, замінивши крапковий добуток об’єктів на так звану функцію ядра.
Нарешті, це все працює для 2 класу, а у вас є 3; що з цим робити? Тут ми створюємо 3 класи 2 класу (сидячи - не сидіти, стоячи - не стоячи, ходити - не ходити) і класифікацію поєднуємо з голосуванням.

Гаразд, такі проблеми здаються вирішеними, але нам потрібно вибрати ядро ​​(тут ми радимося зі своєю інтуїцією та виберемо RBF) та підходимо принаймні до кількох параметрів (ядро C +). І ми повинні мати для нього надмірно безпечну цільову функцію, наприклад, наближення помилок від перехресної перевірки. Тож ми залишаємо комп’ютер, який працює над цим, йдемо на каву, повертаємось і бачимо, що є якісь оптимальні параметри. Чудово! Тепер ми просто починаємо вкладені перехресні перевірки, щоб мати наближення помилок та вуаля.

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


5
(+1) Чудово, що ви додали кілька фотографій, щоб проілюструвати всю справу!
chl

3
@mbq Оскільки вам здається дуже компетентним у SVM, дозвольте мені попросити вас пояснити мої сумніви: як тільки ми знайшли найкращу роздільну гіперплану, для чого ми її використовуємо? Ми можемо визначити SVM як метод, який, по-перше, вибирає найкращу гіперплан для правильної класифікації точок даних, а по-друге, він використовує цю гіперплан для розділення нових точок даних у двох класах. Правильно? (У мене є деякі сумніви щодо другої частини)
DavideChicco.it

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