Cos’è una rete neurale convoluzionale (CNN)?

Le reti neurali convoluzionali (anche conosciute come ConvNets o CNN, dall’inglese “Convolutional Neural network”) sono reti neurali artificiali i cui strati o livelli (convolutional layer) vengono applicati ai dati di input per estrarre le caratteristiche e identificare un oggetto. Risultano pertanto una componente importante dell’apprendimento profondo (deep learning).

Cosa sono le reti neurali convoluzionali (CNN)?

Le reti neurali convoluzionali sono tipi specializzati di reti neurali artificiali particolarmente efficaci nell’elaborazione e nell’analisi di dati visivi come immagini e video. Queste reti svolgono un ruolo fondamentale nell’apprendimento automatico (machine learning) e in particolare nell’apprendimento profondo (deep learning).

Le CNN sono costituite da strati di nodi che contengono uno strato di input, uno o più strati nascosti e uno strato di output. I singoli nodi sono connessi fra loro e hanno un peso e una soglia associati. Non appena l’output di un singolo nodo supera il valore di soglia specificato, viene attivato e invia i dati allo strato successivo della rete.

Esistono diversi tipi di reti neurali, che vengono utilizzati per diverse applicazioni e tipi di dati. Ad esempio, le reti neurali ricorrenti sono spesso usate per l’elaborazione del linguaggio naturale e il riconoscimento vocale, mentre le reti neurali convoluzionali (CNN) sono più comunemente utilizzate per compiti di classificazione e di computer vision. La loro capacità di riconoscere modelli complessi all’interno di dati le rende uno strumento importante dell’intelligenza artificiale.

Struttura e organizzazione delle reti neurali convoluzionali

Le CNN si distinguono dalle altre reti neurali per le loro prestazioni superiori nell’elaborazione di immagini, input vocali e segnali audio. Contengono tre tipi di strati principali e con ognuno di essi la rete neurale diventa più complessa, identificando, ad esempio, parti più grandi di un’immagine.

Compatibilità di un’immagine con l’algoritmo delle reti neurali convoluzionali

Un’immagine viene decifrata dai computer come una combinazione di numeri e rappresentata attraverso i valori dei suoi pixel. L’algoritmo delle CNN funziona allo stesso modo: un’immagine in bianco e nero di lunghezza m e larghezza n viene rappresentata come un array bidimensionale di dimensioni mXn; nel caso di un’immagine colorata delle medesime dimensioni, viene utilizzato un array tridimensionale. Ogni cella di questo array contiene il valore del pixel corrispondente e ogni immagine è rappresentata dai valori dei pixel corrispondenti in tre canali diversi, ciascuno appartenente a un canale rosso, blu e verde.

In seguito vengono identificate le caratteristiche più importanti dell’immagine. Queste vengono estratte con un metodo noto come convoluzione. Si tratta di un’operazione in cui una funzione modifica la forma di un’altra funzione. Le convoluzioni nelle immagini sono generalmente utilizzate per vari scopi, come aumentare la nitidezza dell’immagine o migliorarla. Nelle CNN, invece, la convoluzione viene usata per estrarre le caratteristiche salienti delle immagini.

Per estrarre caratteristiche importanti da un’immagine si utilizza un filtro (o kernel), ovvero un array che rappresenta la caratteristica da estrarre. Il filtro viene posizionato sulla matrice di input e dà come risultato una matrice bidimensionale che contiene la correlazione dell’immagine rispetto al filtro utilizzato. La matrice di output è chiamata mappa delle caratteristiche (feature map).

Caratteristiche dei diversi strati di convoluzione

Durante il processo di convoluzione, il campo di input viene ridotto mantenendo la correlazione spaziale tra i pixel grazie all’applicazione di filtri. Di seguito vengono presentati i tre principali tipi di strati di convoluzione:

  • Convolutional layer (strato convoluzionale): è il primo strato di una rete convoluzionale. Utilizza filtri (piccole matrici di pesi) che scorrono sull’immagine per rilevare caratteristiche locali come bordi, angoli e texture. Ogni filtro crea una mappa delle caratteristiche che evidenzia modelli specifici. Il primo strato convoluzionale può essere seguito da un ulteriore strato convoluzionale, rendendo la struttura della CNN gerarchica, in quanto gli strati successivi possono vedere i pixel all’interno dei campi ricettivi degli strati precedenti.
  • Pooling layer (strato di pooling): riduce le dimensioni delle mappe delle caratteristiche riassumendo le aree locali e scartando le informazioni irrilevanti. In questo modo si riduce la complessità computazionale e si conservano le informazioni più importanti.
  • Fully connected layer (strato completamente connesso): questo strato collega tutti i neuroni tra loro, in modo simile a una rete neurale tradizionale. Viene utilizzato per la classificazione finale e combina le caratteristiche estratte in una decisione fino a identificare l’oggetto desiderato.
AI Model Hub
La tua piattaforma IA multimodale e sicura
  • Conformità al GDPR e hosting sicuro in Europa
  • Potenti modelli basati sull'intelligenza artificiale
  • Assenza di vendor lock-in grazie all'open source

Visualizzazione del processo di convoluzione

Prova a immaginare di stare cercando di determinare se una foto contiene un volto umano. Puoi immaginare il volto come una somma delle parti che lo compongono: due occhi, un naso, una bocca, due orecchie e così via. Il processo di convoluzione in questo caso avviene nel seguente modo:

  1. Primo strato convoluzionale: questo primo strato utilizza dei filtri per riconoscere le caratteristiche dei singoli pixel. Ad esempio, un filtro può riconoscere un contorno che potrebbe rappresentare il bordo di un occhio. Come già detto, le caratteristiche locali formano dei modelli che vengono registrati durante la convoluzione in una mappa di caratteristiche. In questo caso, la mappa di caratteristiche può rappresentare i bordi degli occhi, del naso e della bocca.
  2. Ulteriori strati di convoluzione: gli strati di convoluzione possono essere seguiti da ulteriori strati di convoluzione o di pooling. In questo modo, i singoli modelli combinati formano gradualmente un volto umano. I livelli di convoluzione successivi combinano le caratteristiche semplici in modelli più complessi. Ad esempio, i bordi e gli angoli potrebbero essere combinati per generare forme che rappresentano gli occhi. Questi strati vedono aree più ampie dell’immagine (campi recettivi) e quindi riconoscono strutture composite, le cosiddette gerarchie di caratteristiche, all’interno degli strati convoluzionali. Uno strato ulteriore potrebbe riconoscere che due occhi e una bocca in una certa disposizione formano un volto.
  3. Strato di pooling: questo strato riduce le dimensioni delle mappe di caratteristiche e astrae ulteriormente le caratteristiche. Le caratteristiche essenziali vengono mantenute e la quantità di dati da elaborare si riduce.
  4. Fully connected layer: infine, viene creato l’ultimo strato della rete neurale convoluzionale, lo strato completamente connesso. In questo caso, produrrà l’immagine di un volto umano che, grazie alla convoluzione, sarà chiaramente distinguibile da un altro volto.
Diagramma di una rete neurale convoluzionale
Le CNN estraggono automaticamente le caratteristiche rilevanti e identificano gli oggetti nelle immagini.

Inoltre, tecniche come il dropout e la regolarizzazione ottimizzano le reti evitando l’overfitting. Le funzioni di attivazione come il rettificatore (o ReLU: Rectified Linear Unit) garantiscono la non linearità e aiutano la rete a riconoscere modelli più complessi, non facendo eseguire a tutti i neuroni gli stessi calcoli. In aggiunta, la normalizzazione dei lotti stabilizza e accelera la formazione elaborando i dati in modo più uniforme.

Aree di applicazione delle reti neurali convoluzionali

Prima delle CNN, per identificare gli oggetti nelle immagini si utilizzavano metodi di estrazione delle caratteristiche manuali molto dispendiosi in termini di tempo. Le reti neurali convoluzionali offrono un approccio più scalabile alla classificazione delle immagini e al riconoscimento degli oggetti. Utilizzano i principi dell’algebra lineare, in particolare la moltiplicazione delle matrici, per riconoscere i modelli in un’immagine. Oggigiorno, le aree di applicazione delle CNN sono svariate e riguardano:

  • Il riconoscimento vocale e delle immagini: riconoscimento automatico di oggetti o persone in immagini e video, ad esempio per i servizi di tag delle foto negli smartphone, i sistemi di riconoscimento facciale o gli assistenti vocali come Siri o Alexa.
  • La diagnosi medica: analisi di immagini medicali grazie al riconoscimento delle immagini tramite IA per supportare la diagnosi, ad esempio immagini a raggi X, TAC e risonanze magnetiche.
  • Autovetture autonome: riconoscimento delle caratteristiche della strada e degli ostacoli, ad esempio per le auto a guida autonoma.
  • Social media: le CNN vengono utilizzate anche in connessione con il text mining per moderare automaticamente i contenuti e creare pubblicità personalizzata.
  • Marketing e vendita al dettaglio: ad esempio, ricerca visiva dei prodotti e posizionamento degli stessi grazie al data mining.
I software IA di IONOS
Scopri la potenza dell'intelligenza artificiale
  • Siti web in tempo record
  • Soluzioni IA per il tuo business
  • Risparmio di tempo e risultati eccellenti

Reti neurali convoluzionali: vantaggi e svantaggi

Le CNN sono in grado di estrarre automaticamente le caratteristiche rilevanti dai dati con un livello di precisione molto elevato. Tuttavia, un addestramento efficace delle CNN richiede notevoli risorse computazionali, in quanto per ottenere buoni risultati è necessario disporre di grandi quantità di dati etichettati e di GPU potenti.

Vantaggi Svantaggi
Estrazione automatica delle caratteristiche Sforzo computazionale elevato
Elevata precisione Necessità di grandi set di dati
In sintesi

Le CNN hanno rivoluzionato il campo dell’intelligenza artificiale e offrono immensi vantaggi in diversi campi. Gli sviluppi futuri, come i miglioramenti dell’hardware, i nuovi metodi di raccolta dei dati o le architetture avanzate come le reti a capsula, potrebbero consentire un’ulteriore ottimizzazione e integrazione in varie tecnologie, ampliando ulteriormente gli ambiti di applicazione delle CNN.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top