¿Cómo calcular la dimensión VC?

12

Estoy estudiando aprendizaje automático, y me gustaría saber cómo calcular la dimensión VC.

Por ejemplo:

h(x)={1if axb0else  , con parámetros .(a,b)R2

¿Cuál es la dimensión VC de la misma?

铭 声 孙
fuente

Respuestas:

10

La dimensión VC es una estimación de la capacidad de un clasificador binario. Si usted puede encontrar un conjunto de puntos, de modo que pueda ser destruida por el clasificador (es decir, clasificar todos los posibles marcajes correctamente) y que no se puede encontrar cualquier conjunto de puntos que podrían romperse (es decir, para cualquier conjunto de puntos hay al menos un orden de etiquetado para que el clasificador no pueda separar todos los puntos correctamente), entonces la dimensión VC es .2 n n + 1 n + 1 nn2nn+1n+1n

En su caso, primero considere dos puntos y , de modo que . Luego hay posibles etiquetadosx 2 x 1 < x 2 2 2 = 4x1x2x1<x222=4

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

Todos los etiquetados se pueden lograr a través del clasificador configurando los parámetros modo quea < b Rha<bR

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

respectivamente. (En realidad, se puede suponer que wlog, pero es suficiente para encontrar un conjunto que pueda romperse).x1<x2

Ahora, considere tres puntos arbitrarios (!) , , y wlog asume , entonces no puede lograr el etiquetado (1,0,1). Como en el caso 3 anterior, las etiquetas : 1 y : 0 implican . Lo que implica > by, por lo tanto, la etiqueta de tiene que ser 0. Por lo tanto, el clasificador no puede romper ningún conjunto de tres puntos y, por lo tanto, la dimensión VC es 2.x1x2x3x1<x2<x3x1x2a<x1<b<x2x3x3

-

Tal vez se vuelve más claro con un clasificador más útil. Consideremos los hiperplanos (es decir, líneas en 2D).

Es fácil encontrar un conjunto de tres puntos que se puedan clasificar correctamente sin importar cómo estén etiquetados:

ingrese la descripción de la imagen aquí

Para todos los posibles etiquetados podemos encontrar un hiperplano que los separa perfectamente.23=8

Sin embargo, no podemos encontrar ningún conjunto de 4 puntos para poder clasificar correctamente todos los etiquetados posibles. En lugar de una prueba formal, trato de presentar un argumento visual:24=16

Supongamos por ahora que los 4 puntos forman una figura con 4 lados. Entonces es imposible encontrar un hiperplano que pueda separar los puntos correctamente si etiquetamos las esquinas opuestas con la misma etiqueta:

Si no forman una figura con 4 lados, hay dos "casos límite": los puntos "externos" deben formar un triángulo o todos deben formar una línea recta. En el caso del triángulo, es fácil ver que no se puede lograr el etiquetado donde el punto "interno" (o el punto entre dos esquinas) es diferente de los demás:

En el caso de un segmento de línea, se aplica la misma idea. Si los puntos finales están etiquetados de manera diferente a uno de los otros puntos, no se pueden separar por un hiperplano.

Dado que cubrimos todas las formaciones posibles de 4 puntos en 2D, podemos concluir que no hay 4 puntos que puedan romperse. Por lo tanto, la dimensión VC debe ser 3.

oW_
fuente
1
> Pero la función puede lograr x1 = 0, x2 = 0, x3 = 0. ¿Necesita lograr todas las etiquetas?
铭 声 孙
Hice una pregunta similar aquí datascience.stackexchange.com/questions/39064/… que está en contexto con una función de hipótesis lineal. ¿Podrías ayudar a responder eso?
Suhail Gupta
3

La dimensión VC de un clasificador se determina de la siguiente manera:

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

Por lo tanto, solo tiene que haber una forma de colocar tres puntos de manera que todas las distribuciones de clase posibles entre esta colocación de puntos se puedan clasificar de la manera correcta.

Si no coloca los tres puntos en una línea, la percepción lo hace bien. Pero no hay forma de conseguir que la percepción clasifique todas las distribuciones de clase posibles de 4 puntos, sin importar cómo coloque los puntos

Su ejemplo

Sus funciones están en . Cada clasificador tiene al menos la dimensión 1.R

VC-Dimension 2: puede clasificar las cuatro situaciones correctamente.

  1. Puntos: 0 y 42
  2. Distribuciones:
    • a=1337,b=3141
    • a=40,b=1337
    • a=1,b=1
    • a=1,b=1337

VC-Dimension 3: No, eso no funciona. Imagina las clases truey falseser ordenado como True False True. Tu clasificador no puede lidiar con eso. Por lo tanto, tiene una dimensión VC de 2.

Prueba

x1,x2,x3Rx1<x2<x3

x1x2x3

x1

ax1b
x2
x2<a or b<x2
ax1x1<x2b<x2
ax1b<x2<x3
x3
ax3b
b<x3. Por lo tanto, no es posible clasificar todas las distribuciones de clase de 3 puntos correctamente con este clasificador. Por lo tanto, no tiene VC dimensión 3.
Martin Thoma
fuente
1
un clasificador constante tiene dimensión VC 0 (aunque uno puede argumentar que no debería considerarse un clasificador en primer lugar)
oW_
1
Correcto. Pero sí, no llamaría a un sistema que no puede adaptarse a los datos en absoluto un clasificador en un contexto de aprendizaje automático.
Martin Thoma