Comment calculer la dimension VC?


12

Im étudie l'apprentissage automatique, et je voudrais savoir comment calculer la dimension VC.

Par exemple:

h(x)={1if axb0else  , avec les paramètres(a,b)R2 .

Quelle en est la dimension VC?

Réponses:


10

La dimension VC est une estimation de la capacité d'un classificateur binaire. Si vous pouvez trouver un ensemble de points, de sorte qu'il puisse être brisé par le classificateur (c.-à-d. Classer correctement tous les 2 n étiquetages possibles ) et vous ne pouvez pas trouver un ensemble de n + 1 points qui peuvent être brisés (c.-à-d. Pour tout ensemble de n + 1 points, il y a au moins un ordre d'étiquetage pour que le classificateur ne puisse pas séparer tous les points correctement), alors la dimension VC est n .n2nn+1n+1n

Dans votre cas, considérez d'abord deux points et x 2 , tels que x 1 < x 2 . Ensuite, il y a 2 2 = 4 étiquetages possiblesx1x2x1<x222=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

Tous les étiquetages peuvent être obtenus via le classificateur en définissant les paramètres a < b R de telle sorte queha<bR

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

respectivement. (En fait, peut être supposé wlog mais il suffit de trouver un ensemble qui peut être brisé.)x1<x2

Maintenant, considérez trois points arbitraires (!) , x 2 , x 3 et wlog suppose x 1 < x 2 < x 3 , alors vous ne pouvez pas obtenir l'étiquetage (1,0,1). Comme dans le cas 3 ci-dessus, les étiquettes x 1 : 1 et x 2 : 0 impliquent a < x 1 < b < x 2 . Ce qui implique x 3 > b et donc l'étiquette de x 3x1x2x3x1<x2<x3x1x2a<x1<b<x2x3x3 doit être 0. Ainsi, le classificateur ne peut briser aucun ensemble de trois points et donc la dimension VC est 2.

-

Peut-être que cela devient plus clair avec un classificateur plus utile. Prenons les hyperplans (c'est-à-dire les lignes en 2D).

Il est facile de trouver un ensemble de trois points qui peuvent être classés correctement, quelle que soit leur étiquette:

entrez la description de l'image ici

23=8

24=16

Supposons pour l'instant que les 4 points forment une figure à 4 côtés. Ensuite, il est impossible de trouver un hyperplan qui puisse séparer correctement les points si nous étiquetons les coins opposés avec la même étiquette:

S'ils ne forment pas une figure à 4 côtés, il y a deux "cas limites": Les points "externes" doivent soit former un triangle, soit former une ligne droite. Dans le cas du triangle, il est facile de voir que l'étiquetage où le point "intérieur" (ou le point entre deux coins) est étiqueté différemment des autres ne peut pas être réalisé:

Dans le cas d'un segment de ligne, la même idée s'applique. Si les points d'extrémité sont étiquetés différemment de l'un des autres points, ils ne peuvent pas être séparés par un hyperplan.

Puisque nous avons couvert toutes les formations possibles de 4 points en 2D, nous pouvons conclure qu'il n'y a pas 4 points qui peuvent être brisés. Par conséquent, la dimension VC doit être 3.


1
> Mais la fonction peut atteindre x1 = 0, x2 = 0, x3 = 0. Il faut réaliser toutes les étiquettes?
铭 声 孙

J'ai posé une question similaire ici datascience.stackexchange.com/questions/39064/… qui est dans le contexte d'une fonction d'hypothèse linéaire. Pourriez-vous aider à répondre à cela?
Suhail Gupta

3

La dimension VC d'un classificateur est déterminée de la manière suivante:

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

Il ne doit donc y avoir qu'une seule façon de placer trois points de telle sorte que toutes les distributions de classes possibles parmi ce placement de points puissent être classées de la bonne façon.

Si vous ne placez pas les trois points sur une ligne, la perception est juste. Mais il n'y a aucun moyen pour que la perception classe toutes les distributions de classes possibles de 4 points, peu importe la façon dont vous placez les points

Votre exemple

R

VC-Dimension 2: Il peut classer correctement les quatre situations.

  1. Points: 0 et 42
  2. Distributions:
    • a=1337,b=3141
    • a=40,b=1337
    • a=1,b=1
    • a=1,b=1337

VC-Dimension 3: Non, cela ne fonctionne pas. Imaginez les classes trueet falseêtre ordonné comme True False True. Votre classificateur ne peut pas gérer cela. Par conséquent, il a une dimension VC de 2.

Preuve

x1,x2,x3Rx1<x2<x3

x1x2x3

x1

ax1b
x2
x2<a or b<x2
ax1x1<x2b<x2
ax1b<x2<x3
x3
ax3b
b<x3. Par conséquent, il n'est pas possible de classer correctement toutes les distributions de classes de 3 points avec ce classificateur. Par conséquent, il n'a pas de dimension VC 3.

1
un classificateur constant a une dimension VC 0 (même si l'on peut dire qu'il ne devrait pas être considéré comme un classificateur en premier lieu)
oW_

1
Oh ... c'est vrai. Mais oui, je n'appellerais pas un système qui ne peut pas du tout s'adapter aux données un classificateur dans un contexte d'apprentissage automatique.
Martin Thoma
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.