mozzicone Cosa sono le CNN (reti neurali convoluzionali)? - Unite.AI
Seguici sui social
Corso di perfezionamento sull'intelligenza artificiale:

AI 101

Cosa sono le CNN (reti neurali convoluzionali)?

mm
aggiornato on

Forse ti sei chiesto come Facebook o Instagram siano in grado di riconoscere automaticamente i volti in un'immagine o come Google ti consenta di cercare sul Web foto simili semplicemente caricando una tua foto. Queste funzionalità sono esempi di visione artificiale e sono alimentate da reti neurali convoluzionali (CNN). Ma cosa sono esattamente le reti neurali convoluzionali? Facciamo un tuffo nell'architettura di una CNN e capiamo come funzionano.

Cosa sono le reti neurali?

Prima di iniziare a parlare di reti neurali convoluzionali, prendiamoci un momento per definire una rete neurale regolare. C'è un altro articolo sull'argomento delle reti neurali disponibili, quindi non le approfondiremo qui. Tuttavia, per definirli brevemente, sono modelli computazionali ispirati al cervello umano. Una rete neurale opera raccogliendo dati e manipolandoli regolando i "pesi", che sono ipotesi su come le caratteristiche di input sono correlate tra loro e con la classe dell'oggetto. Man mano che la rete viene addestrata, i valori dei pesi vengono regolati e, si spera, convergeranno su pesi che catturino accuratamente le relazioni tra le caratteristiche.

Ecco come funziona una rete neurale feed-forward e le CNN sono composte da due metà: una rete neurale feed-forward e un gruppo di strati convoluzionali.

Cosa sono le reti neurali a convoluzione (CNN)?

Quali sono le “convoluzioni” che si verificano in una rete neurale convoluzionale? Una convoluzione è un'operazione matematica che crea un insieme di pesi, creando essenzialmente una rappresentazione di parti dell'immagine. Questo insieme di pesi viene chiamato un kernel o un filtro. Il filtro creato è più piccolo dell'intera immagine di input e copre solo una sottosezione dell'immagine. I valori nel filtro vengono moltiplicati per i valori nell'immagine. Il filtro viene quindi spostato per formare una rappresentazione di una nuova parte dell'immagine e il processo viene ripetuto finché l'intera immagine non è stata coperta.

Un altro modo di pensare a questo è immaginare un muro di mattoni, con i mattoni che rappresentano i pixel nell'immagine di input. Una "finestra" viene fatta scorrere avanti e indietro lungo il muro, che è il filtro. I mattoni che sono visibili attraverso la finestra sono i pixel il cui valore è moltiplicato per i valori all'interno del filtro. Per questo motivo, questo metodo di creazione dei pesi con un filtro viene spesso definito tecnica delle "finestre scorrevoli".

L'output dei filtri che vengono spostati attorno all'intera immagine di input è un array bidimensionale che rappresenta l'intera immagine. Questo array è chiamato a "mappa delle caratteristiche".

Perché le convoluzioni sono essenziali

Qual è lo scopo della creazione di convoluzioni comunque? Le convoluzioni sono necessarie perché una rete neurale deve essere in grado di interpretare i pixel in un'immagine come valori numerici. La funzione degli strati convoluzionali è convertire l'immagine in valori numerici che la rete neurale può interpretare e quindi estrarre modelli rilevanti. Il compito dei filtri nella rete convoluzionale è creare un array bidimensionale di valori che possono essere passati negli strati successivi di una rete neurale, quelli che apprenderanno i modelli nell'immagine.

Filtri e canali

Foto: cecebur via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

Le CNN non usano un solo filtro per apprendere modelli dalle immagini di input. Vengono utilizzati più filtri, poiché le diverse matrici create dai diversi filtri portano a una rappresentazione più complessa e ricca dell'immagine di input. I numeri comuni di filtri per le CNN sono 32, 64, 128 e 512. Più filtri ci sono, maggiori sono le opportunità che la CNN ha di esaminare i dati di input e imparare da essi.

Una CNN analizza le differenze nei valori dei pixel per determinare i bordi degli oggetti. In un'immagine in scala di grigi, la CNN guarderebbe solo le differenze in termini di bianco e nero, da chiaro a scuro. Quando le immagini sono immagini a colori, la CNN non solo tiene conto dell'oscurità e della luce, ma deve anche tenere conto dei tre diversi canali di colore: rosso, verde e blu. In questo caso, i filtri possiedono 3 canali, proprio come l'immagine stessa. Il numero di canali di un filtro è indicato come la sua profondità e il numero di canali nel filtro deve corrispondere al numero di canali nell'immagine.

Rete neurale convoluzionale (CNN) Architettura

Diamo un'occhiata all'architettura completa di una rete neurale convoluzionale. Uno strato convoluzionale si trova all'inizio di ogni rete convoluzionale, poiché è necessario trasformare i dati dell'immagine in array numerici. Tuttavia, i livelli convoluzionali possono anche venire dopo altri livelli convoluzionali, il che significa che questi livelli possono essere impilati uno sopra l'altro. Avere più strati convoluzionali significa che gli output di uno strato possono subire ulteriori convoluzioni ed essere raggruppati insieme in schemi pertinenti. In pratica, ciò significa che man mano che i dati dell'immagine procedono attraverso gli strati convoluzionali, la rete inizia a "riconoscere" caratteristiche più complesse dell'immagine.

I primi livelli di una ConvNet sono responsabili dell'estrazione delle caratteristiche di basso livello, come i pixel che compongono linee semplici. Gli strati successivi di ConvNet uniranno queste linee insieme in forme. Questo processo di passaggio dall'analisi superficiale all'analisi profonda continua finché ConvNet non riconosce forme complesse come animali, volti umani e automobili.

Dopo che i dati sono passati attraverso tutti gli strati convoluzionali, procedono nella parte densamente connessa della CNN. Gli strati densamente connessi sono l'aspetto di una tradizionale rete neurale feed-forward, una serie di nodi disposti in strati collegati tra loro. I dati procedono attraverso questi strati densamente connessi, che apprendono i modelli che sono stati estratti dagli strati convoluzionali, e così facendo la rete diventa in grado di riconoscere gli oggetti.