¿Cuál es la "capacidad" de un modelo de aprendizaje automático?

15

Estoy estudiando este Tutorial sobre Autoencoders Variacionales de Carl Doersch . En la segunda página dice:

Uno de los marcos más populares es el Autoencoder Variacional [1, 3], el tema de este tutorial. Los supuestos de este modelo son débiles, y el entrenamiento es rápido a través de la propagación hacia atrás. Los VAE sí hacen una aproximación, pero el error introducido por esta aproximación es posiblemente pequeño dado los modelos de alta capacidad . Estas características han contribuido a un rápido aumento en su popularidad.

He leído en el pasado este tipo de afirmaciones sobre modelos de alta capacidad , pero no parece encontrar una definición clara para ello. También encontré esta pregunta relacionada con stackoverflow, pero para mí la respuesta es muy insatisfactoria.

¿Existe una definición para la capacidad de un modelo? ¿Puedes medirlo?

Andrés Marafioti
fuente

Respuestas:

13

La capacidad es un término informal. Está muy cerca (si no es sinónimo) de la complejidad del modelo. Es una forma de hablar sobre lo complicado que puede ser un patrón o relación que un modelo pueda expresar. Podría esperar que un modelo con mayor capacidad pueda modelar más relaciones entre más variables que un modelo con menor capacidad.

Al hacer una analogía a partir de la definición coloquial de capacidad, puede pensar en ella como la capacidad de un modelo para aprender de más y más datos, hasta que se haya "llenado" completamente con información.

Hay varias formas de formalizar la capacidad y calcular un valor numérico para ella, pero lo más importante son solo algunas posibles "operacionalizaciones" de la capacidad (de la misma manera que, si a alguien se le ocurriera una fórmula para calcular la belleza, se daría cuenta de que la fórmula es solo una interpretación falible de la belleza).


La dimensión VC es una formulación matemáticamente rigurosa de la capacidad. Sin embargo, puede haber una gran brecha entre la dimensión VC de un modelo y la capacidad real del modelo para ajustar los datos. A pesar de que conocer el VC dim da un límite en el error de generalización del modelo, esto suele ser demasiado suelto para ser útil con las redes neuronales.

Otra línea de investigación que se ve aquí es usar la norma espectral de las matrices de peso en una red neuronal como medida de capacidad. Una forma de entender esto es que la norma espectral limita la constante de Lipschitz de la red.

La forma más común de estimar la capacidad de un modelo es contar el número de parámetros. Cuantos más parámetros, mayor es la capacidad en general. Por supuesto, a menudo una red más pequeña aprende a modelar datos más complejos mejor que una red más grande, por lo que esta medida también está lejos de ser perfecta.

Otra forma de medir la capacidad podría ser entrenar su modelo con etiquetas aleatorias ( Neyshabur et al. ): Si su red puede recordar correctamente un conjunto de entradas junto con etiquetas aleatorias, esencialmente muestra que el modelo tiene la capacidad de recordar todas esas puntos de datos individualmente. Cuantos más pares de entrada / salida se puedan "aprender", mayor será la capacidad.

ϵ

shimao
fuente
1
Esta es una mejor respuesta que la de stackoverflow, gracias. Todavía tengo algunos problemas para ver términos poco definidos como justificación de otra cosa, pero supongo que así es como avanza el campo.
Andrés Marafioti
1
"puede haber una gran brecha entre la dimensión VC de un modelo y la capacidad real del modelo". Esta es una declaración muy engañosa porque la "capacidad real" no se define con precisión. De hecho, la dimensión VC es una buena medida de la capacidad de un modelo. Solo porque las redes neuronales parecen resolver ciertos problemas, no las hace "altamente capaces". De hecho, la mayoría de las veces, las personas piensan que las redes neuronales están resolviendo un problema, mientras que están resolviendo un problema mucho más simple y, de hecho, a menudo fallan catastróficamente (porque fueron entrenadas "inesperadamente" para resolver un problema más simple).
nbro