L’apprendimento profondo, noto anche con il termine inglese deep learning, è una sottoarea dell’apprendimento automatico che si basa sull’uso di reti neurali artificiali con molti strati intermedi, dette reti neurali profonde. A differenza dei metodi tradizionali, in cui un esperto deve spesso definire a mano le caratteristiche rilevanti dei dati, l’apprendimento profondo impara autonomamente rappresentazioni gerarchiche a partire dagli esempi forniti in fase di addestramento. Questo lo rende particolarmente adatto a problemi complessi come il riconoscimento di immagini, la comprensione del linguaggio naturale e la sintesi vocale.

Il termine “profondo” si riferisce proprio al numero di strati che compongono la rete: ogni strato trasforma l’informazione ricevuta e la trasmette a quello successivo, costruendo rappresentazioni via via più astratte. Gli strati iniziali tendono a cogliere elementi semplici, come bordi o variazioni di luminosità in un’immagine, mentre gli strati più avanzati combinano tali elementi in concetti complessi, come oggetti o volti. Questa capacità di astrazione progressiva è il motivo principale del successo dell’apprendimento profondo in numerosi ambiti scientifici e industriali.

Origini e sviluppo storico

Le basi teoriche dell’apprendimento profondo risalgono agli studi sulle reti neurali artificiali condotti a partire dalla metà del Novecento. Il percettrone, introdotto negli anni Cinquanta, rappresenta uno dei primi modelli di neurone artificiale, ma la sua limitata capacità di risolvere problemi non linearmente separabili ne frenò l’applicazione. Solo con l’introduzione della retropropagazione dell’errore, resa popolare negli anni Ottanta, divenne possibile addestrare reti con più strati nascosti.

Il vero sviluppo esplosivo si è verificato negli anni Duemila e Duemiladieci, grazie alla disponibilità di grandi quantità di dati, di unità di elaborazione grafica potenti e di algoritmi migliorati. In quel periodo le reti neurali profonde hanno superato i metodi classici in competizioni di riconoscimento visivo, aprendo la strada a un’adozione sempre più ampia in ambito commerciale e di ricerca.

Come funziona una rete neurale profonda

Una rete neurale profonda è composta da unità di calcolo, chiamate neuroni artificiali, organizzate in strati. I dati entrano nello strato di input, attraversano uno o più strati nascosti e producono un risultato nello strato di output. Ogni collegamento tra neuroni possiede un peso, un valore numerico che viene modificato durante l’addestramento per ridurre l’errore commesso dalla rete.

Addestramento e retropropagazione

L’addestramento avviene presentando alla rete molti esempi etichettati e confrontando la sua previsione con la risposta corretta. La differenza tra i due valori, misurata da una funzione di perdita, viene usata per aggiornare i pesi tramite un algoritmo di ottimizzazione. La retropropagazione calcola quanto ciascun peso ha contribuito all’errore, propagando l’informazione all’indietro dallo strato di output verso quelli di input.

Funzioni di attivazione

Le funzioni di attivazione introducono non linearità nella rete, permettendole di apprendere relazioni complesse tra input e output. Tra le più usate figurano la funzione sigmoide, la tangente iperbolica e la unità lineare rettificata, spesso indicata con la sigla ReLU. Senza queste funzioni, una rete profonda si comporterebbe come un semplice modello lineare, perdendo gran parte della sua potenza espressiva.

Architetture principali

Nel corso degli anni sono state sviluppate diverse architetture, ciascuna pensata per tipi specifici di dati o problemi. La scelta dell’architettura dipende dalla natura dell’input, dalla dimensione del set di dati e dall’obiettivo dell’applicazione.

Reti convoluzionali e ricorrenti

Le reti neurali convoluzionali sono progettate per elaborare dati con struttura a griglia, come immagini e segnali audio. Utilizzano filtri che scorrono sull’input per estrarre caratteristiche locali, riducendo il numero di parametri rispetto a una rete completamente connessa. Le reti neurali ricorrenti, invece, possiedono connessioni che formano cicli, permettendo di mantenere una memoria interna utile per dati sequenziali come testi, serie temporali e parlato.

Applicazioni e ambiti di utilizzo

L’apprendimento profondo ha trovato applicazione in moltissimi settori. Nel riconoscimento delle immagini viene impiegato per la classificazione di oggetti, il rilevamento di volti e la guida autonoma. Nel trattamento del linguaggio naturale supporta la traduzione automatica, l’analisi del sentimento e la generazione di testo. In medicina contribuisce all’interpretazione di esami diagnostici, mentre nel settore finanziario viene usato per rilevare frodi e prevedere andamenti di mercato.

Anche l’industria dell’intrattenimento ne fa largo uso: i sistemi di raccomandazione, la sintesi vocale e la generazione di contenuti multimediali si basano spesso su modelli profondi. La diffusione di questi strumenti ha trasformato il modo in cui le aziende progettano prodotti e servizi, rendendo l’apprendimento profondo una competenza sempre più richiesta.

Confronto con altre tecniche di apprendimento automatico

Per comprendere meglio il ruolo dell’apprendimento profondo, è utile confrontarlo con altre tecniche di apprendimento automatico. La tabella seguente riassume alcune differenze fondamentali.

TecnicaEstrazione delle caratteristicheDati richiestiPotenza di calcolo
Apprendimento profondoAutomatica, tramite gli strati della reteElevate quantitàMolto alta, spesso con unità grafiche
Regressione logisticaManuale, definita dall’espertoModerateBassa
Alberi decisionaliManuale o semi-automaticaModerateBassa o media
Macchine a vettori di supportoManuale, con kernel scelti dall’utenteModerateMedia
Apprendimento per rinforzo profondoAutomatica, combinata con esplorazioneMolto elevateMolto alta

Vantaggi, limiti e prospettive

Tra i principali vantaggi dell’apprendimento profondo vi è la capacità di gestire dati non strutturati, come immagini, suoni e testi, senza richiedere un intervento manuale nella definizione delle caratteristiche. Inoltre, le prestazioni tendono a migliorare all’aumentare della quantità di dati disponibili, il che lo rende adatto a contesti in cui le informazioni sono abbondanti.

Esistono tuttavia limiti significativi. L’addestramento richiede risorse computazionali considerevoli e grandi set di dati etichettati, non sempre disponibili. I modelli profondi sono spesso difficili da interpretare, poiché il loro comportamento emerge dall’interazione di milioni di parametri. A ciò si aggiungono preoccupazioni etiche legate alla privacy, ai pregiudizi presenti nei dati e all’impatto ambientale del calcolo su larga scala.

Le prospettive future includono lo sviluppo di modelli più efficienti, tecniche di apprendimento con pochi esempi e metodi per rendere le decisioni delle reti più trasparenti. La ricerca continua a esplorare architetture ibride e approcci che combinano l’apprendimento profondo con la conoscenza simbolica.

Passaggi per comprendere un progetto di apprendimento profondo

  1. Definire con chiarezza il problema da risolvere e l’obiettivo atteso, distinguendo tra classificazione, regressione o generazione.
  2. Raccogliere e organizzare un insieme di dati rappresentativo, verificandone qualità, equilibrio e assenza di errori evidenti.
  3. Dividere i dati in sottoinsiemi di addestramento, validazione e test, per valutare correttamente le prestazioni del modello.
  4. Preprocessare i dati, normalizzando i valori numerici e convertendo le categorie in forme adatte alla rete.
  5. Scegliere un’architettura adeguata, come una rete convoluzionale per le immagini o una rete ricorrente per le sequenze.
  6. Addestrare il modello regolando i pesi tramite un algoritmo di ottimizzazione e monitorando la funzione di perdita.
  7. Valutare le prestazioni su dati mai visti, usando metriche coerenti con il problema, come accuratezza o richiamo.
  8. Ottimizzare gli iperparametri e, se necessario, applicare tecniche di regolarizzazione per ridurre la sovradattazione.

Domande frequenti

Che differenza c’è tra apprendimento profondo e apprendimento automatico?

L’apprendimento profondo è un sottoinsieme dell’apprendimento automatico. Mentre l’apprendimento automatico comprende tecniche diverse, l’apprendimento profondo si basa specificamente su reti neurali con molti strati.

Perché l’apprendimento profondo richiede molti dati?

Poiché i modelli profondi contengono un numero elevato di parametri, hanno bisogno di molti esempi per apprendere rappresentazioni generali ed evitare di memorizzare i singoli casi.

Quali sono le applicazioni più comuni?

Le applicazioni più diffuse includono il riconoscimento di immagini e voce, la traduzione automatica, i sistemi di raccomandazione e la guida autonoma.

L’apprendimento profondo è sempre la scelta migliore?

No. Quando i dati disponibili sono pochi o il problema è semplice, tecniche classiche possono risultare più efficienti e più facili da interpretare.

Che cosa si intende per sovradattazione?

La sovradattazione si verifica quando il modello impara troppo bene i dati di addestramento, perdendo la capacità di generalizzare su esempi nuovi.

Quali competenze servono per lavorare nell’apprendimento profondo?

Sono utili conoscenze di matematica, statistica e programmazione, insieme alla capacità di analizzare dati e valutare criticamente i risultati ottenuti.