Jak obliczyć wymiar VC?

12

Studiuję uczenie maszynowe i chciałbym wiedzieć, jak obliczyć wymiar VC.

Na przykład:

h(x)={1gdyby zaxb0jeszcze  , z parametrami.(za,b)R2)

Jaki jest jego wymiar VC?

铭 声 孙
źródło

Odpowiedzi:

10

Wymiar VC jest oszacowaniem zdolności klasyfikatora binarnego. Jeśli możesz znaleźć zestaw punktów, aby mógł zostać rozbity przez klasyfikator (tj. Poprawnie sklasyfikuj wszystkie możliwe 2 n oznakowania) i nie możesz znaleźć żadnego zestawu n + 1 punktów, który można rozbić (tj. Dla dowolnego zestawu n + 1 punktów istnieje co najmniej jedna kolejność etykietowania, aby klasyfikator nie mógł poprawnie rozdzielić wszystkich punktów), wówczas wymiar VC wynosi n .n2)nn+1n+1n

W twoim przypadku najpierw rozważ dwa punkty i x 2 , tak aby x 1 < x 2 . Następnie są 2 2 = 4 możliwe oznaczeniax1x2)x1<x2)2)2)=4

  1. , x 2 : 1x1:1x2):1
  2. , x 2 : 0x1:0x2):0
  3. , x 2 : 0x1:1x2):0
  4. , x 2 : 1x1:0x2):1

Wszystkie oznaczenia można uzyskać za pomocą klasyfikatora , ustawiając parametry a < b R takie, żeha<bR

  1. a<x1<x2<b
  2. x1<x2<a<b
  3. a<x1<b<x2
  4. x1<a<x2<b

odpowiednio. (W rzeczywistości można założyć wlog, ale wystarczy znaleźć jeden zestaw, który można rozbić.)x1<x2

Rozważmy teraz trzy arbitralne (!) Punkty , x 2 , x 3, a wlog zakłada x 1 < x 2 < x 3 , wtedy nie można osiągnąć oznaczenia (1,0,1). Podobnie jak w przypadku 3 powyżej, etykiety x 1 : 1 i x 2 : 0 oznaczają a < x 1 < b < x 2 . Co implikuje x 3 > b, a zatem etykietę x 3x1x2x3x1<x2<x3x1x2a<x1<b<x2x3x3 musi wynosić 0. Zatem klasyfikator nie może rozbić żadnego zestawu trzech punktów, a zatem wymiar VC wynosi 2.

-

Może staje się bardziej zrozumiały dzięki bardziej przydatnemu klasyfikatorowi. Rozważmy hiperpłaszczyzny (tj. Linie w 2D).

Łatwo jest znaleźć zestaw trzech punktów, które można poprawnie sklasyfikować bez względu na sposób ich oznaczenia:

wprowadź opis zdjęcia tutaj

Dla wszystkich możliwych etykiet możemy znaleźć hiperpłaszczyznę, która je doskonale oddziela.23=8

Nie możemy jednak znaleźć żadnego zestawu 4 punktów, abyśmy mogli poprawnie sklasyfikować wszystkie możliwych etykiet. Zamiast formalnego dowodu staram się przedstawić argument wizualny:24=16

Załóżmy na razie, że 4 punkty tworzą figurę z 4 bokami. Wówczas niemożliwe jest znalezienie hiperpłaszczyzny, która może poprawnie oddzielić punkty, jeśli oznaczymy przeciwległe rogi tą samą etykietą:

Jeśli nie tworzą figury z 4 bokami, istnieją dwa „przypadki graniczne”: „Zewnętrzne” punkty muszą albo tworzyć trójkąt, albo wszystkie tworzyć linię prostą. W przypadku trójkąta łatwo zauważyć, że nie można osiągnąć etykietowania, w którym punkt „wewnętrzny” (lub punkt między dwoma rogami) jest inny niż pozostałe:

W przypadku segmentu linii obowiązuje ten sam pomysł. Jeśli punkty końcowe są oznaczone inaczej niż jeden z innych punktów, nie można ich rozdzielić hiperpłaszczyzną.

Ponieważ omówiliśmy wszystkie możliwe formacje 4 punktów w 2D, możemy stwierdzić, że nie ma 4 punktów, które można by rozbić. Dlatego wymiar VC musi wynosić 3.

oW_
źródło
1
> Ale funkcja może osiągnąć x1 = 0, x2 = 0, x3 = 0. Potrzebujesz osiągnąć wszystkie etykiety?
铭 声 孙
Zadałem podobne pytanie tutaj datascience.stackexchange.com/questions/39064/... w kontekście funkcji liniowej hipotezy. Czy mógłbyś pomóc na to odpowiedzieć?
Suhail Gupta
3

Wymiar VC klasyfikatora określa się w następujący sposób:

VC = 1
found = False
while True:
    for point_distribution in all possible point distributions of VC+1 points:
        allcorrect = True
        for classdist in every way the classes could be assigned to the classes:
            adjust classifier
            if classifier can't classify everything correct:
                allcorrect = False
                break
        if allcorrect:
            VC += 1
            continue
    break

Tak więc musi być tylko jeden sposób na umieszczenie trzech punktów, tak aby wszystkie możliwe rozkłady klas między tym rozmieszczeniem punktów mogły zostać sklasyfikowane we właściwy sposób.

Jeśli nie umieścisz trzech punktów na linii, percepcja zrobi to dobrze. Ale nie ma sposobu, aby uzyskać postrzeganie sklasyfikować wszystkie możliwe rozkłady klas 4 punktów, bez względu na to, jak umieścisz punkty

Twój przykład

R

VC-Dimension 2: Może poprawnie sklasyfikować wszystkie cztery sytuacje.

  1. Punkty: 0 i 42
  2. Dystrybucje:
    • za=1337,b=3141
    • za=40,b=1337
    • za=-1,b=1
    • za=-1,b=1337

Wymiar VC 3: Nie, to nie działa. Wyobraź sobie klasy truei falseporządek True False True. Twój klasyfikator nie może sobie z tym poradzić. Dlatego ma VC-Wymiar 2.

Dowód

x1,x2),x3)Rx1<x2)<x3)

x1x2)x3)

x1

zax1b
x2)
x2)<za lub b<x2)
zax1x1<x2)b<x2)
zax1b<x2)<x3)
x3)
zax3)b
jest wymagane. Ale inne ograniczenia są już wymaganeb<x3). Dlatego nie jest możliwe prawidłowe sklasyfikowanie wszystkich rozkładów klas 3 dowolnych punktów za pomocą tego klasyfikatora. Dlatego nie ma wymiaru VC 3.
Martin Thoma
źródło
1
stały klasyfikator ma wymiar VC 0 (chociaż można argumentować, że nie należy go uważać za klasyfikator)
oW_
1
Och ... racja. Ale tak, nie nazwałbym systemu, który nie jest w stanie dostosować się do danych w ogóle klasyfikatorem w kontekście uczenia maszynowego.
Martin Thoma,