Scegli la dimensione del filtro, i passi ecc. In una CNN?


12

Ho seguito le lezioni CS231N di Stanford e sto cercando di avvolgere la mia testa su alcuni problemi delle architetture della CNN. Quello che sto cercando di capire è se ci sono alcune linee guida generali per scegliere la dimensione del filtro di convoluzione e cose come i passi o è più un'arte che una scienza?

Il raggruppamento che capisco esiste principalmente per indurre una qualche forma di invarianza della traduzione in un modello. D'altra parte, non ho una buona intuizione di come viene scelta la dimensione del passo. Ci sono altre linee guida a questo, tranne che nel cercare di comprimere l'attuale dimensione del livello o nel cercare di ottenere un campo ricettivo più ampio per un neurone? Qualcuno sa di buoni documenti o simili che ne discutono?

Risposte:


9

Come testo introduttivo a tutte le questioni che nomina, consiglierei il libro di apprendimento profondo . Fornisce un'ampia panoramica del campo. Spiega il ruolo svolto da ciascuno di questi parametri.

A mio avviso è molto utile leggere alcune delle architetture più popolari (resnet, inception, alex-net) ed estrarre le idee chiave che portano alle decisioni di progettazione. Dopo aver letto il libro di cui sopra.

Nel programma delle lezioni a cui ti riferisci, viene spiegato in dettaglio come lo strato di convoluzione aggiunge un gran numero di parametri (pesi, distorsioni) e neuroni. Questo livello, una volta allenato, è in grado di estrarre modelli di significato dall'immagine. Per i livelli inferiori questi filtri sembrano estrattori di bordi. Per strati superiori, queste forme primitive vengono combinate per descrivere forme più complesse. Tali filtri comportano un elevato numero di parametri e un grosso problema di progettazione di reti profonde su come essere in grado di descrivere forme complesse e di riuscire a ridurre il numero di parametri.

Poiché i pixel adiacenti sono fortemente correlati (specialmente nei livelli più bassi), ha senso ridurre la dimensione dell'output effettuando il sottocampionamento (raggruppamento) della risposta del filtro. Più i due pixel sono separati l'uno dall'altro, meno sono correlati. Pertanto, un grande passo avanti nel livello di pooling comporta un'elevata perdita di informazioni. Parlando liberamente. Una falcata di 2 e una dimensione del kernel 2x2 per il livello di pooling sono una scelta comune.

Un approccio più sofisticato è la rete Inception ( approfondire le convoluzioni ) in cui l'idea è quella di aumentare la scarsità ma essere comunque in grado di ottenere una maggiore precisione, scambiando il numero di parametri in uno strato convoluzionale contro un modulo di avvio per reti più profonde.

Un bel documento che fornisce suggerimenti sulle architetture attuali e sul ruolo di alcune dimensioni progettuali in modo strutturato e sistematico è SqueezeNet: precisione a livello di AlexNet con 50 parametri in meno e dimensioni del modello <0,5 MB . Si basa su idee introdotte nei modelli precedentemente menzionati.


1
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.