¿Existe una regla general para diseñar redes neuronales?

12

Sé que una arquitectura de red neuronal se basa principalmente en el problema en sí y los tipos de entrada / salida, pero aún así, siempre hay un "cuadrado" cuando se comienza a construir uno. Entonces, mi pregunta es: dado un conjunto de datos de entrada de MxN (M es el número de registros, N es el número de características) y una C posibles clases de salida, ¿hay una regla general sobre cuántas capas / unidades deberíamos comenzar?

tembloroso
fuente
Las posibles respuestas a esta pregunta son muy específicas del problema. Puede haber algunas reglas útiles para el reconocimiento de objetos de imagen, pero estas reglas pueden no funcionar en un conjunto de datos diferente.
horaceT

Respuestas:

10

Esta pregunta se ha respondido en detalle en CrossValidated: ¿Cómo elegir el número de capas y nodos ocultos en una red neuronal de avance?

Sin embargo, déjame agregar mis propios dos centavos:

No existe una regla mágica para elegir la mejor arquitectura de red neuronal, pero si puede encontrar una arquitectura que alguien haya usado para resolver un problema similar, este suele ser un excelente punto de partida.

Los mejores lugares para buscar son ejemplos oficiales o no oficiales que utilizan bibliotecas de redes neuronales populares como Keras, PyTorch o Tensorflow, y arquitecturas descritas en la literatura académica. Keras / examples en github es un gran recurso.

Estas arquitecturas probablemente se eligieron después de muchas pruebas y errores, por lo que la mayor parte del trabajo se habrá realizado por usted.

Imran
fuente
55
Una advertencia a la respuesta CrossValidated es que ahora tiene más de 7 años y apunta a un FAQ de más de 15 años para un "resumen excelente" de la configuración de sus capas ocultas. Decir que ha habido mucho trabajo en la configuración de NN en los últimos 7-15 años es un poco insuficiente. Hay un número creciente de aplicaciones que quedan fuera del régimen de " una capa oculta es suficiente ". - Dicho esto, para una serie de problemas, un enfoque de aprendizaje profundo puede ser excesivo. Comenzar con una sola capa oculta y solo profundizar si es necesario es una estrategia sólida.
RM
1
Buenos puntos, RM - Sin embargo, la segunda respuesta allí es mucho más reciente.
Imran
@ Imran Creo que nunca respondes la pregunta de OP. La elección de nodos ocultos y arquitectura es una pregunta muy profunda que todavía no se comprende muy bien. Sea testigo de ResNet y Wide ResNet con conexiones de capa cruzada.
horaceT
Gracias por tu comentario, @horaceT. Mi intento de respuesta tenía la intención de significar "No hay una regla general, pero hay heurísticas que se pueden aplicar". Soy consciente de Res Nets. Por favor, avíseme cómo puedo mejorar mi respuesta.
Imran
3

Leí un artículo que exploraba la idea de usar redes neuronales para diseñar otras redes neuronales, explorando qué configuración de nodos y capas era la más eficiente. Aquí está la página donde puede descargar un PDF https://arxiv.org/abs/1611.02120

Daniel Ephrat
fuente
2

Siguiendo la respuesta de @ Imran, encontré este artículo en uno de los comentarios de la publicación CrossValidated a la que se vinculó. Además de un intento de encontrar la arquitectura correcta usando Modelos Genéticos (en lugar de usar una regla general), la sección 2.1 brinda algunos límites teóricos sobre cuántas unidades ocultas deberían estar en un sistema de una / dos capas ocultas.

EDITAR: he probado este teorema y descubrí que usar modelos genéticos es tan bueno como seleccionar una arquitectura aleatoria.

tembloroso
fuente