DROPOUT: A Simple Way to Prevent Neural Networks from Overfitting
El overfitting en las redes neuronales profundas, (Deep neural Networks). Muchas veces las redes neuronales son lentas lo que dificulta la solución del overfitting mediante combinación de predicciones.
¿Qué solución propone?
La mejor manera de solucionar este problema es promediar las predicciones de varias redes neuronales entrenadas separadas, sin embargo, el uso de recursos computacionales sería demasiado elevado.
La técnica Dropout consiste en remover aleatoria y temporalmente unidades (neuronas) de las capas internas y ocultas de la red neuronal. Lo probabilidad de remover una unidad está dada por p, la cual puede ser considerada una variable a optimizar o simplemente establecerla en 0.5, probabilidad que resulta ser cercana a la óptima para la varios de casos estudiados.
Para la evaluación del modelo no es factible promediar las predicciones de las varias redes neuronales, sin embargo, buen aproximado a esto es entrenar una sola red neuronal donde los pesos de las neuronas sean disminuidos multiplicándolos por la probabilidad de aparecer de cada neurona.
Se observa que para valores bajos de p (<0.4) el error del modelo es alto puesto que la ausencia de unidades durante el entrenamiento provoca falta de entrenamiento (underfitting) mientras que a partir de 0.4 hasta 0.8 se tienen modelos óptimos a partir de 0.8 se empieza a aprecia una reducción de rendimiento en la data de evaluación debido al overfitting.
Haciendo uso de la misma arquitectura se evaluó el efecto de la aplicación de Dropout con diferentes volúmenes de data. Se observa que, con bajos volúmenes de data, no es conveniente la aplicación de esta técnica. Mientras mayor es el volumen de data aumenta, la aplicación de Dropout mejor la performance del modelo hasta alcanzar un punto donde el volumen de la data es suficiente como para no que no sea memorizada.
La aplicación de la técnica mostro permitir la reducción del overfitting en distintos dominios como clasificación de imágenes, reconocimiento de voz, entre otras.
Sin embargo una desventaja es que aumenta el tiempo de entrenamiento del modelo a 2 – 3 veces el tiempo del modelo original.