Skip to main content
Overview

Convoluzione

August 11, 2021
2 min read

Convoluzione

Nelle formule

Ruolo

Permette di estrarre le feature desiderate.

Ad esempio, supponiamo di usare un kernel (3,3) dove tutti i valori sono 1/9. Diventa un’operazione di convoluzione che calcola la media.

Tensore

Consideriamo un’immagine RGB con 3 canali. Per applicare un filtro (5,5) a questa immagine, si pensi ad applicare un filtro con 3 canali.


Ad esempio, applicando 4 filtri (5,5,3) a un’immagine RGB come sopra, si producono 4 feature (28,28) ciascuna con 1 canale.

Stack di convoluzioni

Come in MLP, i layer vengono impilati passando attraverso una funzione non lineare.

Convoluzione e reti neurali

La figura sopra mostra la CNN più classica.

Layer di convoluzione e pooling: estrazione delle feature Fully connected layer: processo decisionale (es. classificazione, regressione)

La tendenza attuale è ridurre i fully connected layer. Perché ridurre il numero di parametri facilita il training e migliora le performance di generalizzazione.

Stride

Il kernel si sposta della quantità dello stride durante la convoluzione. Essendo 1D, anche il valore dello stride è 1D.

Padding

La convoluzione non può essere eseguita ai bordi. Quindi si riempiono con valori arbitrari e si esegue la convoluzione sui bordi dell’immagine. es., zero padding = riempire l’area di padding con 0.

Con il padding, le dimensioni spaziali di input e output possono corrispondere.

undefined

Conteggio dei parametri

Parametri di un’operazione di convoluzione = parametri del kernel

Padding(1), Stride(1), kernel 3x3

  1. Diciamo kernel 3x3, ma come menzionato prima, il canale del kernel corrisponde al canale dell’input.
  2. Quindi usiamo un kernel (3,3,128).
  3. La convoluzione del kernel con i canali allineati all’input produce sempre 1 canale.
  4. L’output ha 64 canali.
  5. Quindi devono esistere 64 kernel (3,3,128).

Avere un senso approssimativo del numero di parametri attraverso questo processo è importante!

Alexnet

Il numero di parametri tra layer di convoluzione e layer dense è vastamente diverso! Le ragioni:

  • La convoluzione condivide gli stessi pesi attraverso il kernel.
    • Lo stesso kernel viene usato indipendentemente dalla posizione dell’elemento nell’immagine di input.
  • I layer dense hanno pesi diversi per ogni nodo, come sappiamo.

Convoluzione 1x1

La convoluzione 1x1 non può vedere una regione. Ovviamente — è un kernel che ripete la convoluzione solo su un’area 1x1.

Ma può servire ai seguenti scopi:

  • Riduzione dei canali (dimensioni)
  • Riduzione attesa dei parametri quando la profondità aumenta
  • es., bottleneck architecture
Loading comments...