Le reti neurali con­vo­lu­zio­na­li (anche co­no­sciu­te come ConvNets o CNN, dall’inglese “Con­vo­lu­tio­nal Neural network”) sono reti neurali ar­ti­fi­cia­li i cui strati o livelli (con­vo­lu­tio­nal layer) vengono applicati ai dati di input per estrarre le ca­rat­te­ri­sti­che e iden­ti­fi­ca­re un oggetto. Risultano pertanto una com­po­nen­te im­por­tan­te dell’ap­pren­di­men­to profondo (deep learning).

Cosa sono le reti neurali con­vo­lu­zio­na­li (CNN)?

Le reti neurali con­vo­lu­zio­na­li sono tipi spe­cia­liz­za­ti di reti neurali ar­ti­fi­cia­li par­ti­co­lar­men­te efficaci nell’ela­bo­ra­zio­ne e nell’analisi di dati visivi come immagini e video. Queste reti svolgono un ruolo fon­da­men­ta­le nell’ap­pren­di­men­to au­to­ma­ti­co (machine learning) e in par­ti­co­la­re nell’ap­pren­di­men­to profondo (deep learning).

Le CNN sono co­sti­tui­te da strati di nodi che con­ten­go­no 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 spe­ci­fi­ca­to, viene attivato e invia i dati allo strato suc­ces­si­vo della rete.

Esistono diversi tipi di reti neurali, che vengono uti­liz­za­ti per diverse ap­pli­ca­zio­ni e tipi di dati. Ad esempio, le reti neurali ri­cor­ren­ti sono spesso usate per l’ela­bo­ra­zio­ne del lin­guag­gio naturale e il ri­co­no­sci­men­to vocale, mentre le reti neurali con­vo­lu­zio­na­li (CNN) sono più co­mu­ne­men­te uti­liz­za­te per compiti di clas­si­fi­ca­zio­ne e di computer vision. La loro capacità di ri­co­no­sce­re modelli complessi all’interno di dati le rende uno strumento im­por­tan­te dell’in­tel­li­gen­za ar­ti­fi­cia­le.

Struttura e or­ga­niz­za­zio­ne delle reti neurali con­vo­lu­zio­na­li

Le CNN si di­stin­guo­no dalle altre reti neurali per le loro pre­sta­zio­ni superiori nell’ela­bo­ra­zio­ne di immagini, input vocali e segnali audio. Con­ten­go­no tre tipi di strati prin­ci­pa­li e con ognuno di essi la rete neurale diventa più complessa, iden­ti­fi­can­do, ad esempio, parti più grandi di un’immagine.

Com­pa­ti­bi­li­tà di un’immagine con l’algoritmo delle reti neurali con­vo­lu­zio­na­li

Un’immagine viene decifrata dai computer come una com­bi­na­zio­ne di numeri e rap­pre­sen­ta­ta at­tra­ver­so 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 rap­pre­sen­ta­ta come un array bi­di­men­sio­na­le di di­men­sio­ni mXn; nel caso di un’immagine colorata delle medesime di­men­sio­ni, viene uti­liz­za­to un array tri­di­men­sio­na­le. Ogni cella di questo array contiene il valore del pixel cor­ri­spon­den­te e ogni immagine è rap­pre­sen­ta­ta dai valori dei pixel cor­ri­spon­den­ti in tre canali diversi, ciascuno ap­par­te­nen­te a un canale rosso, blu e verde.

In seguito vengono iden­ti­fi­ca­te le ca­rat­te­ri­sti­che più im­por­tan­ti dell’immagine. Queste vengono estratte con un metodo noto come con­vo­lu­zio­ne. Si tratta di un’ope­ra­zio­ne in cui una funzione modifica la forma di un’altra funzione. Le con­vo­lu­zio­ni nelle immagini sono ge­ne­ral­men­te uti­liz­za­te per vari scopi, come aumentare la nitidezza dell’immagine o mi­glio­rar­la. Nelle CNN, invece, la con­vo­lu­zio­ne viene usata per estrarre le ca­rat­te­ri­sti­che salienti delle immagini.

Per estrarre ca­rat­te­ri­sti­che im­por­tan­ti da un’immagine si utilizza un filtro (o kernel), ovvero un array che rap­pre­sen­ta la ca­rat­te­ri­sti­ca da estrarre. Il filtro viene po­si­zio­na­to sulla matrice di input e dà come risultato una matrice bi­di­men­sio­na­le che contiene la cor­re­la­zio­ne dell’immagine rispetto al filtro uti­liz­za­to. La matrice di output è chiamata mappa delle ca­rat­te­ri­sti­che (feature map).

Ca­rat­te­ri­sti­che dei diversi strati di con­vo­lu­zio­ne

Durante il processo di con­vo­lu­zio­ne, il campo di input viene ridotto man­te­nen­do la cor­re­la­zio­ne spaziale tra i pixel grazie all’ap­pli­ca­zio­ne di filtri. Di seguito vengono pre­sen­ta­ti i tre prin­ci­pa­li tipi di strati di con­vo­lu­zio­ne:

  • Con­vo­lu­tio­nal layer (strato con­vo­lu­zio­na­le): è il primo strato di una rete con­vo­lu­zio­na­le. Utilizza filtri (piccole matrici di pesi) che scorrono sull’immagine per rilevare ca­rat­te­ri­sti­che locali come bordi, angoli e texture. Ogni filtro crea una mappa delle ca­rat­te­ri­sti­che che evidenzia modelli specifici. Il primo strato con­vo­lu­zio­na­le può essere seguito da un ulteriore strato con­vo­lu­zio­na­le, rendendo la struttura della CNN ge­rar­chi­ca, in quanto gli strati suc­ces­si­vi possono vedere i pixel all’interno dei campi ricettivi degli strati pre­ce­den­ti.
  • Pooling layer (strato di pooling): riduce le di­men­sio­ni delle mappe delle ca­rat­te­ri­sti­che rias­su­men­do le aree locali e scartando le in­for­ma­zio­ni ir­ri­le­van­ti. In questo modo si riduce la com­ples­si­tà com­pu­ta­zio­na­le e si con­ser­va­no le in­for­ma­zio­ni più im­por­tan­ti.
  • Fully connected layer (strato com­ple­ta­men­te connesso): questo strato collega tutti i neuroni tra loro, in modo simile a una rete neurale tra­di­zio­na­le. Viene uti­liz­za­to per la clas­si­fi­ca­zio­ne finale e combina le ca­rat­te­ri­sti­che estratte in una decisione fino a iden­ti­fi­ca­re l’oggetto de­si­de­ra­to.
AI Model Hub
La tua piat­ta­for­ma IA mul­ti­mo­da­le e sicura
  • Con­for­mi­tà al GDPR e hosting sicuro in Europa
  • Potenti modelli basati sul­l'in­tel­li­gen­za ar­ti­fi­cia­le
  • Assenza di vendor lock-in grazie all'open source

Vi­sua­liz­za­zio­ne del processo di con­vo­lu­zio­ne

Prova a im­ma­gi­na­re di stare cercando di de­ter­mi­na­re se una foto contiene un volto umano. Puoi im­ma­gi­na­re il volto come una somma delle parti che lo com­pon­go­no: due occhi, un naso, una bocca, due orecchie e così via. Il processo di con­vo­lu­zio­ne in questo caso avviene nel seguente modo:

  1. Primo strato con­vo­lu­zio­na­le: questo primo strato utilizza dei filtri per ri­co­no­sce­re le ca­rat­te­ri­sti­che dei singoli pixel. Ad esempio, un filtro può ri­co­no­sce­re un contorno che potrebbe rap­pre­sen­ta­re il bordo di un occhio. Come già detto, le ca­rat­te­ri­sti­che locali formano dei modelli che vengono re­gi­stra­ti durante la con­vo­lu­zio­ne in una mappa di ca­rat­te­ri­sti­che. In questo caso, la mappa di ca­rat­te­ri­sti­che può rap­pre­sen­ta­re i bordi degli occhi, del naso e della bocca.
  2. Ulteriori strati di con­vo­lu­zio­ne: gli strati di con­vo­lu­zio­ne possono essere seguiti da ulteriori strati di con­vo­lu­zio­ne o di pooling. In questo modo, i singoli modelli combinati formano gra­dual­men­te un volto umano. I livelli di con­vo­lu­zio­ne suc­ces­si­vi combinano le ca­rat­te­ri­sti­che semplici in modelli più complessi. Ad esempio, i bordi e gli angoli po­treb­be­ro essere combinati per generare forme che rap­pre­sen­ta­no gli occhi. Questi strati vedono aree più ampie dell’immagine (campi recettivi) e quindi ri­co­no­sco­no strutture composite, le co­sid­det­te gerarchie di ca­rat­te­ri­sti­che, all’interno degli strati con­vo­lu­zio­na­li. Uno strato ulteriore potrebbe ri­co­no­sce­re che due occhi e una bocca in una certa di­spo­si­zio­ne formano un volto.
  3. Strato di pooling: questo strato riduce le di­men­sio­ni delle mappe di ca­rat­te­ri­sti­che e astrae ul­te­rior­men­te le ca­rat­te­ri­sti­che. Le ca­rat­te­ri­sti­che es­sen­zia­li vengono mantenute e la quantità di dati da elaborare si riduce.
  4. Fully connected layer: infine, viene creato l’ultimo strato della rete neurale con­vo­lu­zio­na­le, lo strato com­ple­ta­men­te connesso. In questo caso, produrrà l’immagine di un volto umano che, grazie alla con­vo­lu­zio­ne, sarà chia­ra­men­te di­stin­gui­bi­le da un altro volto.
Immagine: Diagramma di una rete neurale convoluzionale
Le CNN estrag­go­no au­to­ma­ti­ca­men­te le ca­rat­te­ri­sti­che rilevanti e iden­ti­fi­ca­no gli oggetti nelle immagini.

Inoltre, tecniche come il dropout e la re­go­la­riz­za­zio­ne ot­ti­miz­za­no le reti evitando l’over­fit­ting. Le funzioni di at­ti­va­zio­ne come il ret­ti­fi­ca­to­re (o ReLU: Rectified Linear Unit) ga­ran­ti­sco­no la non linearità e aiutano la rete a ri­co­no­sce­re modelli più complessi, non facendo eseguire a tutti i neuroni gli stessi calcoli. In aggiunta, la nor­ma­liz­za­zio­ne dei lotti sta­bi­liz­za e accelera la for­ma­zio­ne ela­bo­ran­do i dati in modo più uniforme.

Aree di ap­pli­ca­zio­ne delle reti neurali con­vo­lu­zio­na­li

Prima delle CNN, per iden­ti­fi­ca­re gli oggetti nelle immagini si uti­liz­za­va­no metodi di estra­zio­ne delle ca­rat­te­ri­sti­che manuali molto di­spen­dio­si in termini di tempo. Le reti neurali con­vo­lu­zio­na­li offrono un approccio più scalabile alla clas­si­fi­ca­zio­ne delle immagini e al ri­co­no­sci­men­to degli oggetti. Uti­liz­za­no i principi dell’algebra lineare, in par­ti­co­la­re la mol­ti­pli­ca­zio­ne delle matrici, per ri­co­no­sce­re i modelli in un’immagine. Og­gi­gior­no, le aree di ap­pli­ca­zio­ne delle CNN sono svariate e ri­guar­da­no:

  • Il ri­co­no­sci­men­to vocale e delle immagini: ri­co­no­sci­men­to au­to­ma­ti­co di oggetti o persone in immagini e video, ad esempio per i servizi di tag delle foto negli smart­pho­ne, i sistemi di ri­co­no­sci­men­to facciale o gli as­si­sten­ti vocali come Siri o Alexa.
  • La diagnosi medica: analisi di immagini medicali grazie al ri­co­no­sci­men­to delle immagini tramite IA per sup­por­ta­re la diagnosi, ad esempio immagini a raggi X, TAC e risonanze ma­gne­ti­che.
  • Au­to­vet­tu­re autonome: ri­co­no­sci­men­to delle ca­rat­te­ri­sti­che della strada e degli ostacoli, ad esempio per le auto a guida autonoma.
  • Social media: le CNN vengono uti­liz­za­te anche in con­nes­sio­ne con il text mining per moderare au­to­ma­ti­ca­men­te i contenuti e creare pub­bli­ci­tà per­so­na­liz­za­ta.
  • Marketing e vendita al dettaglio: ad esempio, ricerca visiva dei prodotti e po­si­zio­na­men­to degli stessi grazie al data mining.
I software IA di IONOS
Scopri la potenza del­l'in­tel­li­gen­za ar­ti­fi­cia­le
  • Siti web in tempo record
  • Soluzioni IA per il tuo business
  • Risparmio di tempo e risultati ec­cel­len­ti

Reti neurali con­vo­lu­zio­na­li: vantaggi e svantaggi

Le CNN sono in grado di estrarre au­to­ma­ti­ca­men­te le ca­rat­te­ri­sti­che rilevanti dai dati con un livello di pre­ci­sio­ne molto elevato. Tuttavia, un ad­de­stra­men­to efficace delle CNN richiede notevoli risorse com­pu­ta­zio­na­li, in quanto per ottenere buoni risultati è ne­ces­sa­rio disporre di grandi quantità di dati eti­chet­ta­ti e di GPU potenti.

Vantaggi Svantaggi
Estra­zio­ne au­to­ma­ti­ca delle ca­rat­te­ri­sti­che Sforzo com­pu­ta­zio­na­le elevato
Elevata pre­ci­sio­ne Necessità di grandi set di dati
In sintesi

Le CNN hanno ri­vo­lu­zio­na­to il campo dell’in­tel­li­gen­za ar­ti­fi­cia­le e offrono immensi vantaggi in diversi campi. Gli sviluppi futuri, come i mi­glio­ra­men­ti dell’hardware, i nuovi metodi di raccolta dei dati o le ar­chi­tet­tu­re avanzate come le reti a capsula, po­treb­be­ro con­sen­ti­re un’ulteriore ot­ti­miz­za­zio­ne e in­te­gra­zio­ne in varie tec­no­lo­gie, ampliando ul­te­rior­men­te gli ambiti di ap­pli­ca­zio­ne delle CNN.

Vai al menu prin­ci­pa­le