He estado leyendo muchos trabajos de aprendizaje profundo donde cada uno de ellos sigue una arquitectura diferente. No puedo ver cuál es el sentido lógico o el sentido intuitivo detrás de cada capa en cada arquitectura. Tengo la sensación de que muchas de esas arquitecturas son simplemente arbitrarias que encontramos que funcionan de forma perfecta para nuestra aplicación. No creo que la ciencia deba hacerse así. Así que estoy seguro de que me estoy perdiendo algo. ¿Puede alguien indicarme algunos conceptos e ideas generales que debería seguir para entender cómo debería diseñar mi arquitectura de aprendizaje profundo para mi aplicación? Si hay materiales/libros o lo que sea que me ayuden a tener una idea de cómo funciona el aprendizaje profundo (conozco las matemáticas, pero no la lógica o intuitivo detrás de eso) se lo agradezco.
Respuesta
¿Demasiados anuncios?En la actualidad, la selección de la arquitectura de las redes neuronales se rige mucho más por los resultados empíricos que por una sólida teoría matemática. Además, la arquitectura de la red (profundidad, amplitud, funciones de activación, conexiones) no son las únicas decisiones que hay que tomar; también el algoritmo de optimización y sus parámetros interactúan estrechamente con estas elecciones. El conjunto de datos específico y la función de pérdida elegida también definen la superficie de pérdida a lo largo de la cual se está optimizando. A veces, incluso el hardware presenta una limitación (por ejemplo, la cantidad de memoria disponible en la GPU). Simplemente, no existe una respuesta universal y teóricamente fundada.
Por supuesto, hay algunos intuiciones: Por ejemplo, se sabe cómo funcionan las convoluciones, así que es fácil imaginar qué tipo de información pueden extraer. En realidad, la mayoría de los artículos que introducen algunos ajustes de arquitectura, como la normalización por lotes, la agrupación estocástica, etc., proporcionan estas pistas intuitivas. Es su trabajo considerar cuál de ellos tiene sentido en su escenario. Cualquier método de aprendizaje automático tiene sus hiperparámetros que hay que ajustar. En el caso de las redes neuronales, la arquitectura es simplemente un hiperparámetro (aunque sea oscuro).
Además, hay muchos hilos que tratan este tema:
- ¿Cómo elegir el número de capas ocultas y de nodos en una red neuronal feedforward?
- Reglas de selección de los subparámetros de las redes neuronales convolucionales
- ¿Cómo decidir la arquitectura de una red neuronal?
- ¿Existe una heurística para determinar el tamaño de una capa totalmente conectada al final de una CNN?