QNA > C > Come Calcolare La Dimensione Dell'uscita Dello Strato Convoluzionale

Come calcolare la dimensione dell'uscita dello strato convoluzionale

In una rete neurale convoluzionale, ci sono 3 parametri principali che devono essere modificati per modificare il comportamento di uno strato convoluzionale. Questi parametri sono la dimensione del filtro, lo stride e lo zero padding. La dimensione della mappa delle caratteristiche di uscita generata dipende dai 3 importanti parametri di cui sopra.

La dimensione dei filtri gioca un ruolo importante nel trovare le caratteristiche chiave. È difficile selezionare una dimensione ottimale del filtro. Tutto dipende dall'applicazione. Un kernel di dimensioni più grandi può trascurare le caratteristiche e potrebbe saltare i dettagli essenziali nelle immagini, mentre un kernel di dimensioni più piccole potrebbe fornire più informazioni portando ad una maggiore confusione. Quindi c'è la necessità di determinare la dimensione più adatta del kernel/filtro. Metodi come le piramidi gaussiane (insieme di kernel di diverse dimensioni) possono essere usati per testare l'efficienza dell'estrazione delle caratteristiche e determinare la dimensione appropriata del kernel. Oltre alla dimensione del filtro, è molto importante capire e decidere la dimensione dello stride e del padding.

Stride controlla effettivamente il numero di passi in cui si muove il filtro sull'immagine di input. Quando lo stride è 1, muoviamo il filtro un pixel alla volta. Quando impostiamo lo stride a 2 o 3 (non comune), spostiamo il filtro di 2 o 3 pixel alla volta a seconda dello stride. Il valore dello stride controlla anche la dimensione del volume di uscita generato dallo strato convoluzionario. Più grande è lo stride, più piccola è la dimensione del volume di uscita. Per esempio se l'immagine di input è [math]7 volte 7[/math] e lo stride è 1, il volume di output sarà [math]5 volte 5[/math]. D'altra parte se aumentiamo lo stride a 2, il volume in uscita si riduce a [math]3 volte3. [Lo stride è normalmente impostato in modo che il volume di uscita sia un intero e non una frazione.

Il prossimo parametro importante è lo zero padding. Lo zero padding si riferisce al riempimento del volume di input con degli zeri intorno al bordo. Lo zero padding ci permette anche di controllare la dimensione spaziale del volume di uscita. Se non aggiungiamo nessuno zero padding e usiamo uno stride di 1, la dimensione spaziale del volume di uscita è ridotta. Tuttavia, con i primi strati convoluzionali nella rete vorremmo preservare la dimensione spaziale e assicurarci che il volume di input sia uguale al volume di output. Questo è il punto in cui lo zero padding è utile. Nell'esempio dell'immagine di ingresso [math]7\times7[/math], se usiamo uno stride di 1 e uno zero padding di 1, allora anche il volume di uscita è uguale a [math]7\times7.[/math]

La formula da usare per misurare il valore del padding per ottenere che la dimensione spaziale del volume di ingresso e di uscita sia la stessa con stride 1 è

[math]\frac{K-1}{2}[/math] dove K è la dimensione del filtro.

Infine, la formula per calcolare la dimensione dell'uscita è uguale a

[math]O=\frac{W-K+2P}{S}+1[/math]

dove O è l'altezza/lunghezza dell'uscita, W è l'altezza/lunghezza dell'ingresso, K è la dimensione del filtro, P è il padding, e S è lo stride.

Per esempio, se prendiamo S=1, P=2 con W=200 e K=5 e usando 40 filtri, allora la dimensione dell'output sarà [math]200\times200\times40 [/math]usando la formula di cui sopra.

D'altra parte se usiamo [math]S=1, P=1[/math], allora la dimensione dell'output sarebbe [math]198\times198\times40.[/math]

So che è una risposta lunga ma volevo solo chiarire come la dimensione del filtro, lo stride e il padding funzionano per controllare la dimensione dell'output in uno strato convoluzionale.

Di Nanette

Come registrare un'auto senza titolo in Georgia :: Perché i produttori di veicoli non fanno auto elettriche con una batteria rimovibile?
Link utili