Numero e dimensioni di strati densi in una CNN


11

La maggior parte delle reti che ho visto hanno uno o due strati densi prima del livello finale di softmax.

  • Esiste un modo di principio per scegliere il numero e la dimensione dei layer densi?
  • Due strati densi sono più rappresentativi di uno, per lo stesso numero di parametri?
  • Il dropout deve essere applicato prima di ogni strato denso o solo una volta?

Risposte:


15

Prima di tutto:

Non c'è modo di determinare una buona topologia di rete solo dal numero di ingressi e uscite. Dipende in modo critico dal numero di esempi di allenamento e dalla complessità della classificazione che stai cercando di imparare. [1]

e Yoshua Bengio ha proposto una regola molto semplice:

Continua ad aggiungere livelli fino a quando l'errore del test non migliora più. [2]

Inoltre:

Le funzionalità precedenti di ConvNet contengono funzionalità più generiche (ad esempio rilevatori di bordi o rilevatori di BLOB di colore) che dovrebbero essere utili per molte attività, ma i livelli successivi di ConvNet diventano progressivamente più specifici per i dettagli delle classi contenute nel set di dati originale. [ 3]

Ad esempio, in un metodo per l'apprendimento dei rilevatori di funzionalità:

il primo livello apprende i rilevatori di bordi e i livelli successivi apprendono funzioni più complesse, mentre i livelli di livello superiore codificano funzioni più astratte. [4]

Pertanto, l'utilizzo di due strati densi è più consigliato di uno strato.

Finalmente:

Il documento originale su Dropout fornisce una serie di euristiche utili da considerare quando si utilizza il dropout in pratica. Uno di questi è: Usa il dropout su unità in arrivo (visibili) e nascoste. L'applicazione del dropout su ogni livello della rete ha mostrato buoni risultati. [5]

nella CNN, di solito, viene applicato un livello Dropout dopo ogni livello di pool e anche dopo il livello Dense. Un buon tutorial è qui [6]

Riferimenti:

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

[2] Bengio, Yoshua. "Consigli pratici per la formazione graduale di architetture profonde." Reti neurali: trucchi del mestiere. 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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.