Architettura di base della CNN: spiegazione dei 5 livelli della rete neurale convoluzionale [US]

Pubblicato: 2023-04-16

Una CNN (Convolutional Neural Network) è un tipo di rete neurale di deep learning che utilizza una combinazione di livelli convoluzionali e di sottocampionamento per apprendere funzionalità da grandi insiemi di dati. È comunemente usato per il riconoscimento delle immagini e le attività di classificazione. I livelli convoluzionali applicano filtri ai dati di input e i livelli di sottocampionamento riducono la dimensione dei dati di input. L'architettura della rete neurale convoluzionale mira ad apprendere le funzionalità dai dati che possono essere utilizzate per classificare o rilevare oggetti nell'input. Di seguito sono spiegati i 5 strati della CNN .

Iscriviti al corso di machine learning delle migliori università del mondo. Guadagna programmi Master, Executive PGP o Advanced Certificate per accelerare la tua carriera.

Sommario

5 strati di una rete neurale convoluzionale

1. Strato convoluzionale:

Questo livello esegue l'operazione di convoluzione sui dati di input, che estrae varie caratteristiche dai dati.

I livelli convoluzionali in un'architettura del modello CNN sono uno dei componenti più vitali dei livelli CNN . Questi livelli sono responsabili dell'estrazione delle caratteristiche dai dati di input e costituiscono la base per l'ulteriore elaborazione e apprendimento.

Uno strato convoluzionale è costituito da un insieme di filtri (noti anche come kernel) applicati ai dati di input in modalità finestra scorrevole. Ogni filtro estrae un set specifico di funzionalità dai dati di input in base ai pesi ad esso associati.

Il numero di filtri utilizzati nel livello convoluzionale è uno degli iperparametri chiave nell'architettura. Viene determinato in base al tipo di dati elaborati e all'accuratezza desiderata del modello. In genere, più filtri si tradurranno in più funzionalità estratte dai dati di input, consentendo ad architetture di rete più complesse di comprendere meglio i dati.

L'operazione di convoluzione consiste nel moltiplicare ciascun filtro per i dati all'interno della finestra scorrevole e sommare i risultati. Questa operazione viene ripetuta per tutti i filtri, risultando in più mappe di caratteristiche per un singolo strato convoluzionale. Queste mappe delle caratteristiche vengono quindi utilizzate come input per i livelli successivi, consentendo alla rete di apprendere caratteristiche più complesse dai dati.

I livelli convoluzionali sono la base delle architetture di deep learning e vengono utilizzati in varie applicazioni, come il riconoscimento delle immagini, l'elaborazione del linguaggio naturale e il riconoscimento vocale. Estraendo le caratteristiche più critiche dai dati di input, i livelli convoluzionali consentono alla rete di apprendere modelli più complessi e fare previsioni migliori.

2. Livello di raggruppamento:

Questo livello esegue un'operazione di downsampling sulle mappe delle caratteristiche, che riduce la quantità di calcolo richiesta e aiuta anche a ridurre l'overfitting.

Il livello di pooling è una componente vitale dell'architettura della CNN . Viene in genere utilizzato per ridurre le dimensioni del volume di input durante l'estrazione di informazioni significative dai dati. I livelli di pooling vengono solitamente utilizzati nelle fasi successive di una CNN, consentendo alla rete di concentrarsi su caratteristiche più astratte di un'immagine o altro tipo di input. Il livello di raggruppamento funziona facendo scorrere una finestra sul volume di input e calcolando una statistica riassuntiva per i valori all'interno della finestra.

Le statistiche comuni includono l'acquisizione del massimo, della media o della somma dei valori all'interno della finestra. Ciò riduce le dimensioni del volume di input preservando le informazioni importanti sui dati.

Il livello di pooling viene anche tipicamente utilizzato per introdurre l'invarianza spaziale, il che significa che la rete produrrà lo stesso output indipendentemente dalla posizione dell'input all'interno dell'immagine. Ciò consente alla rete di ereditare caratteristiche più generali sull'immagine piuttosto che memorizzarne semplicemente la posizione esatta.

3. Livello di attivazione:

Questo livello aggiunge non linearità al modello applicando una funzione di attivazione non lineare come ReLU o tanh.

Uno strato di attivazione in una CNN è uno strato che funge da trasformazione non lineare sull'output dello strato convoluzionale. È un componente primario della rete, che consente di apprendere relazioni complesse tra i dati di input e output.

Il livello di attivazione può essere pensato come una funzione che prende l'output del livello convoluzionale e lo associa a un diverso insieme di valori. Ciò consente alla rete di apprendere schemi più complessi nei dati e di generalizzare meglio.

Le funzioni di attivazione comuni utilizzate nelle CNN includono ReLu (Rectified Linear Unit), sigmoid e tanh. Ogni funzione di attivazione ha uno scopo diverso e può essere utilizzata in diversi scenari.

ReLu è la funzione di attivazione più comunemente utilizzata nella maggior parte delle reti convoluzionali. È una trasformazione non lineare che emette 0 per tutti i valori negativi e lo stesso valore dell'input per tutti i valori positivi. Ciò consente alla rete di assimilare modelli più complessi nei dati.

Sigmoid è un'altra funzione di attivazione comunemente usata, che emette valori compresi tra 0 e 1 per ogni dato input. Questo aiuta la rete a comprendere relazioni complesse tra i dati di input e output, ma è più costoso dal punto di vista computazionale rispetto a ReLu.

Tanh è la funzione di attivazione meno comunemente usata, che emette valori compresi tra -1 e 1 per ogni dato input.

Il livello di attivazione è un componente essenziale della CNN, poiché previene la linearità e migliora la non linearità nell'output. La scelta della giusta funzione di attivazione per la rete è essenziale, poiché ogni funzione di attivazione ha uno scopo diverso e può essere utilizzata in diversi scenari. La selezione di una funzione di attivazione adatta può portare a migliori prestazioni della struttura CNN .

4. Livello completamente connesso:

Questo strato collega ogni neurone in uno strato a ogni neurone nello strato successivo, risultando in una rete completamente connessa.

Uno strato completamente connesso in una CNN è uno strato di neuroni connessi a ogni neurone nello strato precedente nella rete. Ciò è in contrasto con i livelli convoluzionali, in cui i neuroni sono collegati solo a un sottoinsieme di neuroni nel livello precedente sulla base di uno schema specifico.

Collegando ogni neurone in un livello a ogni neurone nel livello successivo, il livello completamente connesso consente di condividere le informazioni dal livello precedente attraverso l'intera rete, fornendo così l'opportunità per una comprensione più completa dei dati.

I livelli completamente connessi nella CNN vengono generalmente utilizzati verso la fine di un'architettura del modello CNN , dopo i livelli convoluzionali e i livelli di pooling, poiché aiutano a identificare modelli e correlazioni che i livelli convoluzionali potrebbero non aver riconosciuto.

Inoltre, vengono utilizzati livelli completamente connessi per generare un limite decisionale non lineare che può essere utilizzato per la classificazione. In conclusione, i livelli completamente connessi sono parte integrante di qualsiasi CNN e forniscono un potente strumento per identificare modelli e correlazioni nei dati.

5. Livello di output:

Questo è il livello finale della rete, che produce le etichette o i valori di output.

Il livello di output di una CNN è il livello finale della rete ed è responsabile della produzione dell'output. È il livello che prende le caratteristiche estratte dai livelli precedenti e le combina in un modo che gli consente di produrre l'output desiderato.

Un livello completamente connesso viene in genere utilizzato quando l'output è un singolo valore, ad esempio un problema di classificazione o di regressione. Un singolo strato di neuroni viene generalmente utilizzato quando il risultato è un vettore, come una distribuzione di probabilità.

Una funzione di attivazione softmax viene utilizzata quando l'output è una distribuzione di probabilità, ad esempio una distribuzione di probabilità su classi. Il livello di output di una CNN è anche responsabile dell'esecuzione dei calcoli necessari per ottenere l'output desiderato. Ciò include il completamento delle trasformazioni lineari o non lineari necessarie degli input per ricevere l'output richiesto.

Infine, il livello di output di una CNN può essere utilizzato anche per eseguire tecniche di regolarizzazione, come dropout o normalizzazione batch, per migliorare le prestazioni della rete.

Conclusione

L' architettura CNN è un potente strumento per le attività di elaborazione di immagini e video. È una combinazione di livelli convoluzionali, livelli di raggruppamento e livelli completamente connessi. Consente di estrarre caratteristiche da immagini, video e altre fonti di dati e può essere utilizzato per varie attività, come il riconoscimento di oggetti, la classificazione delle immagini e il riconoscimento facciale. Nel complesso, questo tipo di architettura è molto efficace se applicato a funzioni e set di dati adeguati.

Acquisisci competenze avanzate in ML e DL con upGrad

Con il programma di certificazione avanzata di upGrad in Machine Learning e Deep Learning offerto da IIIT-B, puoi acquisire competenze in Machine Learning e Deep Learning. Il programma copre i fondamenti di ML e DL, inclusi argomenti come l'apprendimento supervisionato e non supervisionato, la regressione lineare e logistica, le reti neurali convoluzionali, l'apprendimento per rinforzo e l'elaborazione del linguaggio naturale. Imparerai anche a creare e distribuire modelli ML e DL in Python e TensorFlow e acquisire esperienza pratica lavorando su progetti del mondo reale.

Questo corso include anche vantaggi come:

  • Tutoraggio e guida da parte di esperti del settore
  • Assistenza al collocamento per aiutarti a trovare il lavoro giusto
  • Un certificato avanzato da IIIT Bangalore

Puoi anche dare un'occhiata ai nostricorsi gratuitiofferti da upGrad in Management, Data Science, Machine Learning, Digital Marketing e Tecnologia.Tutti questi corsi hanno risorse di apprendimento di prim'ordine, lezioni dal vivo settimanali, incarichi di settore e un certificato di completamento del corso, il tutto gratuitamente!

Quali sono le librerie in Python che possono essere utilizzate per una CNN?

Le librerie in Python che possono essere utilizzate per una CNN includono TensorFlow, Keras, PyTorch, Caffe, Theano, Scikit-learn, MxNet, CNTK, OpenCV e SciPy. Queste librerie possono essere utilizzate per ottenere moduli predefiniti per creare applicazioni e implementare facilmente algoritmi CNN.

Quante dimensioni ci sono nei livelli CNN?

Le reti neurali convoluzionali contengono neuroni disposti in 3 dimensioni: larghezza, altezza e profondità. Questa struttura tridimensionale di neuroni è presente all'interno dello strato di convoluzione, che funziona attraverso il processo di calcolo con l'input dato per fornire l'output risultante.

Posso sviluppare una CNN in R?

Sì, le CNN possono essere sviluppate utilizzando sia Python che R. Con R che fornisce librerie eccezionalmente dettagliate, creare una rete neurale di convoluzione con R è piuttosto semplice.