Come funzionano le architetture di collo di bottiglia nelle reti neurali?


21

Definiamo un'architettura a collo di bottiglia come il tipo trovato nel documento ResNet in cui [due strati conv. 3x3] sono sostituiti da [un conv. 1x1, un conv. 3x3 e un altro livello conv. 1x1].inserisci qui la descrizione dell'immagine

Capisco che gli strati conv di 1x1 sono usati come una forma di riduzione dimensionale (e restauro), che è spiegata in un altro post . Tuttavia, non sono chiaro il motivo per cui questa struttura sia efficace quanto il layout originale.

Alcune buone spiegazioni potrebbero includere: quale lunghezza del passo viene utilizzata e a quali livelli? Quali sono le dimensioni di input e output di esempio di ciascun modulo? Come sono rappresentate le mappe delle caratteristiche 56x56 nel diagramma sopra? Il 64-d fa riferimento al numero di filtri, perché differisce dai filtri 256-d? Quanti pesi o FLOP vengono utilizzati per ogni strato?

Ogni discussione è molto apprezzata!


Penso che possa aiutare con la generalizzazione e la prevenzione di un eccesso di adattamento. Ma è solo un vago ricordo.
Chris,

Risposte:


5

L'architettura del collo di bottiglia viene utilizzata in reti molto profonde a causa di considerazioni computazionali.

Per rispondere alle tue domande:

  1. Le mappe delle caratteristiche 56x56 non sono rappresentate nell'immagine sopra. Questo blocco è preso da un ResNet con dimensioni di ingresso 224x224. 56x56 è la versione downsampled dell'input in alcuni layer intermedi.

  2. 64-d si riferisce al numero di mappe caratteristiche (filtri). L'architettura del collo di bottiglia ha 256-d, semplicemente perché è pensata per reti molto più profonde, che possibilmente prendono un'immagine di risoluzione più alta come input e quindi richiedono più mappe di funzionalità.

  3. Fare riferimento a questa figura per i parametri di ciascun livello di collo di bottiglia in ResNet 50.


1
Per i futuri lettori, dovrei menzionare che penso che le convs 1x1 abbiano passo = 1 e pad = 0, per preservare (LxA) di 56x56. Allo stesso modo, i convs 3x3 hanno falcata = 1 e pad = 1 per preservare anche le dimensioni.
derekchen14,

Ancora non capisco. Sembra che entrambi abbiano la stessa quantità di parametri, in quel caso non capisco ancora lo scopo del livello del collo di boot.
user570593

-1

Penso davvero che il secondo punto della risposta di Newstein sia fuorviante.

L' 64-do 256-ddovrebbe riferirsi al numero di canali della mappa delle caratteristiche di input, non al numero di mappe delle caratteristiche di input.

Considera il blocco "collo di bottiglia" (a destra della figura) nella domanda del PO come esempio:

  • 256-dsignifica che abbiamo una singola mappa delle caratteristiche di input con dimensione n x n x 256. Il 1x1, 64nei mezzi figura 64 filtri , ognuno è 1x1e ha 256canali ( 1x1x256).
  • Quindi qui possiamo vedere che la convoluzione di un singolo filtro ( 1x1x256) con una mappa delle caratteristiche di input ( n x n x 256) ci dà n x noutput.
  • Ora abbiamo 64filtri, quindi, impilando gli output, la dimensione della mappa delle caratteristiche di output è n x n x 64.

Modificato:

  • @Michael Chernick: Ok, allora questa sarebbe una risposta parziale, mentre cercavo di correggere la risposta accettata. Puoi prenderti il ​​tempo di guardare la mia risposta parziale e farmi sapere se ho capito bene?

Indipendentemente dalla reputazione, non dovresti usare le risposte per i commenti.
Michael R. Chernick,
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.