Che cos'è una rete neurale convoluzionale?

Una rete neurale convoluzionale (CNN, convolutional neural network) è un tipo di rete neurale artificiale progettata specificamente per l'analisi dei dati visivi. Ispirata al nostro sistema visivo, una CNN impara a "vedere" il mondo identificando i pattern nei dati visivi. Ma il suo punto di forza non è solo la visione delle immagini, bensì il riconoscimento di pattern in qualsiasi dato con una struttura a griglia, dagli spettrogrammi audio alle scansioni mediche 3D.

Come funzionano le reti neurali convoluzionali?

Le CNN elaborano le immagini di input passandole attraverso più strati. I primi strati identificano caratteristiche semplici come bordi e linee, mentre gli strati più profondi riconoscono pattern, forme e, infine, oggetti interi più complessi. Questo metodo di estrazione delle caratteristiche in modo gerarchico è ciò che rende le CNN così efficaci per il riconoscimento delle immagini e altre attività di visione artificiale.

Gli strati della CNN

Immagina una CNN come un team di specialisti che analizzano una fotografia per identificare un oggetto. Ogni strato ha un compito specifico in una catena di montaggio di riconoscimento.

1. Strato convoluzionale: gli scanner di caratteristiche

Questo è il primo gruppo di specialisti. A ognuno viene assegnata una singola e semplice caratteristica da cercare, come un bordo dritto, una curva o un colore specifico. Fanno scorrere una piccola lente d'ingrandimento (il "filtro") sull'intera immagine e prendono nota ogni volta che trovano la caratteristica assegnata. In questo modo viene creato un insieme di "mappe di caratteristiche", che sono essenzialmente mappe di dove si trovano le caratteristiche di base.

2. Strato di attivazione (ReLU): il filtro di significatività

Dopo la scansione iniziale, un amministratore (la funzione ReLU) esamina le mappe delle caratteristiche. Il suo compito è semplice: mantenere i segnali forti e scartare quelli deboli. Introduce la non linearità, garantendo che solo le caratteristiche più importanti e chiaramente identificate vengano trasmesse per ulteriori analisi. In questo modo si evita che il rumore disturbi il processo.

3. Strato di pooling: i riassuntori

Lo strato di pooling agisce come un responsabile regionale. Invece di esaminare ogni singolo dettaglio, il livello di pooling riassume i risultati di piccole porzioni della mappa delle caratteristiche. Ad esempio, uno strato di "max pooling" esaminerà un'area 2x2 di una mappa di caratteristiche e segnalerà solo il segnale più forte. In questo modo si riduce la dimensione complessiva dei dati, rendendo la rete più efficiente e aiutandola a riconoscere un oggetto indipendentemente da dove appare nell'inquadratura (un concetto chiamato "invarianza traslazionale").

4. Strato completamente connesso: il rilevatore principale

Dopo diversi cicli di scansione e riepilogo, i report finali sulle funzionalità vengono consegnati al rilevatore principale. Questo strato esamina la combinazione di alto livello delle caratteristiche ("ha i baffi", "ha le orecchie a punta", "ha la pelliccia") e prende la decisione finale. Collega tutti i risultati riassunti per trarre una conclusione, ad esempio: "In base a tutte le prove, l'oggetto in questa immagine è un gatto". Il risultato viene quindi passato a uno strato di output finale (come softmax) che fornisce una probabilità per ogni possibile classificazione.

CNN e reti neurali tradizionali a confronto

Sebbene sia le reti neurali convoluzionali che quelle tradizionali siano progettate per elaborare i dati ed effettuare previsioni, differiscono in modo significativo per architettura, applicazione e altre caratteristiche chiave.

Funzionalità


CNN (Convolutional Neural Network)

Reti neurali tradizionali

Architettura di base


Composta da strati convoluzionali, strati di attivazione, strati di pooling e strati completamente connessi.

È costituito principalmente da strati completamente connessi (densi).

Tipo di dati di input

Più adatta per dati strutturati simili a griglie (ad esempio, immagini, video, sequenze 1D come il testo).

Flessibile per vari tipi di dati, in genere dati tabulari o vettori appiattiti.

Estrazione delle caratteristiche

Apprende automaticamente le caratteristiche gerarchiche (bordi, texture, forme) attraverso i filtri.

Apprende le caratteristiche attraverso connessioni dirette, spesso meno efficaci nell'apprendimento delle caratteristiche spaziali con feature learning.

Relazioni spaziali

Preserva e sfrutta esplicitamente le relazioni spaziali (ad esempio, l'adiacenza dei pixel nelle immagini).

Tratta ogni caratteristica di input in modo indipendente; le relazioni spaziali vengono perse se l'input viene appiattito.

Condivisione dei parametri


Sì, i pesi (filtri/kernel) sono condivisi tra diverse posizioni nell'input.

No, ogni connessione ha un peso univoco.

Numero di parametri

Generalmente meno parametri grazie alla condivisione dei pesi e al pooling, soprattutto per input ad alta dimensionalità come le immagini.

Può avere un numero molto elevato di parametri, soprattutto per gli input ad alta dimensionalità.

Invarianza traslazionale

Intrinsecamente efficace nel riconoscere le caratteristiche indipendentemente dalla loro posizione esatta nell'input.

Più sensibile alle modifiche delle caratteristiche di input, a meno che non sia addestrato esplicitamente su dati aumentati.

Efficienza computazionale

Più efficiente per i dati immagine/spaziali grazie alla riduzione dei parametri e alle operazioni specializzate.

Può essere costoso dal punto di vista computazionale per input ad alta dimensionalità a causa delle connessioni dense.

Applicazioni principali

Classificazione delle immagini, rilevamento degli oggetti, segmentazione delle immagini, analisi video, imaging medico, alcune attività di NLP.

Classificazione/regressione dei dati tabulari, riconoscimento semplice di forme, approssimazione di funzioni, un po' di NLP.

Principali vantaggi

Eccellente per i dati visivi, apprende caratteristiche gerarchiche, invarianza traslazionale, parametri ridotti, meno soggetta all'overfitting sui dati delle immagini.

Flessibile per vari tipi di dati, adatto per dati tabulari non spaziali, più semplice da comprendere concettualmente per le attività di base.

Limitazioni principali

La progettazione può essere complessa, in genere richiede set di dati di grandi dimensioni per l'addestramento, meno efficace per i dati tabulari non spaziali.

Non ideale per dati spaziali ad alta dimensionalità, ignora le relazioni spaziali, è soggetto a overfitting con molti parametri su input complessi.

Funzionalità


CNN (Convolutional Neural Network)

Reti neurali tradizionali

Architettura di base


Composta da strati convoluzionali, strati di attivazione, strati di pooling e strati completamente connessi.

È costituito principalmente da strati completamente connessi (densi).

Tipo di dati di input

Più adatta per dati strutturati simili a griglie (ad esempio, immagini, video, sequenze 1D come il testo).

Flessibile per vari tipi di dati, in genere dati tabulari o vettori appiattiti.

Estrazione delle caratteristiche

Apprende automaticamente le caratteristiche gerarchiche (bordi, texture, forme) attraverso i filtri.

Apprende le caratteristiche attraverso connessioni dirette, spesso meno efficaci nell'apprendimento delle caratteristiche spaziali con feature learning.

Relazioni spaziali

Preserva e sfrutta esplicitamente le relazioni spaziali (ad esempio, l'adiacenza dei pixel nelle immagini).

Tratta ogni caratteristica di input in modo indipendente; le relazioni spaziali vengono perse se l'input viene appiattito.

Condivisione dei parametri


Sì, i pesi (filtri/kernel) sono condivisi tra diverse posizioni nell'input.

No, ogni connessione ha un peso univoco.

Numero di parametri

Generalmente meno parametri grazie alla condivisione dei pesi e al pooling, soprattutto per input ad alta dimensionalità come le immagini.

Può avere un numero molto elevato di parametri, soprattutto per gli input ad alta dimensionalità.

Invarianza traslazionale

Intrinsecamente efficace nel riconoscere le caratteristiche indipendentemente dalla loro posizione esatta nell'input.

Più sensibile alle modifiche delle caratteristiche di input, a meno che non sia addestrato esplicitamente su dati aumentati.

Efficienza computazionale

Più efficiente per i dati immagine/spaziali grazie alla riduzione dei parametri e alle operazioni specializzate.

Può essere costoso dal punto di vista computazionale per input ad alta dimensionalità a causa delle connessioni dense.

Applicazioni principali

Classificazione delle immagini, rilevamento degli oggetti, segmentazione delle immagini, analisi video, imaging medico, alcune attività di NLP.

Classificazione/regressione dei dati tabulari, riconoscimento semplice di forme, approssimazione di funzioni, un po' di NLP.

Principali vantaggi

Eccellente per i dati visivi, apprende caratteristiche gerarchiche, invarianza traslazionale, parametri ridotti, meno soggetta all'overfitting sui dati delle immagini.

Flessibile per vari tipi di dati, adatto per dati tabulari non spaziali, più semplice da comprendere concettualmente per le attività di base.

Limitazioni principali

La progettazione può essere complessa, in genere richiede set di dati di grandi dimensioni per l'addestramento, meno efficace per i dati tabulari non spaziali.

Non ideale per dati spaziali ad alta dimensionalità, ignora le relazioni spaziali, è soggetto a overfitting con molti parametri su input complessi.

CNN e visione artificiale

Le CNN hanno trasformato la visione artificiale, consentendo alle macchine di "vedere" e comprendere le immagini in modo accurato. La loro capacità di apprendere rappresentazioni gerarchiche di dati visivi ha portato a importanti progressi in varie attività di visione artificiale, tra cui:

Classificazione di immagini

La classificazione delle immagini, un'attività fondamentale della visione artificiale, prevede l'etichettatura di un'intera immagine in base al suo contenuto. Le CNN eccellono in questo, ottenendo risultati di alto livello su set di dati come ImageNet. La loro capacità di apprendere caratteristiche complesse da dati di pixel non elaborati le rende molto efficaci nel riconoscere oggetti, scene e persino emozioni nelle immagini.

Rilevamento di oggetti

Il rilevamento di oggetti va oltre la classificazione, identificando gli oggetti in un'immagine e individuandone le posizioni. Le CNN sono fondamentali negli algoritmi di rilevamento degli oggetti, consentendo ad applicazioni come le auto a guida autonoma di percepire il loro ambiente, ai robot di navigare in ambienti complessi e ai sistemi di sicurezza di rilevare le minacce.

Applicazioni delle CNN

Le applicazioni delle CNN vanno ben oltre le attività relative alle immagini. La loro capacità di apprendere gerarchie spaziali di caratteristiche le rende preziose in vari ambiti, tra cui:

  • Elaborazione del linguaggio naturale: le CNN possono analizzare il testo trattando le frasi come "immagini" unidimensionali in cui ogni parola o carattere è una caratteristica. Ciò consente di identificare pattern e relazioni all'interno dei dati di testo, rendendoli utili per attività come l'analisi del sentiment (classificazione del testo come positivo, negativo o neutro) e la traduzione linguistica (mappatura di frasi da una lingua all'altra).
  • Analisi delle immagini mediche: nel settore sanitario, le CNN possono essere addestrate su grandi set di dati di immagini mediche (radiografie, risonanze magnetiche, TAC) per rilevare modelli e anomalie sottili indicativi di malattie. Questo può aiutare i radiologi in attività come il rilevamento di tumori nelle mammografie, l'identificazione di fratture nelle radiografie o la segmentazione di organi nelle TAC, migliorando l'accuratezza e l'efficienza diagnostica e aiutando nella pianificazione di trattamenti personalizzati.
  • Scoperta di farmaci: le CNN possono potenzialmente accelerare la scoperta di farmaci analizzando le strutture molecolari. Apprendendo le relazioni tra la struttura di una molecola e le sue proprietà, le CNN possono prevedere l'efficacia, la tossicità e altre caratteristiche di potenziali farmaci candidati. Questo screening "in silico" di vaste librerie chimiche può ridurre i tempi e i costi associati ai metodi tradizionali di scoperta di farmaci.
  • Modellazione finanziaria: grazie alla loro capacità di analizzare dati sequenziali, le CNN possono essere adatte anche per usi finanziari. Trattando i dati finanziari delle serie temporali (prezzi delle azioni, tassi di cambio, indicatori economici) come "immagini" unidimensionali, le CNN possono identificare tendenze, pattern e anomalie che i metodi statistici tradizionali potrebbero non rilevare. Ciò può aiutare gli istituti finanziari a prendere decisioni di investimento più informate, prevedere la volatilità del mercato e gestire il rischio in modo più efficace.

Utilizzo delle CNN con Google Cloud

Google Cloud fornisce un ecosistema completo per l'applicazione delle CNN, sia che tu abbia bisogno di una soluzione pronta all'uso che di una piattaforma potente per creare la tua.

Per funzionalità di visione preaddestrate: se devi aggiungere funzionalità di visione avanzate alla tua app senza creare un modello da zero, servizi come Vision AI forniscono l'accesso a modelli basati su CNN tramite una semplice API per attività come il rilevamento di oggetti e il riconoscimento del testo. Allo stesso modo, Document AI utilizza le CNN per comprendere ed estrarre dati da documenti complessi.

Per la creazione, l'addestramento e il deployment di modelli personalizzati: quando devi addestrare una CNN sui tuoi dati, Vertex AI fornisce una piattaforma unificata. Gestisce l'intero ciclo di vita ML, dalla preparazione dei dati e l'addestramento al deployment e al monitoraggio dei tuoi modelli CNN personalizzati su larga scala.

Per accelerare l'addestramento ad alte prestazioni: l'addestramento di CNN di grandi dimensioni e all'avanguardia richiede un'elevata intensità di calcolo. I Cloud TPU sono acceleratori hardware progettati su misura da Google appositamente per velocizzare l'addestramento dei modelli di deep learning, consentendoti di innovare più rapidamente.

Fai il prossimo passo

Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.

Google Cloud