Jednej klasy SVM vs. przykładowa SVM

16

Rozumiem, że jednoklasowe maszyny SVM (OSVM) zostały zaproponowane z myślą o braku negatywnych danych i że starają się znaleźć granice decyzji oddzielające zbiór dodatni i niektóre negatywne punkty kotwiczenia, mówią pochodzenie.

W pracy z 2011 r. Zaproponowano przykładowe maszyny SVM (ESVM), które uczą „pojedynczego klasyfikatora według kategorii”, który twierdzi, że różni się od OSVM, ponieważ ESVM nie „wymagają mapowania przykładów we wspólną przestrzeń funkcji, na której jądro podobieństwa może być obliczone ”. Nie do końca rozumiem, co to znaczy i czym różnią się ESVM od OSVM. Czym się różnią? W jaki sposób unika się tego obliczania jądra podobieństwa w ESVM?

bjou
źródło

Odpowiedzi:

20

(Możesz najpierw zajrzeć do „tabeli” poniżej)

Zacznijmy od „klasycznych” maszyn wektorów wsparcia. Nauczą się rozróżniać dwie kategorie. Zbierasz kilka przykładów kategorii A, niektóre kategorii B i przekazujesz je oba do algorytmu szkoleniowego SVM, który znajduje linię / płaszczyznę / hiperpłaszczyznę, która najlepiej oddziela A od B. To działa - i często działa całkiem dobrze - gdy chcesz rozróżnić dobrze zdefiniowane i wzajemnie wykluczające się klasy: mężczyźni kontra kobiety, litery alfabetu i tak dalej.

Załóżmy jednak, że zamiast tego chcesz zidentyfikować litery „A”. Można to potraktować jako problem z klasyfikacją: Jak odróżnić „A” od „nie-A”. Dość łatwo jest zebrać zestaw treningowy składający się ze zdjęć psów, ale co powinno się znaleźć w zestawie treningowym nie-psów? Ponieważ istnieje nieskończona liczba rzeczy, które nie są psami, możesz mieć trudności z konstruowaniem kompleksowego, a jednocześnie reprezentatywnego zestawu treningowego dla wszystkich nie psich rzeczy. Zamiast tego możesz rozważyć użycie klasyfikatora jednej klasy. Tradycyjny, dwuklasowy klasyfikator znajduje (hiper) płaszczyznę oddzielającą A od B. Jednoklasowy SVM znajduje natomiast linię / płaszczyznę / hiperpłaszczyznę oddzielającą wszystkie punkty w klasie („A”) od początku ;

„System” Ensemble SVM jest w rzeczywistości zbiorem wielu „podjednostek” SVM dwóch klas. Każda podjednostka jest trenowana przy użyciu jednegopozytywny przykład dla jednej klasy i ogromna kolekcja negatywnych przykładów dla drugiej. Tak więc, zamiast dyskryminujących psów w porównaniu z przykładami nie psimi (standardowa SVM dwuklasowa) lub psów w porównaniu z pochodzeniem (jednoklasowa SVM), każda podjednostka rozróżnia między konkretnym psem (np. „Rex”) a wieloma innymi psami przykłady Poszczególne SVM dla poszczególnych podjednostek są szkolone dla każdego przykładu klasy dodatniej, więc masz jeden SVM dla Rexa, drugi dla Fido, jeszcze jeden dla psa twojego sąsiada, który szczeka o 6 rano i tak dalej. Wyniki tych podjednostkowych maszyn SVM są kalibrowane i łączone w celu ustalenia, czy pies, a nie tylko jeden z konkretnych przykładów, pojawia się w danych testowych. Sądzę, że moglibyście również pomyśleć o poszczególnych podjednostkach jako trochę jak SVM jednej klasy, gdzie przestrzeń współrzędnych jest przesunięta tak, że pojedynczy pozytywny przykład leży u źródła.

Podsumowując, najważniejsze różnice to:

Dane treningowe

  • Dwuklasowy SVM: przykłady pozytywne i negatywne
  • SVM jednej klasy: tylko pozytywne przykłady
  • Ensemble SVM „system”: pozytywne i negatywne przykłady. Każda podjednostka jest szkolona na jednym pozytywnym przykładzie i wielu negatywnych przykładach.

Liczba maszyn

  • Dwie klasy SVM: jedna
  • Jedna klasa SVM: jedna
  • Zestaw SVM „system”: wiele (jedna maszyna podjednostki na pozytywny przykład)

Przykłady na klasę (na maszynę)

  • Dwuklasowy SVM: wiele / wiele
  • Jedna klasa SVM: wiele / jeden (ustalony na początku)
  • Zestaw SVM „system”: wiele / wiele
  • Zestaw SVM „podjednostka”: jeden / wiele

Przetwarzanie końcowe

  • Dwuklasowy SVM: nie jest konieczny
  • SVM jednej klasy: nie jest konieczny
  • Ensemble SVM: Konieczne było połączenie danych wyjściowych każdego SVM z predykcją na poziomie klasy.

Postscript: Pytałeś, co mają na myśli, mówiąc „[inne podejścia] wymagają mapowania przykładów we wspólnej przestrzeni cech, na której można obliczyć jądro podobieństwa”. Myślę, że mają na myśli, że tradycyjna dwuklasowa maszyna SVM działa przy założeniu, że wszyscy członkowie klasy są w jakiś sposób podobni, więc chcesz znaleźć jądro, które umieszcza wielkie dane i dachy blisko siebie, ale z dala od wszystkiego innego. Dla kontrastu, zestaw SVM omija to, nazywając coś psem, jeśli jest to wystarczająco wielkie dane podobne do OR lub podobne do dachówki lub podobne do pudla, nie martwiąc się o relacje między tymi przykładami.

Matt Krause
źródło
Dzięki za świetną i kompleksową odpowiedź. Żeby było jasne, w niektórych miejscach rzeczywiście masz na myśli „Zespół” przykładowych SVM, ale w innych tylko „Exemplar” SVM? Uważam, że to jest sprawiedliwe, należy porównać z (1) POJEDYNCZYM OSVM z POJEDYNCZYM ESVM, lub (2) ZGODNY z OSVM z ZGODNYM z ESVM.
bjou
Mam nadzieję, że pytanie, jak dobrze uogólnia się na wiele klas, nie jest zbyt tematyczne? Jeśli mam koty, psy i ptaki, czy to sprawia, że ​​esvm wymaga jednego „elementu” SVM dla fido w porównaniu do każdego kota ORAZ jednego „elementu” SVM dla fido w porównaniu z każdym ptakiem? Gdybym miał 10 punktów danych dla każdej z 3 kategorii, czy to oznaczałoby, że mam 20 elementów SVM na „psa” lub zespół składający się z 200 elementów? Co jeśli mam 300 punktów danych i 20 wymiarów lub 50 000 punktów danych i 50 000 wymiarów. Gdybym tworzył losowy las SVM, to czy mógłbym użyć losowych podzbiorów, aby zmniejszyć wpływ „klątwy wymiarowości”?
EngrStudent - Przywróć Monikę
@ bjou, byłem trochę niechlujny z terminologią ESVM, więc wróciłem i go wyczyściłem. Myślę, że można by pomyśleć o „podjednostce” systemu ESVM jako o OSVM, z tym wyjątkiem, że układ współrzędnych został ponownie wyśrodkowany, tak że pozytywny przykład leży u podstaw.
Matt Krause,
1
@EngrStudent, naprawdę ładnie się uogólnia. W artykule używają zadania Pascal VOC, które ma ~ 20 kategorii. Aby rozszerzyć nasz przykład na zwierzęta, będziesz mieć podjednostkę dla „Fido” vs. (wszystkie ptaki, koty i ryby), kolejną podjednostkę dla „Rex” vs. wszystkie inne niż psy i tak dalej dla każdego psa. W przypadku ptaków trenujesz „Tweety” vs. (wszystkie koty, psy, ryby), „Polly” vs. wszystkie inne niż ptaki i tak dalej. Byłaby również podjednostka dla każdego przykładu kota i ryby, przeszkolona odpowiednio dla wszystkich kotów i ryb. Otrzymujesz 1 SVM na oznaczony przykład, niezależnie od liczby klas.
Matt Krause,
Brzmi jak kuzyn wzmocnienia (w sensie drzew wzmocnionych gradientem). Zespół, czy jest ważony błędem wyjściowym, czy równomiernie ważony?
EngrStudent - Przywróć Monikę
2

Krótko mówiąc, model ESVM jest zespołem SVM wyszkolonym do rozróżniania każdego elementu zestawu treningowego od wszystkich pozostałych, podczas gdy OSVM jest zbiorem SVM wyszkolonych do rozróżniania każdego podzbioru elementów treningowych należących do jednej klasy. Tak więc, jeśli masz 300 przykładów kotów i 300 psów w zestawie szkoleniowym, ESVM wykona 600 SVM, każdy dla jednego zwierzaka, a OSVM stworzy dwa SVM (pierwszy dla wszystkich kotów, drugi dla wszystkich psów).

W ten sposób ESVM nie musi znajdować przestrzeni, w której skupia się cała klasa, ale raczej przestrzeń, w której ten pojedynczy element jest wartością odstającą, co jest prawdopodobnie prostsze i prowadzi do wysokiej precyzji. Przypomina się, że zespół zapewnia.


źródło