Le Convlutional Neural Network (CNN) sono reti neurali multi livello, simili al MultiLayer Perceptron, però con una struttura molto particolare, possedendo infatti almeno uno strato composto da strutture uguali ripetute ovvero repliche di neuroni artificiali che condividono tra loro i pesi: questi strati sono chiamati strati convolutivi (convolutional layer).
La quantità scalare di ingresso della funzione di attivazione dipende da un kernel invariato rispetto alla traslazione
![]() |
(4.89) |
La convoluzione può essere applicata con stride diversi da 1: si può ottenere cosı un layer di attivazione sottocampionato rispetto all'ingresso. Visto che il kernel convolutivo, valutando solo i punti dell'immagine, tenderebbe man mano a ridurne la dimensione può essere aggiunto un padding per mantenere la dimensione costante.
Il valore in uscita dallo stadio convolutivo (activation maps) viene trasformato attraverso la funzione di attivazione opportuna (normalmente una ReLU) e successivamente uno strato di pooling viene posizionato per ridurre la dimensione del problema. Il max-pooling è normalmente utilizzato, mentre l'average-pooling o L2-norm pooling erano usati nel passato.
Le reti neurali convolutive sono state disegnate per trarre beneficio da ingressi di tipo bidimensionale multicanale.
Una CNN prende in genere come ingresso un tensore di ordine 3 o 4: un ingresso molto comune per esempio è una immagine e 3 canali (R,G,B per esempio) che è un tensore di ordine 3.
Ogni strato convolutivo è formato da un numero
di differenti kernel in modo da ottenere da ogni strato un immagine
.
L'architettura di una rete di Addestramento Profondo (Deep Neural Network DNN) consiste in strati (o passi step) differenti che possono essere: strato convolutivi C, strato di pooling S, strato di normalizzazione, uno strato pienamente connesso (un perceptrone), una funzione di perdita, etc etc. All'ultimo stadio (il “loss layer”), di fatto una rappresentazione ridotta dell'immagine di ingresso dove però verrà conservata la maggior parte dell'informazione utile, viene applicato un metodo di classificazione tradizionale (MLP, AdaBoost o SVM).
L'addestramento delle DNN si attua normalmente attraverso le tecniche di discesa stocastica del gradiente (sezione 3.3.3).
Paolo medici