¿Cómo encontrar el número óptimo de neuronas por capa?


28

Cuando escribe su algoritmo, ¿cómo sabe cuántas neuronas necesita por capa individual? ¿Hay algún método para encontrar el número óptimo de ellos o es una regla general?

Respuestas:


15

No hay una forma directa de encontrar el número óptimo de ellos: las personas empíricamente intentan ver (por ejemplo, usando validación cruzada). Las técnicas de búsqueda más comunes son las búsquedas aleatorias, manuales y de cuadrícula.

Existen técnicas más avanzadas, como los procesos gaussianos, por ejemplo, Optimización de hiperparámetros de redes neuronales con procesos gaussianos para la clasificación de la Ley de diálogo , IEEE SLT 2016 .


7

Para un enfoque más inteligente que las búsquedas aleatorias o exhaustivas, puede probar un algoritmo genético como NEAT http://nn.cs.utexas.edu/?neat . Sin embargo, esto no tiene garantía de encontrar un óptimo global, es simplemente un algoritmo de optimización basado en el rendimiento y, por lo tanto, es vulnerable a quedarse atascado en un óptimo local.


1
De todos modos, se acercará bastante a un óptimo global.
jjmerelo

4

Paper Szegedy C, Vanhoucke V, Ioffe S, et al. Repensar la arquitectura inicial para la visión por computadora [J]. arXiv preprint arXiv: 1512.00567, 2015. ofrece algunos principios generales de diseño:

  1. Evite los cuellos de botella de representación, especialmente al principio de la red;

  2. Equilibre el ancho y la profundidad de la red. Se puede alcanzar un rendimiento óptimo de la red equilibrando el número de filtros por etapa y la profundidad de la red. Aumentar tanto el ancho como la profundidad de la red puede contribuir a redes de mayor calidad. Sin embargo, la mejora óptima para una cantidad constante de cálculo se puede alcanzar si ambos se incrementan en paralelo. Por lo tanto, el presupuesto computacional debe distribuirse de manera equilibrada entre la profundidad y el ancho de la red.

Sin embargo, estas sugerencias no pueden brindarle la cantidad óptima de neuronas en una red.

Sin embargo, todavía hay algunas investigaciones de compresión de modelos, por ejemplo, Aprendizaje estructurado estructurado (SSL) de redes neuronales profundas , SqueezeNet , redes de poda que pueden arrojar algo de luz sobre cómo optimizar las neuronas por capa individual.

Especialmente en el aprendizaje estructurado de la dispersión de redes neuronales profundas , agrega un Group Lassotérmino de regularización en la función de pérdida para regularizar las estructuras (es decir, filtros, canales, formas de filtro y profundidad de capa) de los DNN, que es poner a cero algunos componentes ( es decir, filtros, canales, formas de filtro y profundidad de capa) de la estructura de la red y logra un notable compacto y aceleración de la red, mientras mantiene una pequeña pérdida de precisión de clasificación.


3

Sabes que cuando tienes demasiadas neuronas es cuando te sobrepasas. Lo que significa que no funciona bien porque NN está tratando de activarse en la combinación más perfecta que es imposible. Al igual que dos gatos diferentes con la misma cantidad de átomos, o para decir, es un detector NN que solo se activa en una imagen de tu mascota y nada más. Desea un rango más amplio para que se active el nn. Como en cualquier foto de gato.

El sobreajuste es un problema que no tiene una solución rápida real. Puede comenzar con muy pocos y luego seguir agregando más. O comience con mucho y luego elimínelos hasta que funcione correctamente.

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.