Reti neurali convoluzionali
Sfondo nero e blu
Reti neurali convoluzionali

Scopri in che modo le reti neurali convoluzionali utilizzano dati tridimensionali per le attività di classificazione delle immagini e riconoscimento degli oggetti.


Cosa sono le reti neurali convoluzionali?

Per ripetere un concetto esplorato nell'articolo del Learn Hub sulle reti neurali, le reti neurali sono un sottoinsieme del machine learning e hanno un ruolo fondamentale negli algoritmi di deep learning. Sono costituiti da livelli di nodi, che contengono un livello di input, uno o più livelli nascosti e un livello di output. Ogni nodo si connette a un altro ed ha un peso e una soglia associati. Se l'output di qualsiasi singolo nodo è al di sopra del valore di soglia specificato, tale nodo viene attivato, inviando i dati al successivo livello della rete. In caso contrario, non viene passato alcun dato al livello successivo della rete.

Sebbene in quell'articolo ci siamo principalmente occupati delle reti feedforward, vi sono vari tipi di reti neurali, che vengono utilizzati per casi di utilizzo e tipi di dati differenti. Ad esempio, le reti neurali ricorrenti vengono comunemente utilizzate per l'elaborazione del linguaggio naturale (NLP, Natural Language Processing) e il riconoscimento vocale, mentre le reti neurali convoluzionali (ConvNet o CNN) sono più spesso utilizzate per attività di classificazione e visione artificiale. Prima delle CNN, per identificare gli oggetti nelle immagini era necessario impiegare metodi di estrazione delle funzioni manuali e impegnativi in termini di tempo. Tuttavia, ora le reti neurali convoluzionali offrono un approccio più scalabile alle attività di classificazione delle immagini e riconoscimento degli oggetti, sfruttando principi dell'algebra lineare, in particolare la moltiplicazione della matrice, per identificare i modelli all'interno di un'immagine. Ciò detto, possono risultare impegnative dal punto di vista dei calcoli e richiedono schede GPU (Graphical Processing Unit) per addestrare i modelli. 


Come funzionano le reti neurali convoluzionali?

Le reti neurali convoluzionali si distinguono dalle altri reti neurali per le loro prestazioni superiori con le immagini, input vocali e segnali audio. Contengono tre tipi di livello principali, ovvero:

  • Livello convoluzionale
  • Livello di pooling
  • Livello completamente connesso (FC, Fully-Connected)

Il livello convoluzionale è il primo livello di una rete convoluzionale. Mentre i livelli convoluzionali possono essere seguiti da altri livelli convoluzionali o di raggruppamento, il livello completamente connesso è il livello finale. Ad ogni livello, la complessità della CNN aumenta così come la porzione dell'immagine che viene identificata. I primi livelli si concentrano su funzioni semplici, ad esempio i colori e i contorni. Mentre i dati dell'immagine avanzano attraverso i livelli della CNN, vengono riconosciuti elementi o forme più grandi fino a quando, infine, non viene identificato l'oggetto.

Livello convoluzionale

Il livello convoluzionale è l'elemento costitutivo principale di una CNN ed è il punto in cui si verifica la maggior parte dei calcoli. Richiede pochi componenti, ovvero dati di input, un filtro e una mappa delle funzioni. Supponiamo che l'input sia un'immagine a colori, costituita da una matrice di pixel in 3D. Ciò significa che l'input avrà tre dimensioni: un'altezza, una larghezza e una profondità, che corrispondono all'RGB in un'immagine. Inoltre, è presente un rilevatore di funzioni, definito anche kernel o filtro, che si sposterà attraverso i campi ricettivi dell'immagine, verificando la presenza della funzione. Questo processo è noto come convoluzione.

Il rilevatore di funzioni è un array bidimensionale (2-D) di pesi, che rappresenta parti dell'immagine. Sebbene possano variare, normalmente le sue dimensioni sono una matrice 3x3; ciò determina anche la dimensione del campo ricettivo. Quindi, il filtro viene applicato a un'area dell'immagine e viene calcolato un prodotto di punti tra i pixel di input e i filtri. Questo prodotto di punti viene quindi inserito in un array di output. Successivamente, il filtro si sposta di un passo, ripetendo il processo fino a quando il kernel ha attraversato l'intera immagine. L'output finale dalla serie di prodotti di punti dall'input e dal filtro è conosciuto come mappa delle funzioni, mappa di attivazione o funzione convoluta.

Dopo ogni operazione di convoluzione, una CNN applica una trasformazione ReLU (Rectified Linear Unit) alla mappa delle funzioni, introducendo la non linearità nel modello.

Come affermato in precedenza, il livello di convoluzione iniziale può essere seguito da un altro livello di convoluzione. Quando ciò si verificala struttura della CNN può diventare gerarchica poiché i livelli successivi possono vedere i pixel all'interno dei campi ricettivi dei livelli precedenti.  Ad esempio, ipotizziamo di dover determinare se un'immagine contiene una bicicletta. Una bicicletta può essere immaginata come un insieme di parti. È composta da un telaio, un manubrio, due ruote, due pedali eccetera. Ogni singola parte della bicicletta compone un modello di basso livello nella rete neurale e la combinazione delle parti rappresenta un modello di alto livello, creando una gerarchia di funzioni all'interno della CNN.

Livello di pooling

I livelli di pooling, definiti anche sottocampionamento, eseguono la riduzione della dimensionalità, riducendo il numero di parametri nell'input. In modo simile al livello convoluzionale, l'operazione di pooling applica un filtro sull'intero input, ma la differenza è che a questo filtro non è associato alcun peso. Invece, il kernel applica una funzione di aggregazione ai valori all'interno del campo ricettivo, popolando l'array di output. Vi sono due principali tipologie di pooling:

  • Pooling massimo: mentre viene applicato sull'input, il filtro seleziona il pixel con il valore massimo da inviare all'array di output. Per inciso, questo approccio tende ad essere utilizzato più di frequente rispetto al pooling medio.
  • Pooling medio: mentre viene applicato sull'input, il filtro calcola il valore medio all'interno del campo ricettivo da inviare all'array di output.

Sebbene il livello di pooling comporti la perdita di molte informazioni, offre una serie di vantaggi alla CNN. Contribuisce alla riduzione della complessità, al miglioramento dell'influenza e alla limitazione del rischio di sovradattamento. 

Livello completamente connesso

Il nome del livello completamente commesso ne descrive le caratteristiche. Come indicato in precedenza, i valori dei pixel dell'immagine di input non sono direttamente connessi al livello di output nei livelli parzialmente connessi. Tuttavia, nel livello completamente connesso, ogni nodo nel livello di output si connette direttamente a un nodo nel livello precedente.

Questo livello esegue l'attività di classificazione in base alle funzioni estratte tramite i livelli precedenti e i loro diversi filtri. Mentre i livelli convoluzionali e di pooling tendono a utilizzare le funzioni ReLu, i livelli completamente connessi (FC) solitamente fanno leva su una funzione di attivazione softmax per classificare gli input in modo appropriato, producendo una probabilità da 0 a 1.


Tipi di reti neurali convoluzionali

Kunihiko Fukushima e Yann LeCun hanno gettato le basi della ricerca relativa alle reti neurali convoluzionali nel lavoro da loro svolto rispettivamente nel 1980 (PDF, 1,1 MB) (link esterno a IBM) e nel 1989 (PDF, 5,5 MB) (link esterno IBM). In particolar modo, è rinomato successo ottenuto da Yann LeCun nel tentativo di applicare la retropropagazione per addestrare le reti neurali a identificare e riconoscere i modelli all'interno di una serie di codici postali scritti a mano. Insieme al suo team, proseguì la sua ricerca nel corso degli anni '90, il cui culmine fu rappresentato da “LeNet-5”, (PDF, 933 KB) (link esterno IBM), che applicava i medesimi principi delle ricerche precedenti al riconoscimento di documenti. Da allora, è emersa una moltitudine di varianti dell'architettura CNN con l'introduzione di nuovi dataset, quali ad esempio MNIST e CIFAR-10 e competizioni quali ILSVRC (ImageNet Large Scale Visual Recognition Challenge). Tra queste architetture sono comprese:

  • AlexNet (PDF, 1,4 MB) (link esterno a IBM)
  • VGGNet (PDF, 195 KB) (link esterno a IBM)
  • GoogLeNet (PDF, 1,3 MB) (link esterno a IBM)
  • ResNet (PDF, 800 KB) (link esterno a IBM)
  • ZFNet

Tuttavia, LeNet-5 è ritenuta l'architettura CNN classica.


Reti neurali convoluzionali e visione artificiale

Le reti neurali convoluzionali sono alla base delle attività di riconoscimento delle immagini e della visione artificiale. La visione artificiale è un campo dell'AI (Artificial Intelligence) che consente ai computer e ai sistemi di ricavare informazioni significative da immagini digitali, video o altri input visivi e, sulla base di questi input, può intervenire. Questa capacità di fornire consigli la distingue dalle attività di riconoscimento delle immagini. Ecco alcuni degli ambiti in cui è possibile riscontrare applicazioni della visione artificiale:

  • Marketing: le piattaforme dei social media forniscono suggerimenti su chi potrebbe essere presente in una foto pubblicata su un profilo, rendendo più semplice taggare gli amici negli album fotografici. 
  • Assistenza sanitaria: la visione artificiale è stata incorporata nella tecnologia della radiologia per consentire ai dottori di identificare in modo più efficace i tumori nell'anatomia altrimenti sana.
  • Vendita al dettaglio: la ricerca visiva è stata incorporata ad alcune piattaforme di e-commerce, consentendo ai brand di consigliare articoli che potrebbero costituire aggiunte pertinenti a un guardaroba esistente.   
  • Settore dell'automotive: sebbene l'era delle auto a guida autonoma non sia ancora del tutto iniziata, la tecnologia alla base ha iniziato a prendere posto nelle automobili, migliorando la sicurezza del conducente e dei passeggeri attraverso funzioni quale il rilevamento della corsia.

Reti neurali convoluzionali e IBM

Da decenni a questa parte, IBM ha avuto un ruolo pionieristico nello sviluppo di tecnologie AI e reti neurali, che trova il suo culmine nello sviluppo e nell'evoluzione di IBM Watson. Watson è ora una soluzione affidabile per le aziende che intendono applicare tecniche avanzate di riconoscimento visivo e deep learning ai loro sistemi utilizzando un collaudato approccio a livelli di adozione e implementazione dell'AI.

Il riconoscimento visivo di IBM Watson semplifica l'estrazione di migliaia di etichette dalle immagini della tua organizzazione e il rilevamento immediato di contenuti specifici. Inoltre, puoi anche creare modelli personalizzati per rilevare contenuti specifici nelle immagini all'interno delle tue applicazioni. Per ulteriori informazioni su come assegnare tag, classificare e ricercare il contenuto visivo utilizzando il machine learning in modo rapido e accurato, esplora IBM Watson Visual Recognition.

Registrati per un IBMid e crea il tuo account IBM Cloud

Soluzioni correlate

IBM SPSS Neural Networks

IBM SPSS Neural Networks può aiutarti a scoprire relazioni complesse e ricavare un valore maggiore dai tuoi dati.