Come calcolare la dimensione VC?


12

Sto studiando l'apprendimento automatico e vorrei sapere come calcolare la dimensione VC.

Per esempio:

h(x)={1if axb0else  , con parametri .(a,b)R2

Qual è la dimensione VC di esso?

Risposte:


10

La dimensione VC è una stima della capacità di un classificatore binario. Se riesci a trovare un set di punti, in modo che possa essere frantumato dal classificatore (cioè classificare correttamente tutte le possibili etichette) e non puoi trovare alcun set di punti che possono essere frantumati (cioè per qualsiasi set di punti esiste almeno un ordine di etichettatura in modo che il classificatore non possa separare correttamente tutti i punti), quindi la dimensione VC è .n2nn+1n+1n

Nel tuo caso, considera innanzitutto due punti e , in modo tale che . Quindi ci sono possibili etichettex1x2x1<x222=4

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

Tutte le etichette possono essere ottenute tramite il classificatore impostando i parametri modo taleha<bR

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

rispettivamente. (In realtà, può essere assunto come wlog ma è sufficiente trovare un set che può essere frantumato.)x1<x2

Ora, considera tre punti arbitrari (!) , , e wlog presuppone , quindi non puoi ottenere l'etichettatura (1,0,1). Come nel caso 3 sopra, le etichette : 1 e : 0 implicano . Il che implica > b e quindi l'etichetta di deve essere 0. Pertanto, il classificatore non può frantumare alcun insieme di tre punti e quindi la dimensione VC è 2.x1x2x3x1<x2<x3x1x2a<x1<b<x2x3x3

-

Forse diventa più chiaro con un classificatore più utile. Consideriamo gli iperpiani (cioè le linee in 2D).

È facile trovare un insieme di tre punti che possono essere classificati correttamente indipendentemente da come sono etichettati:

inserisci qui la descrizione dell'immagine

Per tutte le possibili etichette possiamo trovare un iperpiano che le separa perfettamente.23=8

Tuttavia, non è possibile trovare alcun set di 4 punti in modo da poter classificare correttamente tutte le possibili etichette. Invece di una prova formale, provo a presentare un argomento visivo:24=16

Supponiamo per ora che i 4 punti formino una figura con 4 lati. Quindi è impossibile trovare un iperpiano che possa separare correttamente i punti se etichettiamo gli angoli opposti con la stessa etichetta:

Se non formano una figura con 4 lati, ci sono due "casi limite": i punti "esterni" devono formare un triangolo o tutti formare una linea retta. Nel caso del triangolo, è facile vedere che l'etichettatura in cui il punto "interno" (o il punto tra due angoli) è etichettato diverso dagli altri non può essere raggiunta:

Nel caso di un segmento di linea, si applica la stessa idea. Se i punti finali sono etichettati in modo diverso rispetto a uno degli altri punti, non possono essere separati da un iperpiano.

Dato che abbiamo coperto tutte le possibili formazioni di 4 punti in 2D, possiamo concludere che non ci sono 4 punti che possono essere frantumati. Pertanto, la dimensione VC deve essere 3.


1
> Ma la funzione può raggiungere x1 = 0, x2 = 0, x3 = 0. Deve raggiungere tutte le etichette?
铭 声 孙

Ho fatto una domanda simile qui datascience.stackexchange.com/questions/39064/… che è nel contesto di una funzione di ipotesi lineare. Potresti aiutare a rispondere a questo?
Suhail Gupta,

3

La dimensione VC di un classificatore è determinata nel modo seguente:

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

Quindi deve esserci solo un modo per posizionare tre punti in modo tale che tutte le possibili distribuzioni di classe tra questo posizionamento di punti possano essere classificate nel modo corretto.

Se non posizioni i tre punti su una linea, la percezione ha ragione. Ma non c'è modo di far classificare la percezione in tutte le possibili distribuzioni di classe di 4 punti, indipendentemente da come si posizionano i punti

Il tuo esempio

Le tue funzionalità sono in . Ogni classificatore ha almeno la dimensione 1.R

Dimensione VC 2: può classificare correttamente tutte e quattro le situazioni.

  1. Punti: 0 e 42
  2. distribuzioni:
    • class (0) = False, class (42) = False => classifica correttamentea=1337,b=3141
    • class (0) = False, class (42) = True => classifica correttamentea=40,b=1337
    • class (0) = True, class (42) = False => classifica correttamentea=1,b=1
    • class (0) = True, class (42) = True => classifica correttamente.a=1,b=1337

Dimensione VC 3: No, non funziona. Immagina le lezioni trueed falseessere ordinato come True False True. Il tuo classificatore non può farcela. Quindi ha una dimensione VC di 2.

Prova

Ovviamente, i punti possono essere distinti solo se hanno valori diversi. Senza perdita di generalità, possiamo supporre che . Quindi il classificatore deve essere in grado di classificarex1,x2,x3Rx1<x2<x3

class ( ) = True, class ( ) = False, class ( ) = Truex1x2x3

correttamente per avere la dimensione VC 3. Per essere classificato come True, è richiesto . Perché sia Falso, è richiesto . Come e , deve essere . Quindi la situazione è attualmente: Perché sia classificato come True, è richiesto . Ma gli altri vincoli già richiedevano . Quindi non è possibile classificare correttamente tutte le distribuzioni di classe di 3 punti qualsiasi con questo classificatore. Quindi non ha dimensione VC 3.x1

ax1b
x2 a x 1 x 1 < x 2 b < x 2 a x 1b < x 2 < x 3 x 3 a x 3b b < x 3
x2<a or b<x2
ax1x1<x2b<x2
ax1b<x2<x3
x3
ax3b
b<x3

1
un classificatore costante ha dimensione VC 0 (anche se si può sostenere che non dovrebbe essere considerato un classificatore in primo luogo)
oW_

1
Oh giusto. Ma sì, non definirei un sistema che non può adattarsi ai dati affatto un classificatore in un contesto di apprendimento automatico.
Martin Thoma,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.