artificial intelligence - pronosticos - ¿Cómo elegir la cantidad de capas y nodos ocultos en la red neuronal?
redes neuronales estadistica (5)
¿Qué efecto tiene la cantidad de capas ocultas en una red neuronal de perceptrón multicapa en la forma en que se comporta la red neuronal? ¿La misma pregunta para el número de nodos en capas ocultas?
Digamos que quiero usar una red neuronal para el reconocimiento de caracteres escritos a mano. En este caso, pongo valores de intensidad de color de píxel como nodos de entrada y clases de caracteres como nodos de salida.
¿Cómo elegiría la cantidad de capas y nodos ocultos para resolver ese problema?
Además del hecho de que la validación cruzada en diferentes configuraciones de modelos (número de capas ocultas O neuronas por capa) lo llevará a elegir una mejor configuración.
Un enfoque consiste en entrenar un modelo, lo más grande y profundo posible, y utilizar la regularización del abandono para apagar algunas neuronas y reducir el exceso de equipamiento .
la referencia a este enfoque se puede ver en este documento. https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf
La mayoría de los problemas que he visto se resolvieron con 1-2 capas ocultas. Está demostrado que las MLP con una sola capa oculta son aproximaciones universales de función ( Hornik et al. ). Más capas ocultas pueden hacer que el problema sea más fácil o más difícil. Por lo general, debes probar diferentes topologías. Escuché que no puedes agregar un número arbitrario de capas ocultas si quieres entrenar tu MLP con backprop porque el gradiente será demasiado pequeño en las primeras capas (no tengo referencia para eso). Pero hay algunas aplicaciones donde la gente usa hasta nueve capas . Quizás esté interesado en un problema estándar de referencia que se resuelve con diferentes clasificadores y topologías MLP.
La respuesta general es que para la selección de hiperparámetros es para la validación cruzada. Retenga algunos datos, entrene las redes con diferentes configuraciones, y use el que tenga mejor desempeño en el conjunto retenido.
Nota: esta respuesta fue correcta en el momento en que se hizo, pero desde entonces ha quedado obsoleta.
Es raro tener más de dos capas ocultas en una red neuronal. La cantidad de capas generalmente no será un parámetro de su red del que se preocupe mucho.
Aunque las redes neuronales multicapa con muchas capas pueden representar circuitos profundos, el entrenamiento de redes profundas siempre se ha visto como un desafío. Hasta hace muy poco, los estudios empíricos a menudo descubrían que las redes profundas generalmente no funcionaban mejor, y a menudo peor, que las redes neuronales con una o dos capas ocultas.
Bengio, Y. & LeCun, Y., 2007. Escalar los algoritmos de aprendizaje hacia la IA. Máquinas Kernel a gran escala, (1), pp.1-41.
El documento citado es una buena referencia para aprender sobre el efecto de la profundidad de la red, el progreso reciente en la enseñanza de redes profundas y el aprendizaje profundo en general.
Todas las respuestas anteriores son, por supuesto, correctas, pero solo para añadir algunas ideas más: Algunas reglas generales son las siguientes basadas en este documento: ''Aproximación del número de neuronas de capa oculta en la Arquitectura de capa oculta de BPNN múltiple'' por Saurabh Karsoliya.
En general:
- La cantidad de neuronas de capa oculta es 2/3 (o 70% a 90%) del tamaño de la capa de entrada. Si esto es insuficiente, se puede agregar el número de neuronas de la capa de salida más adelante.
- La cantidad de neuronas de capa oculta debe ser menos del doble de la cantidad de neuronas en la capa de entrada.
- El tamaño de las neuronas de la capa oculta se encuentra entre el tamaño de la capa de entrada y el tamaño de la capa de salida.
Tenga siempre en cuenta que debe explorar y probar muchas combinaciones diferentes. Además, usando GridSearch puedes encontrar el "mejor modelo y parámetros". Por ejemplo, podemos hacer un GridSearch para determinar el "mejor" tamaño de la capa oculta.