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
- Diciamo kernel 3x3, ma come menzionato prima, il canale del kernel corrisponde al canale dell’input.
- Quindi usiamo un kernel (3,3,128).
- La convoluzione del kernel con i canali allineati all’input produce sempre 1 canale.
- L’output ha 64 canali.
- 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