Cómo luchar contra la ropa interior en una red neuronal profunda


50

Cuando comencé con las redes neuronales artificiales (NN) pensé que tendría que luchar contra el sobreajuste como el principal problema. Pero en la práctica ni siquiera puedo lograr que mi NN pase la barrera de la tasa de error del 20%. ¡Ni siquiera puedo superar mi puntaje en un bosque aleatorio!

Estoy buscando un consejo muy general o no tan general sobre qué se debe hacer para que un NN comience a capturar tendencias en los datos.

Para implementar NN, uso Theano Stacked Auto Encoder con el código del tutorial que funciona muy bien (menos del 5% de tasa de error) para clasificar el conjunto de datos MNIST. Es un perceptrón multicapa, con una capa softmax en la parte superior, cada una de las cuales se ocultó más tarde como autoencoder (se describe completamente en el tutorial , capítulo 8). Hay ~ 50 características de entrada y ~ 10 clases de salida. El NN tiene neuronas sigmoideas y todos los datos están normalizados a [0,1]. Probé muchas configuraciones diferentes: número de capas ocultas y neuronas en ellas (100-> 100-> 100, 60-> 60-> 60, 60-> 30-> 15, etc.), diferentes aprendizajes y pre-entrenamiento tarifas, etc.

Y lo mejor que puedo obtener es una tasa de error del 20% en el conjunto de validación y una tasa de error del 40% en el conjunto de prueba.

Por otro lado, cuando trato de usar Random Forest (de scikit-learn) obtengo fácilmente una tasa de error del 12% en el conjunto de validación y del 25% (!) En el conjunto de prueba.

¿Cómo puede ser que mi NN profundo con pre-entrenamiento se comporte tan mal? ¿Qué debería probar?

Respuestas:


34

El problema con las redes profundas es que tienen muchos hiperparámetros para ajustar y un espacio de solución muy pequeño. Por lo tanto, encontrar buenos es más como una tarea de arte que de ingeniería. Comenzaría con el ejemplo de trabajo del tutorial y jugaría con sus parámetros para ver cómo cambian los resultados; esto da una buena intuición (aunque no una explicación formal) sobre las dependencias entre parámetros y resultados (tanto finales como intermedios).

También encontré los siguientes documentos muy útiles:

Ambos describen RBM, pero contienen algunas ideas sobre redes profundas en general. Por ejemplo, uno de los puntos clave es que las redes deben depurarse en capas: si la capa anterior no proporciona una buena representación de las características, las capas adicionales casi no tienen posibilidad de solucionarlo.


14

Si bien la respuesta de ffriend brinda algunos excelentes consejos para aprender más sobre cómo las redes neuronales pueden ser (extremadamente) difíciles de sintonizar adecuadamente, pensé que podría ser útil enumerar un par de técnicas específicas que actualmente se utilizan en las arquitecturas de clasificación de alto rendimiento en la red neuronal literatura.

Activaciones lineales rectificadas

f(z)=(1+ez)1f(z)=max(0,z)

La activación de relu tiene dos grandes ventajas:

  • su salida es un cero verdadero (no solo un valor pequeño cercano a cero) para yz0
  • su derivada es constante, 0 para o 1 para .z0z>0

Una red de unidades relu actúa básicamente como un conjunto de redes lineales exponencialmente múltiples, porque las unidades que reciben la entrada están esencialmente "apagadas" (su salida es 0), mientras que las unidades que reciben la entrada colapsan en una sola línea modelo para esa entrada. Además, las derivadas constantes son importantes porque una red profunda con activaciones de relu tiende a evitar el problema del gradiente de fuga y se puede entrenar sin preentrenamiento por capas.z0z>0

Consulte "Redes neuronales de rectificador profundo y escaso" de Glorot, Bordes y Bengio ( http://jmlr.csail.mit.edu/proceedings/papers/v15/glorot11a/glorot11a.pdf ) para obtener un buen artículo sobre estos temas.

Abandonar

Muchos grupos de investigación en los últimos años han estado abogando por el uso del "abandono" en las redes de clasificación para evitar el sobreentrenamiento. (Ver, por ejemplo, "Abandono: una forma simple de evitar que las redes neuronales se sobreajusten" por Srivastava, Hinton, Krizhevsky, Sutskever y Salakhutdinov http://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf ) En Abandono, durante el entrenamiento, alguna proporción constante de las unidades en una capa dada se establece aleatoriamente en 0 para cada entrada que procesa la red. Esto obliga a las unidades que no están configuradas a 0 a "compensar" las unidades "faltantes". El abandono parece ser un regularizador extremadamente efectivo para modelos de redes neuronales en tareas de clasificación. Vea un artículo de blog sobre esto en http: // fastml.


77
Pero la pregunta es acerca de la falta de equipamiento, no de sobreajuste.
Valentas

8

Puede que le interese leer el siguiente documento de investigadores de Microsoft Research:

Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun: aprendizaje residual profundo para el reconocimiento de imágenes en arxiv, 2015.

Tenían problemas similares a los tuyos:

Cuando las redes más profundas pueden comenzar a converger, se expone un problema de degradación: con el aumento de la profundidad de la red, la precisión se satura (lo que puede no ser sorprendente) y luego se degrada rápidamente. Inesperadamente, dicha degradación no es causada por el sobreajuste, y agregar más capas a un modelo adecuadamente profundo conduce a un mayor error de entrenamiento , como se informó en [11, 42] y verificado a fondo por nuestros experimentos.

Para resolver el problema, han hecho uso de una arquitectura de omisión. Con eso, entrenaron redes muy profundas (1202 capas) y lograron el mejor resultado en el desafío ILSVRC 2015.


Gracias por su respuesta, está tomando el problema de la desaparición del gradiente, si en caso de que la validación sea más alta que la formación, ¿qué debería hacer? Puede suceder para un pequeño número de datos en el conjunto de valores. Pero a veces no depende del conjunto de valores. Estoy preguntando si hay alguna otra razón por la cual el val acc sea más alto que el entrenamiento acc ??
Sudip Das
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.