Número y tamaño de capas densas en una CNN


10

La mayoría de las redes que he visto tienen una o dos capas densas antes de la capa final de softmax.

  • ¿Hay alguna forma de principios de elegir el número y el tamaño de las capas densas?
  • ¿Son dos capas densas más representativas que una para el mismo número de parámetros?
  • ¿Debería aplicarse la deserción antes de cada capa densa, o solo una vez?

Respuestas:


14

Ante todo:

No hay forma de determinar una buena topología de red solo a partir del número de entradas y salidas. Depende críticamente del número de ejemplos de entrenamiento y la complejidad de la clasificación que está tratando de aprender. [1]

Yoshua Bengio ha propuesto una regla muy simple:

Solo sigue agregando capas hasta que el error de prueba ya no mejore. [2]

Además:

Las características anteriores de una ConvNet contienen características más genéricas (por ejemplo, detectores de bordes o detectores de manchas de color) que deberían ser útiles para muchas tareas, pero las capas posteriores de la ConvNet se vuelven progresivamente más específicas a los detalles de las clases contenidas en el conjunto de datos original. [ 3]

Por ejemplo, en un método para aprender detectores de características:

la primera capa aprende detectores de borde y las capas posteriores aprenden características más complejas, y las capas de nivel superior codifican características más abstractas. [4]

Por lo tanto, usar dos capas densas es más recomendable que una capa.

Finalmente:

El documento original sobre Deserción proporciona una serie de heurísticas útiles a tener en cuenta al usar la deserción en la práctica. Uno de ellos es: Use el abandono en las unidades entrantes (visibles) y ocultas. La aplicación de la deserción en cada capa de la red ha mostrado buenos resultados. [5]

en CNN, por lo general, se aplica una capa de abandono después de cada capa de agrupación y también después de su capa densa. Un buen tutorial está aquí [6]

Referencias

[1] https://www.cs.cmu.edu/Groups/AI/util/html/faqs/ai/neural/faq.html

[2] Bengio, Yoshua. "Recomendaciones prácticas para la formación basada en gradientes de arquitecturas profundas". Redes neuronales: trucos del oficio. Springer Berlin Heidelberg, 2012. 437-478.

[3] http://cs231n.github.io/transfer-learning/

[4] http://learning.eng.cam.ac.uk/pub/Public/Turner/Teaching/ml-lecture-3-slides.pdf

[5] https://machinelearningmastery.com/dropout-regularization-deep-learning-models-keras/

[6] https://cambridgespark.com/content/tutorials/convolutional-neural-networks-with-keras/index.html

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.