¿Puede una red neuronal aprender a modificar eficientemente su propia arquitectura para mejorar la precisión?

Gran pregunta

Si está pensando en ajustar los cambios, como aumentar / disminuir el número de capas o el número de nodos por capa o los ajustes al valor lambda utilizado para la regularización, no hay razón por la que no pueda automatizar este proceso en teoría (aparte de práctico limitaciones que puede enfrentar en términos del tiempo necesario para entrenar cada versión del modelo, dependiendo de la cantidad de datos de entrenamiento y los recursos computacionales que tenga).

Su código de red neuronal necesitaría estar estructurado de tal manera que la forma de la red pueda parametrizarse (y los ajustes a los pesos inicializados para el modelo también deberían depender de estos parámetros).

Supongamos que divide sus datos en 3 conjuntos, por ejemplo, 60% de entrenamiento, 20% de validación cruzada (cv) y 20% de prueba. Puede comenzar con una red relativamente pequeña, entrenar un modelo basado en sus datos de entrenamiento, luego con sus datos de validación cruzada ejecutados varias veces, por ejemplo, con diferentes parámetros de regularización y registrar la precisión de cada uno (así como el tiempo necesario para entrenar el modelo, generar predicciones, etc. Y finalmente, usando parámetros del mejor resultado de cv, compárelo con los datos de su prueba y registre mediciones similares.

El proceso automatizado podría volver a entrenar el modelo utilizando una red de mayor tamaño (por ejemplo, configurarlo para que aumente en un x% en cada iteración). Repita el proceso anterior de grabación de datos para varias ejecuciones de cv y los resultados de su conjunto de prueba, así como los tiempos.

Puede configurar esto para que se ejecute un número específico de veces o puede intentar identificar cuándo la precisión del conjunto de prueba ha convergido.