Una rete neurale convoluzionale (CNN) è un tipo specializzato di rete neurale (NN) particolarmente efficace per l'elaborazione di dati di tipo reticolare, come immagini e video. A differenza delle reti neurali tradizionali che trattano gli input come vettori piatti, le CNN sono progettate per apprendere automaticamente e in modo adattivo gerarchie spaziali di caratteristiche direttamente dai dati di input. Questo risultato è ottenuto principalmente attraverso l'applicazione dell'operazione di convoluzione, che le rende una pietra miliare della moderna computer vision (CV) e che determina significativi progressi nell'Intelligenza Artificiale (AI). La loro capacità di catturare le dipendenze locali e le relazioni spaziali le rende molto adatte a compiti in cui la disposizione dei pixel è importante.
Componenti e funzionalità principali
Le CNN sono tipicamente costruite da diversi livelli chiave che elaborano e trasformano le informazioni visive:
- Livelli convoluzionali: Sono gli strati fondamentali di una CNN. Applicano una serie di filtri apprendibili (kernel) all'immagine di ingresso. Ogni filtro rileva caratteristiche specifiche come bordi, angoli o texture. Man mano che il filtro scorre (convolge) sull'input, produce mappe di caratteristiche che evidenziano la posizione e la forza delle caratteristiche rilevate. La rete apprende questi filtri automaticamente durante il processo di formazione del modello.
- Livelli di attivazione: Dopo gli strati convoluzionali, le funzioni di attivazione come ReLU (Rectified Linear Unit) o Leaky ReLU introducono la non linearità. Questo permette alla rete di apprendere modelli più complessi che vanno oltre le semplici combinazioni lineari.
- Livelli di pooling: Questi livelli riducono le dimensioni spaziali (larghezza e altezza) delle mappe di caratteristiche, diminuendo il carico computazionale e controllando l 'overfitting. I metodi più comuni includono il Max Pooling, che prende il valore massimo in una regione locale, aiutando la rete a diventare più robusta alle variazioni nella posizione delle caratteristiche. Una panoramica dei metodi di pooling può fornire maggiori dettagli.
- Livelli completamente connessi: In genere si trovano verso la fine della rete, questi strati collegano ogni neurone dello strato precedente a ogni neurone dello strato corrente, in modo simile a una rete neurale tradizionale a feedforward. Utilizzano le caratteristiche di alto livello estratte dagli strati convoluzionali e di pooling per eseguire compiti di classificazione o regressione, come l'assegnazione di un'etichetta finale all'immagine.
Differenze chiave rispetto alle altre reti neurali
Le CNN possiedono caratteristiche uniche che le distinguono da altri tipi di rete:
- Gerarchia spaziale: A differenza delle NN di base, le CNN modellano esplicitamente le relazioni spaziali. I primi livelli rilevano caratteristiche semplici (bordi), mentre i livelli più profondi li combinano per riconoscere modelli più complessi (forme, oggetti). Questa struttura gerarchica imita alcuni aspetti dell'elaborazione visiva umana.
- Condivisione dei parametri: Un singolo filtro viene applicato a diverse parti dell'immagine di ingresso, riducendo in modo significativo il numero totale di parametri rispetto a una rete completamente connessa che elabora la stessa immagine. Questo rende le CNN più efficienti e meno inclini all'overfitting, soprattutto con immagini di grandi dimensioni. L'area coperta da un filtro in qualsiasi punto è nota come campo ricettivo.
- Invarianza alla traduzione: Grazie al pooling e alla condivisione dei parametri, le CNN possono riconoscere un oggetto anche se la sua posizione si sposta leggermente all'interno dell'immagine.
- rispetto alle Reti Neurali Ricorrenti (RNN): Mentre le CNN eccellono nell'elaborazione di dati spaziali come le immagini, le Reti Neurali Ricorrenti (RNN) sono progettate per dati sequenziali, il che le rende adatte a compiti come l'elaborazione del linguaggio naturale (NLP) e l'analisi delle serie temporali.
Applicazioni del mondo reale
Le CNN sono la forza trainante di numerose scoperte in vari settori:
- Analisi di immagini mediche: Nell'ambito dell'IA in campo sanitario, le CNN analizzano scansioni mediche come radiografie, TAC e risonanze magnetiche. Assistono i radiologi nell'individuazione di sottili anomalie come tumori, fratture o retinopatia diabetica. Le ricerche pubblicate su riviste come Radiology: Artificial Intelligence mostrano le CNN che identificano modelli indicativi di malattie, raggiungendo spesso un'elevata precisione. Ad esempio, modelli come Ultralytics YOLO possono essere adattati a compiti come il rilevamento dei tumori nell'imaging medico, dimostrando l'applicazione pratica delle architetture basate sulle CNN nell'analisi delle immagini mediche.
- Veicoli autonomi: Le CNN sono fondamentali per l'intelligenza artificiale delle auto a guida autonoma. Alimentano i sistemi di percezione che eseguono il rilevamento degli oggetti in tempo reale per identificare pedoni, veicoli, segnali stradali e strisce di corsia utilizzando i dati delle telecamere e del LiDAR. In questo modo il veicolo è in grado di comprendere l'ambiente circostante e di prendere decisioni di guida sicure. Aziende come Waymo si affidano molto alle CNN per i loro sistemi autonomi. Le CNN contribuiscono anche alla segmentazione delle immagini, permettendo ai veicoli di distinguere le aree percorribili dagli ostacoli.
Strumenti e strutture
Lo sviluppo e l'impiego delle CNN è supportato da potenti strumenti e framework di deep learning (DL):