Blog.

LeNet-5 CNN Networks – Deep Learning Engineer Italia


Autore
Andrea Provino
Data
Tempo di lettura
2 minuti
Categoria
AI, machine-learning

lenet-5-max-pooling-deep-learning-softmax-convolution-cnn-networks-data-science

LeNet-5 è un’architettura di rete neurale convoluzionale ampiamente impiegata nel riconoscimento delle cifre: una delle 4 CNN Networks che esploreremo.

Un Deep Learning Engineer mastica backpropagation e cost function a colazione, progettando CNN Networks a colpo d’occhio.

Bene, caro il mio marinaio.

Sotto l’egida del vento di levante, e col rutilante Sole all’orizzonte, prepariamoci a salpare.

Parole altisonanti a parte, vediamo 4 architetture di CNN.

LeNet-5

Questa architettura è tra le più conosciute nell’ambito delle CNN.

Fu creata da Yann LeCun nel 1998 e da allora ampiamente usata nel riconoscimento della scrittura (hand-written digits recognition), con molteplici applicazioni sul MNIST.

Qui possiamo leggere la pubblicazione ufficiale.

L‘input layer di dimensioni 32x32x1 supporta immagini in scala grigi (greyscale image)

LeNet-5 Architecture

A seguire troviamo sei filtri convoluzionali 5×5 con uno stride di 1.

Risultato?

Il sample finale avrà dimensioni 28x28x6 con stride 1 e padding 0.

Per calcolare l’output possiamo servirci di questa relativamente semplice formula:

(n +2pf )/ s +1 * (n +2pf )/ s +1 * Nc

Nc: è il numero di canali
p: padding (nel caso di LeNet-5 questo valore è nullo)
s: stride
f: la dimensione del filtro

Proseguiamo: ora LeNet-5 prevede un filtro di Pooling.

Qui, occorre una precisazione.

20 anni fa i filtri di average pooling erano molto più comuni dei max pooling.

Volendo costruire una variante moderna, potremmo preferire il secondo filtro al primo.

Mantenendo il riferimento al’immagine di cui sopra, l’average pooling conduce a un volume di 14x14x6.

La formula per il calcolo delle nuove dimensioni è la medesima.

Ora applichiamo un altro filtro convoluzionale. Questa volta sono 16 i filtri: stessa dimensione, 5×5.

Il volume che otteniamo e 10x10x16.

Per concludere applichiamo un ultimo filtro di average pooling per ridurre le dimensioni a 5x5x16, che si traducono in 400 parametri.

Ecco infine la nostra deep neural network composta da due fully connected layer.

Il primo, collega ognuno dei 400 nodi a ciascuno dei 120 neuroni.

Il secondo, collega ciascuno dei 120 successivi nodi agli 84 neuroni dell’output layer.

Chiude le danze una funzione di attivazione non lineare: softmax.

La pubblicazione prevedeva una funzione RBF, caduta però in disuso.

Ecco le nostre previsioni di probabilità per ognuna delle 10 variabili, una per ciascuna cifra.

Qualche considerazione rapida sul processo.

L’immagine iniziale a canale unico di 32x32x1 è stata ridotta a 5x5x16, con un elevato aumento di canali: da 1 a 16.

Per il momento è tutto!

Un caldo abbraccio, Andrea.

Taggeddeep learning


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum