Однокласний SVM проти зразкового SVM


16

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

Робота в 2011 році пропонує екземплярні SVM (ESVM), які готують "єдиний класифікатор на категорію", який стверджує, що відрізняється від OSVM, оскільки ESVM не "вимагають відображення екземплярів у загальний простір функцій, над яким може бути ядро ​​подібності. обчислюється ". Я не зовсім розумію, що це означає і чим ESVM відрізняються від OSVM. І так, чим вони відрізняються? І як уникнути цієї схожості обчислення ядра в ESVM?

Відповіді:


20

(Ви можете спочатку переглянути "таблицю" нижче)

Почнемо з "класичних" машин підтримки вектора. Вони вчаться розрізняти дві категорії. Ви збираєте кілька прикладів категорії A, деякі категорії B і передаєте їх як алгоритму навчання SVM, який знаходить лінію / площину / гіперплан, який найкраще відокремлює A від B. Це працює - і це часто працює досить добре - коли Ви хочете розрізняти чітко визначені та взаємовиключні класи: чоловіки проти жінок, літери алфавіту тощо.

Однак припустимо, ви хочете замість цього визначити "A". Ви можете трактувати це як проблему класифікації: Як я відрізняю "A" s від "not-A" s. Досить легко зібрати навчальний набір, що складається з фотографій собак, але що має входити у ваш навчальний набір не-собак? Оскільки існує нескінченна кількість речей, які не є собаками, можливо, вам буде важко побудувати всебічний і все-таки репрезентативний навчальний набір для всіх не собачих речей. Натомість можна подумати про використання однокласного класифікатора. Традиційний, двокласовий класифікатор знаходить (гіпер) площину, яка відокремлює A від B. Однокласний SVM натомість знаходить лінію / площину / гіперплощину, яка відокремлює всі точки класу («A» s) від початку ;

Ансамблева SVM «система» - це насправді сукупність багатьох двокласних «підрозділів» SVM. Кожна субодиниця навчається за допомогою одиничноїпозитивний приклад для одного класу та величезна колекція негативних прикладів для іншого. Таким чином, замість розмежування прикладів собак проти несобакових (стандартний двокласний SVM) або собак проти походження (однокласний SVM), кожна підрозділка розмежовує між конкретними собаками (наприклад, "Rex") та багатьма не собаками приклади. Індивідуальні субодиниці SVM навчаються для кожного прикладу позитивного класу, тож у вас був би один SVM для Рекса, інший для Fido, ще один для собаки вашого сусіда, який гавкає о 6 ранку тощо. Виходи цих підрозділів SVM відкалібровані та об'єднані для визначення того, чи з'являється собака, а не лише один із конкретних примірників, у даних тесту. Я думаю, ви також могли б подумати про окремі підрозділи як дещо схожі на однокласні SVM, де простір координат зміщений так, що єдиний позитивний приклад лежить у початку.

Підсумовуючи ключові відмінності:

Дані про навчання

  • Двокласний SVM: позитивні та негативні приклади
  • Один клас SVM: лише позитивні приклади
  • Ансамбль SVM "система": позитивні та негативні приклади. Кожна субодиниця навчається на одному позитивному прикладі та безлічі негативних прикладів.

Кількість машин

  • Двокласний SVM: один
  • Один клас SVM: один
  • Ансамбль SVM "система": багато (одна субодиниця на позитивному прикладі)

Приклади для класу (на машині)

  • Двокласний SVM: багато / багато
  • SVM для одного класу: багато / один (зафіксовано у початку)
  • Ансамбль SVM "система": багато / багато
  • Ансамбль SVM "субодиниця": один / багато

Подальша обробка

  • Двокласний SVM: Не потрібно
  • SVM для одного класу: Не потрібно
  • Ансамбль SVM: Потрібно для злиття кожного виходу SVM в передбачення на рівні класу.

Постскрипт: Ви запитували, що вони означають під "[іншими підходами] вимагають відображення зразків у загальний простір функцій, над яким можна обчислити ядро ​​подібності". Я думаю, що вони означають, що традиційний двокласний SVM працює за умови, що всі члени класу якимось схожими, і тому ви хочете знайти ядро, яке розміщує великі данини та такси поруч один з одним, але далеко від усього іншого. На противагу цьому, ансамбль системи SVM йде в сторону цього, називаючи щось собакою, якщо це досить великий датський АБО таксі, подібний АБО до пуделя, не турбуючись про стосунки між цими примірниками.


Дякую за чудову та вичерпну відповідь. Щоб було зрозуміло, в деяких місцях ви дійсно маєте на увазі "Ансамбль" Exemplar SVM, а в інших - просто "Exemplar" SVM? Я вважаю справедливим, слід порівнювати або (1) ОДИН ОСВМ з ОДНИМ ESVM, або (2) СИСТЕМУ ОСВМ з СИСТЕМИ ESVM.
bjou

Я сподіваюся, що це не надто тематично, щоб запитати, наскільки добре це узагальнюється до кількох класів? Якщо у мене є коти, собаки та птахи, чи для цього esvm потрібен один "елемент" SVM для фідо проти кожної кішки І один "елемент" SVM для фідо проти кожної птиці? Якби у мене було 10 точок даних для кожної з 3 категорій, це означатиме, що у мене є 20 елементів SVM на "собаку" або ансамбль, що складається з 200 елементів? Що робити, якщо у мене є 300 точок даних і 20 вимірів, або 50k точок даних і 50k розмірів. Якби я робив випадковий ліс з SVM, то чи можу я використати випадкові підмножини, щоб зменшити вплив "прокляття розмірності"?
EngrStudent

@bjou, я був трохи неохайний з термінологією ESVM, тому я повернувся назад і очистив його. Я думаю, ви могли б подумати про "субодиницю" системи ESVM як подібну до OSVM, за винятком того, що система координат була переорієнтована так, що позитивний приклад лежить в основі.
Метт Крауз

1
@EngrStudent, це насправді узагальнює насправді чудово. У роботі вони використовують завдання Pascal VOC, що має ~ 20 категорій. Для розширення нашого прикладу тварин, у вас є субодиниця "Fido" vs. (всі птахи, коти та рибки), ще одна субодиниця для "Rex" проти всіх не-собак і так далі для кожної собаки. Для птахів ви тренуєте "Tweety" vs. (всіх котів, собак, риб), "Polly" проти всіх не птахів тощо. Була б також субодиниця для кожного кота та прикладу риб, навчених відповідно до всіх не кішок та не риб. У кінцевому підсумку ви отримуєте 1 SVM на міченому прикладі незалежно від кількості класів.
Метт Крауз

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

2

Коротше кажучи, модель ESVM - це ансамбль SVM, навчених розрізняти кожен елемент навчального набору від усіх інших, тоді як OSVM - це ансамбль SVM, підготовлених для розрізнення кожного підмножини навчальних елементів, що належать до одного класу. Отже, якщо у вас в навчальному наборі 300 прикладів для котів і 300 собак, ESVM зробить 600 SVM, кожен для одного вихованця, тоді як OSVM зробить два SVM (перший для всіх котів, другий для всіх собак).

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

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