Overfitting y generalización

Rubén Rodríguez Abril

Una de las principales características de las redes neuronales artificiales es su capacidad de generalizar, es decir, su habilidad de inducir características generales a partir de los datos particulares de entrenamiento, y reconocer, en base a dichos patrones generales, objetos que no le han sido presentados con anterioridad. Si la red no es capaz de generalizar correctamente, y se limita a memorizar los datos de entrenamiento, se dice que sufre un problema de sobreajuste u overfitting.

Overfitting y la Generalización de la información

A diferencia de lo que sucede con las bases de datos tradicionales, en las que sus motores se limitan a buscar cadenas de bits a lo largo de todos los datos almacenados y con arreglo a las instrucciones proporcionadas por la consulta, las redes neuronales artificiales tienen la capacidad de detectar y almacenar universales, es decir, patrones de información que permiten reconocer una cierta clase de objetos. La capacidad de reconocimiento de universales es una característica básica de la mente humana, y de hecho, a lo largo de la historia de la filosofía occidental han surgido múltiples discusiones sobre la existencia objetiva de los mismos fuera del ámbito mental (los platonistas sostenían la existencia objetiva de arquetipos más allá del mundo físico, mientras que los nominalistas sostenían lo contrario)

Overfitting y underfitting

Dentro del ámbito del aprendizaje profundo se dice que un sistema tiene problemas de sobreajuste (overfitting) cuando no es capaz de realizar tareas de generalización y de clasificación. En este caso, el sistema se limita a memorizar los objetos que se le presentan, pero no es capaz de abstraer características generales de los mismos. Como consecuencia del overfitting, la red no clasifica adecuadamente objetos que no le han presentados con anterioridad.

Tres registros de datos iguales cada uno con un modelo diferente, uno infra-ajustado (underfitting), otro correctamente ajustado, y un tercero sobreajustado (overfitting).
En este ejemplo, una red neuronal de tan sólo dos entradas debe de clasificar objetos en dos categorías diferentes. La imagen de la izquierda representa una situación de infraajuste (underfitting). La recta, trazada por una ecuación lineal, no es capaz de clasificar adecuadamente los puntos del plano. La imagen de la derecha, por el contrario, clasifica de manera correcta todos los datos de entrenamiento. Pero dado que lo hace de manera poco general (overfitting), no es idónea para clasificar datos de entrada ulteriores. En la imagen del centro, una ecuación cuadrática generaliza adecuadamente los datos de entrenamiento, y es apta para realizar tareas de clasificación posteriores. El margen de error ahora es razonable.

Conexiones densas

A nuestro juicio, en el ámbito del aprendizaje profundo, los problemas de overfitting se producen, entre otras causas, cuando la información se concentra localmente en unas pocas conexiones sinápticas, en lugar de almacenarse distribuidamente, a través del conjunto de la red. Este fenómeno tiende a intensificarse si las conexiones entre las capas internas de la red neuronal son densas. Se dice que una conexión es densa cuando cada una de las neuronas de una capa se conecta con todas las de la capa anterior.

Pensemos en el caso de una red neuronal cuya entrada es una pantalla de 100×100 píxeles (10.000 píxeles en total), y que dispone de dos capas ocultas de 256 neuronas cada una, y de una capa de salida de 10 neuronas, con una función de activación softmax. La función de esta red sería clasificar imágenes en 10 categorías. Entre la capa de entrada y la primera capa oculta existirían 2.560.000 conexiones, entre las dos capas ocultas 65.536, y finalmente, 2.560 entre la segunda capa oculta y la capa de salida. En total, la red debería configurar y fijar el valor de más de dos millones y medio de pesos sinápticos diferentes.

Además de ser computacionalmente muy costoso entrenar una cantidad semejante de parámetros, la red se haría propensa al overfitting, puesto que tendería a almacenar en sus pesos sinápticos, que son más de dos millones, los valores de los píxeles de entrada de cada objeto, que son sólo 10.000 por imagen.

Reducción de sinapsis

La primera medida que puede adoptarse para evitar el sobreajuste en una red es reducir el número de pesos sinápticos independientes mediante el uso de capas convolucionales. En el ejemplo que hemos puesto, si la primera capa oculta fuera convolucional y contuviera 10 filtros dotados de un kernel de dimensiones 5×5, sólo sería necesario fijar el valor de 250 pesos sinápticos (25 por filtro), frente a los más de dos millones, si las conexiones fueran densas. Esta reducción del número de parámetros independientes obliga a la red a deshacerse de la información superflua (entropía) de las imágenes de entrada y tener en cuenta sólo aquellos bits de información que codifiquen patrones recurrentes en dichas imágenes.

Regularizaciones L1 y L2

Otra técnica de prevención del sobreajuste es la de impedir que los valores de los pesos sinápticos diverjan demasiado de cero durante el entrenamiento de la red (procedimiento de weight decay, o declive de los pesos sinápticos). Esto se consigue modificando la función de pérdida y agregándole un factor de normalización consistente en la suma de todos los pesos sinápticos de la red (o de sus cuadrados).

E’ = E + (\frac{λ}{2}∑w^{n})

donde E’ es la nueva función de pérdida (modificada), E’ la antigua función de pérdida, w es el valor de cada peso sináptico y λ la constante de normalización, cuyo valor oscila entre 0 y 1. Si el exponente n es igual a 1, estamos ante una Regularización L1 y la suma abarca los valores absolutos de los pesos sinápticos. Si el exponente es igual a 2 (Regularización L2), la suma abarca los cuadrados de dichos valores. La razón de que se sumen los cuadrados de los pesos sinápticos y no el valor absoluto de los mismos, es que el cuadrado siempre es positivo tanto si la sinapsis es excitatoria como inhibitoria.

El declive inducido de los pesos sinápticos provoca que los valores de los mismos no se alejen demasiado de cero, y con ello nos aseguramos que una conexión sináptica individual no almacene demasiada información.

Apagado de neuronas

Otra técnica, presentada por el equipo de Geoffrey Hinton en un artículo suyo del año 2014, es la de apagar (dropout) aleatoriamente un cierto porcentaje de neuronas (por lo general, la mitad) en cada ronda (epoch) de entrenamiento del sistema.

Determinados estudios en el ámbito biológico (Attwell, D. and Laughlin, 2001) ya habían demostrado que dentro de los cerebros de los animales, el porcentaje medio de neuronas activas en cada momento oscilaba entre el 1% al 4% del total. Esto apunta a un esquema de almacenamiento de información distribuido que se despliega, no en pequeños grupos de neuronas localizadas, sino en todo el cerebro en su conjunto. En el ámbito de las redes neuronales artificiales, el investigador canadiense Yoshua Bengio ya expuso en su libro Learning Deep Architectures for AI, del año 2009, que las representaciones de información que se almacenan de una manera dispersa son más ricas y tienen un rendimiento exponencialmente superior a las representaciones puramente locales.

El apagado aleatorio de neuronas en los sistemas de aprendizaje profundo propuesto por Hinton y su equipo, pretende lograr un efecto similar, favoreciendo la distribución dispersa de información evitando la creación de dependencias (“coadaptaciones”) entre neuronas dentro de la red.

Gráfica de los efectos del Dropout o "apagado" de neuronas.
La imagen muestra la evolución del número de errores cometidos por la red conforme avanza el número de rondas de entrenamiento (epochs). La tasa de apagado de las neuronas de la capa oculta es del 50% (azul oscuro). Si además, se aplica otra tasa del 20% a las neuronas de la capa de entrada (azul claro), los resultados son aún mejores.

Conclusión

Como vemos, todas estas técnicas pretenden que la red neuronal filtre la mayor cantidad de entropía posible de los datos de entrada, y que almacene exclusivamente aquellos bits de información que codifiquen patrones y estructuras. El objeto principal de una red neuronal artificial no es el de memorizar todos los datos de entrada, puesto que esta tarea ya la realizan las bases de datos tradicionales, y con mucho menor coste computacional. Por el contrario, la meta de cualquier sistema de entrenamiento es que la red neuronal generalice, y sea capaz de reconocer patrones y clasificar objetos no percibidos con anterioridad.

Por este motivo, y teniendo en cuenta la definición de entropía proporcionada por el matemático Gregory Chaitin, que la describe como la cantidad de información no compresible en un conjunto de datos, podemos concluir este artículo la siguiente pregunta: ¿Hasta qué punto no son las redes neuronales artificiales en el fondo mecanismos de filtrado de entropía y de compresión selectiva de datos?

Lecturas Recomendadas

– Nitish Srivastava et al. (2014). Dropout: A Simple Way to Prevent Neural Networks from Overfitting.

– Bengio, Y. (2009) Learning Deep Architectures for AI.

– Attwell, D. y Laughlin, S. (2001). An energy budget for signaling in the grey matter of the brain. Journal of Cerebral Blood Flow and Metabolism.

Aprende a programar redes neuronales desde cero.

La Máquina Oráculo utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies