cuantas capas ocultas ?
un modelo con cero capas ocultas resolverá datos linealmente separables . Entonces, a menos que ya sepa que sus datos no se pueden separar linealmente, no está de más verificar esto: ¿por qué usar un modelo más complejo de lo que requiere la tarea? Si es linealmente separable, entonces una técnica más simple funcionará, pero un Perceptron también hará el trabajo.
Suponiendo que sus datos requieran separación mediante una técnica no lineal, entonces siempre comience con una capa oculta . Es casi seguro que eso es todo lo que necesitará. Si sus datos se pueden separar usando un MLP, entonces ese MLP probablemente solo necesite una única capa oculta. Hay una justificación teórica para esto, pero mi razón es puramente empírica: muchos problemas de clasificación / regresión difíciles se resuelven utilizando MLP de capa única oculta, pero no recuerdo haber encontrado ningún MLP de capa oculta múltiple utilizado para modelar datos con éxito. -ya sea en tableros de anuncios de ML, libros de texto de ML, artículos académicos, etc. Existen, ciertamente, pero las circunstancias que justifican su uso son empíricamente bastante raras.
¿Cuántos nodos hay en la capa oculta?
De la literatura académica MLP. mi propia experiencia, etc., he recopilado y a menudo confío en varias reglas generales ( RoT ), y que también he encontrado que son guías confiables (es decir, la guía fue precisa, e incluso cuando no lo fue, normalmente estaba claro qué hacer a continuación):
RoT basado en mejorar la convergencia:
Cuando empiece a construir el modelo, opte por el lado de más nodos en la capa oculta.
¿Por qué? Primero, es poco probable que algunos nodos adicionales en la capa oculta hagan ningún daño; su MLP aún convergerá. Por otro lado, muy pocos nodos en la capa oculta pueden evitar la convergencia. Piénselo de esta manera, los nodos adicionales proporcionan un exceso de capacidad: pesos adicionales para almacenar / liberar la señal a la red durante la iteración (entrenamiento o construcción de modelos). En segundo lugar, si comienza con nodos adicionales en su capa oculta, es fácil podarlos más adelante (durante el progreso de la iteración). Esto es común y existen técnicas de diagnóstico para ayudarlo (por ejemplo, diagrama de Hinton, que es solo una descripción visual de las matrices de peso, un "mapa de calor" de los valores de peso).
RoT basados en el tamaño de la capa de entrada y el tamaño de la capa de salida:
Una regla general es que el tamaño de esta capa [oculta] esté en algún lugar entre el tamaño de la capa de entrada ... y el tamaño de la capa de salida ...
Para calcular el número de nodos ocultos usamos una regla general de: (Número de entradas + salidas) x 2/3
RoT basado en componentes principales:
Por lo general, especificamos tantos nodos ocultos como dimensiones [componentes principales] necesarios para capturar el 70-90% de la varianza del conjunto de datos de entrada .
Y, sin embargo, el autor de NN FAQ llama a estas Reglas "sin sentido" (literalmente) porque: ignoran el número de instancias de entrenamiento, el ruido en los objetivos (valores de las variables de respuesta) y la complejidad del espacio de características.
En su opinión (y siempre me pareció que él sabe de lo que está hablando), elija la cantidad de neuronas en la capa oculta en función de si su MLP incluye alguna forma de regularización o detención anticipada .
La única técnica válida para optimizar el número de neuronas en la capa oculta:
Durante la construcción de su modelo, pruebe obsesivamente; las pruebas revelarán las firmas de una arquitectura de red "incorrecta". Por ejemplo, si comienza con un MLP que tiene una capa oculta compuesta por una pequeña cantidad de nodos (que aumentará gradualmente según sea necesario, según los resultados de la prueba), su error de entrenamiento y generalización será alto debido a sesgos y desajustes.
Luego, aumente el número de nodos en la capa oculta, uno a la vez, hasta que el error de generalización comience a aumentar, esta vez debido al sobreajuste y la alta variación.
En la práctica, lo hago de esta manera:
capa de entrada : el tamaño de mi vactor de datos (el número de características en mi modelo) + 1 para el nodo de sesgo y sin incluir la variable de respuesta, por supuesto
capa de salida : solo determinado por mi modelo: regresión (un nodo) versus clasificación (número de nodos equivalente al número de clases, asumiendo softmax)
capa oculta : para empezar , una capa ocultacon un número de nodos igual al tamaño de la capa de entrada. Es más probable que el tamaño "ideal" sea más pequeño (es decir, cierto número de nodos entre el número en la capa de entrada y el número en la capa de salida) en lugar de más grande; nuevamente, esto es solo una observación empírica, y el volumen de esta observación es mi propia experiencia. Si el proyecto justificó el tiempo adicional requerido, entonces comienzo con una sola capa oculta compuesta por una pequeña cantidad de nodos, luego (como expliqué antes) agrego nodos a la Capa Oculta, uno a la vez, mientras calculo la generalización error, error de entrenamiento, sesgo y varianza. Cuando el error de generalización ha disminuido y justo antes de que comience a aumentar nuevamente, la cantidad de nodos en ese punto es mi elección. Consulte la figura siguiente.