Deep Learning Demystified Svelare i segreti dell’architettura CNN con il dataset CIFAR-10

Deep Learning Demystified Unveiling the secrets of CNN architecture with CIFAR-10 dataset

Foto di Tobias Reich su Unsplash

Nel mondo in continua evoluzione dell’intelligenza artificiale, le Reti Neurali Convoluzionali (CNN) sono emerse come una tecnologia rivoluzionaria, che sta ridefinendo i campi della visione artificiale e del riconoscimento delle immagini. Grazie alla loro capacità di apprendere e identificare automaticamente i pattern nelle immagini, le CNN hanno aperto nuove possibilità in numerose applicazioni, dalle auto a guida autonoma alla diagnostica medica. In questo articolo, approfondiremo il funzionamento dell’architettura delle CNN e esploreremo le sue capacità utilizzando il popolare dataset CIFAR-10 come terreno di prova.

Qui ho l’obiettivo di applicare la teoria in modo pratico, quindi dopo aver completato la parte teorica, verrà mostrato un codice in TensorFlow in modo che tutti possano applicare praticamente la teoria.

Cos’è la convoluzione, in realtà?

Passo 1: Comprendere l’immagine e il filtro:

Iniziamo con un’immagine in scala di grigi, che può essere rappresentata come una griglia 2D di pixel, dove l’intensità di ogni pixel corrisponde al suo valore di scala di grigi. Per semplicità, prendiamo un’immagine in scala di grigi di piccole dimensioni 3×3:

Immagine:[ 1  2  3 ][ 4  5  6 ][ 7  8  9 ]

Ora, useremo un filtro 2×2:

Filtro:[ 1  0 ][ 0  1 ]

Passo 2: Applicare la convoluzione: Eseguiamo l’operazione di convoluzione posizionando il filtro 2×2 sull’angolo in alto a sinistra dell’immagine.

L’operazione di convoluzione è la seguente:

(1*1) + (2*0) +(4*0) + (5*1) = 1 + 0 + 0 + 5 = 6

Quindi, il valore del pixel in alto a sinistra nella mappa delle caratteristiche di output è 6.

Passo 3: Scorrimento del filtro: Successivamente, scorriamo il filtro 2×2 sull’intera immagine, eseguendo l’operazione di convoluzione per ogni posizione del filtro.

Mappa delle caratteristiche di output:[ 6  8 ][ 3  5 ]

Modalità di convoluzione?

Nel contesto dell’elaborazione delle immagini e dell’elaborazione dei segnali, la convoluzione può essere eseguita in diverse modalità, che determinano come viene gestita l’operazione di convoluzione ai bordi dei dati di input. Le modalità di convoluzione più comuni sono:

1. Modalità Same

Nella modalità “Same”, l’output della convoluzione ha le stesse dimensioni spaziali dell’input. Per ottenere ciò, di solito i dati di input vengono riempiti con zeri ai bordi prima di applicare l’operazione di convoluzione.

2. Modalità Valid

Nella modalità “Valid”, la convoluzione viene eseguita solo nelle posizioni in cui il filtro si sovrappone completamente ai dati di input. Ciò significa che il filtro non è centrato sui pixel di bordo dell’input e, di conseguenza, la mappa delle caratteristiche di output avrà dimensioni spaziali ridotte rispetto all’input.

3. Modalità Full

Nella modalità “Full”, al filtro è consentito estendersi oltre i bordi dell’input e l’operazione di convoluzione viene eseguita in ogni posizione possibile in cui il filtro e i dati di input si sovrappongono. Di conseguenza, la mappa delle caratteristiche di output avrà dimensioni spaziali più grandi rispetto all’input.

Qual è l’essenza del filtro nella convoluzione?

Abbiamo capito che la convoluzione non è altro che una semplice operazione di matrice tra i dati di input e il filtro. Ma qual è l’essenza del filtro nelle Reti Neurali Convoluzionali (CNN):-

L’essenza dei filtri nelle Reti Neurali Convoluzionali (CNN) risiede nella loro capacità di rilevare e apprendere caratteristiche significative dai dati di input, in particolare nel contesto dell’elaborazione delle immagini e delle attività di visione artificiale. I filtri, noti anche come kernel.

I filtri agiscono come rilevatori di pattern, aiutando la rete a identificare pattern, texture e strutture specifiche nei dati di input. Attraverso l’apprendimento di filtri appropriati durante il processo di addestramento, le CNN possono estrarre caratteristiche rilevanti e distintive dall’input grezzo, che sono cruciali per risolvere compiti complessi come il riconoscimento delle immagini, il rilevamento degli oggetti e la segmentazione.

Quindi puoi considerare il Filtro come i pesi che vengono aggiustati durante il processo di addestramento del Modello.

Da 2D a 3D: Decifrare il Codice della Dimensionalità nei Livelli Convoluzionali

Il problema con la Rete Neurale Convoluzionale è che la Convoluzione tra l’Immagine e il Kernel (Filtro) produce un output in 2D, a causa del quale si verifica un problema di incompatibilità poiché questi dati devono essere passati ad altri livelli che accettano un Input in 3D.

Quindi come si risolve questo problema?

Per risolvere questo problema, avviene una Convoluzione tra più filtri e il risultato viene impilato in modo che questo nuovo input in 3D possa essere alimentato al livello successivo.

Svelando le Complessità delle Reti Neurali Convoluzionali: Struttura e Funzionamento

Architettura:

Le CNN sono composte da distinti livelli, ognuno pensato per compiti specifici nel processo di riconoscimento visivo. I livelli essenziali di una CNN sono i seguenti:

a) Livello di Input:

Il primo livello della CNN è il livello di input, responsabile di accettare l’immagine di input grezza. Trasforma l’immagine in una matrice di valori dei pixel, in cui ogni pixel contiene informazioni sul colore (ad esempio, rosso, verde, blu).

b) Livello Convoluzionale:

Nel successivo livello convoluzionale, piccoli filtri, noti come kernel, vengono convoluti sull’immagine di input. Questi filtri identificano modelli locali, come bordi o texture, producendo mappe di caratteristiche. La profondità delle mappe di caratteristiche corrisponde al numero di filtri applicati.

c) Livello di Attivazione:

Completata la fase di convoluzione, la funzione di attivazione (ad esempio, ReLU) introduce la non linearità, potenziando la capacità della CNN di apprendere relazioni intricate tra le caratteristiche ed estrarre rappresentazioni astratte in modo efficace.

d) Livello di Pooling:

I livelli di pooling contribuiscono alla riduzione delle dimensioni spaziali nelle mappe di caratteristiche. Tecniche come il max-pooling e l’average-pooling selezionano rispettivamente i valori massimi e medi dai pixel adiacenti. Questa riduzione delle dimensioni riduce la complessità computazionale preservando al contempo caratteristiche vitali.

e) Livello Completamente Connesso:

L’ultima fase del processo di estrazione delle caratteristiche della CNN coinvolge i livelli completamente connessi. Questi livelli interpretano le caratteristiche apprese, funzionando in modo simile ai livelli di una rete neurale tradizionale. Svolgono un ruolo cruciale nel prendere decisioni di classificazione basate sulle caratteristiche estratte.

Funzionamento delle Reti Neurali Convoluzionali:

Il funzionamento di una CNN può essere compreso attraverso i seguenti passaggi:

Passaggio 1: Ricezione dell’Immagine di Input:

La CNN inizia ricevendo un’immagine di input, rappresentata come una matrice di valori dei pixel, con ogni pixel che codifica i canali di colore (ad esempio, rosso, verde, blu).

Passaggio 2: Estrazione delle Caratteristiche:

Spostandosi al livello convoluzionale, i filtri si muovono sull’immagine di input, creando mappe di caratteristiche che evidenziano modelli e caratteristiche significative all’interno dell’immagine.

Passaggio 3: Introduzione della Non Linearità:

Il livello di attivazione introduce la non linearità alle mappe di caratteristiche, consentendo alla CNN di apprendere relazioni complesse tra le caratteristiche.

Passaggio 4: Riduzione delle Dimensioni Spaziali:

I livelli di pooling riducono le dimensioni spaziali delle mappe di caratteristiche, riducendo il carico computazionale preservando al contempo informazioni importanti.

Passaggio 5: Classificazione:

Nella fase finale, i livelli completamente connessi elaborano le caratteristiche apprese e fanno previsioni di conseguenza. L’output della CNN rappresenta la sua decisione di classificazione.

PROBLEMA CON IL LIVELLO COMPLETAMENTE CONNESSO

Il livello completamente connesso riceve un input in 1D, ma l’output, come abbiamo discusso, è in 3D come abbiamo discusso in precedenza impilando le mappe di caratteristiche, quindi per convertirlo in 1D, utilizzeremo la funzione flatten() di TensorFlow.

Codice:-

Google Colaboratory

colab.research.google.com

Dato che l’articolo è già troppo lungo, ho incluso il codice nel link sopra indicato

SET DI DATI USATO CIFAR-10

CIFAR-10 – Riconoscimento di oggetti nelle immagini

Identifica l’oggetto di 60.000 immagini etichettate

www.kaggle.com

Inoltre, abbiamo utilizzato Normalizzazione Batch e Augmentation dei dati per migliorare i nostri risultati. Completerò questa parte in modo semplice e conciso.

Normalizzazione Batch

In parole semplici, è la conversione dei valori in un determinato intervallo, ad esempio da 0 a 1. Ad esempio, se ci sono 2 valori A=2 e B=2000, il modello di ML non li accetterà entrambi i valori dovrebbero essere simili. Questo è il concetto principale della normalizzazione e la normalizzazione batch consiste semplicemente nell’applicare la normalizzazione ai batch dopo la convoluzione.

Aumento dei dati

L’aumento dei dati è il processo di espandere artificialmente le dimensioni di un set di dati di allenamento applicando varie trasformazioni ai dati esistenti. Queste trasformazioni includono rotazione, ridimensionamento, ribaltamento, ritaglio e altre manipolazioni delle immagini. Aumentando i dati, il modello diventa più robusto e generalizza meglio a esempi non visti, portando a una migliore performance e riducendo l’overfitting.

Conclusioni

Le reti neurali convoluzionali hanno trasformato la visione artificiale e il riconoscimento delle immagini, sbloccando un enorme potenziale per applicazioni nel mondo reale. Una chiara comprensione della loro architettura e del loro funzionamento è essenziale per sfruttare le loro capacità nella creazione di sistemi di riconoscimento visivo precisi ed efficienti. Abbracciare il potere delle CNN ci permette di intraprendere un viaggio innovativo per svelare i misteri nascosti all’interno dei dati visivi.

YO WAI MO

GRAZIE PER AVERMI DEDICATO IL TUO PREZIOSO TEMPO PER LEGGERE IL MIO ARTICOLO