MimìrCast: le novità sull’AI ogni giorno
Ascolta il podcast ➔
Cos'è il deep learning: gli strati che si scelgono da soli cosa guardare

Cos’è il deep learning: gli strati che si scelgono da soli cosa guardare

Fotografi una bolletta appoggiata storta sul tavolo, con l’ombra della mano su un angolo, e l’app ti tira fuori l’IBAN giusto. Scrivi «qual’è» con l’apostrofo sbagliato a un chatbot e quello risponde senza fare una piega. Dici «ehi» a voce impastata alle sette del mattino e l’assistente si sveglia lo stesso. Nessun programmatore ha mai scritto la riga di codice che dice «se la foto è ruotata di 7 gradi e c’è un’ombra, guarda comunque lì», eppure funziona. Quel comportamento lì ha un nome, ed è il deep learning: non un’etichetta di marketing, ma un modo preciso di costruire la macchina che spiega perché regge lo storto, l’ombra e l’apostrofo di troppo.

In questo articolo scoprirai:

  • Cosa fa il deep learning che le regole scritte a mano non sanno fare
  • Cosa si intende per deep learning: gli strati che imparano da soli
  • Come funziona il deep learning: i numeri reali di una rete su MNIST
  • Esempi di deep learning che usi già ogni giorno: traduttore e chatbot
  • La differenza tra deep learning e machine learning che conta davvero
  • Perché più strati non migliorano sempre i risultati del deep learning

Cosa fa il deep learning che le regole scritte a mano non sanno fare

Prova a mettertici tu, per un minuto, nei panni di chi dovrebbe scrivere quelle regole a mano. Devi spiegare a un computer che cos’è il numero 7 scritto a penna. Cominci: «una linea orizzontale in alto e una obliqua che scende». Poi arriva il 7 con il trattino in mezzo, alla francese. Poi il 7 di chi scrive in corsivo, che sembra una 1 con il cappello. Poi quello scritto su carta a quadretti con la penna che perde inchiostro. Ogni regola che scrivi ne rompe un’altra, e dopo trecento eccezioni hai un programma che sbaglia più di prima.

Prima del deep learning: le caratteristiche le sceglieva un umano

Questo era esattamente lo stato delle cose fino a una quindicina di anni fa, e non per pigrizia: era il metodo. Si chiamava feature engineering, e voleva dire che un essere umano decideva in anticipo quali caratteristiche misurare, i contorni, gli angoli, gli istogrammi di colore, e poi un algoritmo imparava a combinarle. L’algoritmo imparava i pesi; l’uomo sceglieva cosa guardare.

Come fa un algoritmo a imparare i pesi guardando gli esempi, con un conto che si segue passo per passo, lo spieghiamo in apprendimento automatico: come una macchina impara.

Il fatto osservabile, quello che il lettore vede oggi con i propri occhi, è che quel passaggio è sparito. Nessuno ha detto a un modello di riconoscimento testo che l’ombra non conta. Nessuno ha detto a un modello linguistico che «qual’è» e «qual è» sono la stessa parola. La macchina se lo è costruito da sola, guardando esempi. Stanford HAI lo dice in una riga: «Invece che una persona che programma a mano le caratteristiche da cercare, questi modelli scoprono da soli rappresentazioni via via più astratte» (Stanford HAI).

La domanda giusta, allora, non è «cosa vuol dire deep learning». È: come fa una pila di numeri a scoprire da sola che l’ombra non conta?

Cosa si intende per deep learning: gli strati che imparano da soli

Il deep learning è un modo di costruire una rete neurale impilando molti strati di calcolo uno sopra l’altro, dove ogni strato riceve in ingresso l’uscita del precedente e la trasforma. Il primo strato lavora sui dati grezzi, i pixel, i caratteri, le forme d’onda, e gli strati successivi lavorano su quello che ha prodotto il primo, non più sul dato originale. La parola «profondo» non descrive la complessità del problema: conta gli strati, e basta.

La conseguenza è quella che conta. Ogni strato può rappresentare solo combinazioni di ciò che gli passa quello sotto. Su un’immagine, il primo strato riesce a distinguere poco più di bordi e macchie di colore. Il secondo, combinando bordi, può rappresentare angoli e curve. Il terzo, combinando angoli, può rappresentare pezzi di oggetto, un occhio, una ruota, una maniglia. Il quinto, combinando pezzi, può rappresentare l’oggetto intero. Nessuno ha scritto la parola «occhio» da nessuna parte: quella rappresentazione emerge perché è il modo più economico che la rete ha trovato per abbassare il proprio errore sugli esempi che ha visto.

E qui sta il punto che di solito viene saltato: la rete non «decide» di costruirsi quelle caratteristiche. Le costruisce perché un algoritmo di correzione, la discesa del gradiente, sposta un pochino ogni singolo numero interno nella direzione che riduce l’errore, e lo fa milioni di volte. Le caratteristiche intermedie sono un effetto collaterale della ricerca del minimo, non un obiettivo dichiarato.

Deep learning e reti neurali: che differenza c’è

È la domanda che compare regolarmente sotto i risultati di Google, e la risposta è meno misteriosa di quanto sembri: la rete neurale è l’oggetto, il deep learning è il metodo. Una rete neurale con un solo strato nascosto esiste, funziona ed è in giro dagli anni Ottanta, ma non è deep learning. Si comincia a parlare di apprendimento profondo quando gli strati nascosti sono tanti abbastanza che gli strati alti lavorano su rappresentazioni costruite dagli strati bassi, e non più sui dati d’ingresso (Stanford HAI). In pratica: da tre strati in su, e oggi si arriva a centinaia.

La differenza non è accademica. È esattamente ciò che permette di saltare il passaggio in cui un umano decide cosa guardare, ed è il motivo per cui la stessa architettura di base, cambiando i dati, impara a leggere le targhe, a trascrivere l’audio o a scrivere in italiano. Il resto, matrici, moltiplicazioni, derivate, è algebra lineare applicata su larga scala.

Come funziona il deep learning: i numeri reali di una rete su MNIST

Adesso i numeri veri, e sono numeri che puoi rifare con una calcolatrice. Il tutorial ufficiale per principianti di TensorFlow costruisce una rete per riconoscere le cifre scritte a mano del dataset MNIST. L’architettura è pubblica e sta in quattro righe: un’immagine da 28 × 28 pixel, appiattita in 784 valori, uno strato nascosto da 128 neuroni, uno strato d’uscita da 10 (una casella per ogni cifra da 0 a 9).

Quanti numeri deve regolare l’addestramento? Ogni neurone dello strato nascosto ha un peso per ciascuno dei 784 ingressi, più un valore di soglia. Quindi 784 × 128 = 100.352 pesi, più 128 soglie: 100.480 numeri nel primo strato. Poi ogni uscita ha un peso per ciascuno dei 128 neuroni nascosti, più la sua soglia: 128 × 10 = 1.280, più 10, cioè 1.290. Totale: 101.770 numeri. Nessuno di questi è scritto a mano. All’inizio sono casuali; alla fine dell’addestramento valgono quel che valgono perché la discesa del gradiente li ha spostati, uno per uno.

Gli strati di una rete che legge una cifra scritta a mano: 784 ingressi, 128 neuroni nascosti, 10 uscite, 101.770 parametri Una rete che legge una cifra scritta a mano Ingresso Strato nascosto Uscita ⋮ ⋮ 784 valori (28 × 28 pixel) 128 neuroni 10 uscite: le cifre 0, 9 784 × 128 + 128 = 100.480 128 × 10 + 10 = 1.290 Totale: 101.770 numeri regolati dall’addestramento

Il risultato, sempre dalla documentazione di TensorFlow: dopo cinque passate sui dati, l’accuratezza sul set di prova è 0,9782. Il set di prova di MNIST ha 10.000 immagini, quindi circa 218 cifre sbagliate su 10.000, con centomila numeri e un paio di minuti di calcolo su un portatile. Tieni a mente l’ordine di grandezza: centomila. Serve per capire la sezione dopo.

Il secondo conto: quanto ha guadagnato davvero la profondità

Nel 2012 la gara di riferimento per il riconoscimento di immagini era ILSVRC, su ImageNet. I risultati ufficiali dicono questo: il secondo classificato, costruito con caratteristiche scelte a mano (SIFT, LBP, GIST), chiuse con un errore top-5 di 0,26172. Il vincitore, una rete convoluzionale profonda, cinque strati convoluzionali e tre completamente connessi, 60 milioni di parametri (Krizhevsky, Sutskever e Hinton, NIPS 2012), chiuse a 0,15315.

Fai il conto su diecimila immagini: il metodo a caratteristiche scritte a mano ne sbagliava 2.617, la rete profonda 1.532. Milleottantacinque errori in meno, cioè il 41,5% dell’errore residuo spazzato via in un anno solo. Tre anni dopo, una rete a 152 strati portava quel numero a 3,57% (He et al., 2015): da 1.532 errori su diecimila a 357.

Errore top-5 su ImageNet: 26,17% senza deep learning, 15,32% con AlexNet a 8 strati, 3,57% con ResNet a 152 strati Errore top-5 su ImageNet: cosa ha cambiato la profondità 2012 · 2º classificato caratteristiche a mano 2012 · rete vincitrice 8 strati 2015 · rete residuale 152 strati 26,17% 15,32% 3,57% 0% 10% 20% 30% Fonti: risultati ufficiali ILSVRC 2012 (image-net.org) e He et al., arXiv:1512.03385

Esempi di deep learning che usi già ogni giorno: traduttore e chatbot

Il meccanismo non è una curiosità da laboratorio: quando entra in un prodotto, il prodotto cambia comportamento in modo visibile, e le date si possono mettere sul calendario.

Il caso più netto è Google Traduttore. Fino al 2016 traduceva spezzando la frase in gruppi di parole e ricomponendo i pezzi: ne uscivano frasi che capivi ma che non avresti mai scritto. Il 27 settembre 2016 Google annuncia il passaggio a un sistema neurale profondo, e nell’annuncio ufficiale scrive che «GNMT riduce gli errori di traduzione di oltre il 55%-85% su diverse coppie linguistiche importanti, misurati su frasi campionate» (Google Research). La prima coppia messa in produzione fu cinese-inglese. Chi usava il traduttore quotidianamente se ne accorse senza leggere il comunicato: da un giorno all’altro le frasi avevano un ritmo.

Il secondo posto dove lo vedi è la fotocamera del telefono. Il ritaglio automatico del documento, il riconoscimento del testo dentro una foto storta, la ricerca «cane» nella galleria che ti trova foto che non hai mai etichettato: sono tutte reti convoluzionali profonde, discendenti dirette di quella che vinse ImageNet nel 2012. La stessa impalcatura a strati, addestrata su un altro mucchio di esempi.

ChatGPT è deep learning: stessa impalcatura, altra scala

Sì, e senza asterischi. Un large language model è una rete neurale profonda: la differenza rispetto alla rete MNIST della sezione precedente non è di natura, è di scala e di architettura. Gli strati non sono due ma decine, i parametri non sono 101.770 ma miliardi, e la struttura è quella del transformer invece che di un semplice strato denso. Ma il principio è identico: nessuno ha scritto le regole della grammatica italiana dentro il modello, e le rappresentazioni intermedie, quelle che fanno sì che «cane» e «gatto» finiscano vicini e «cane» e «mercoledì» lontani, se le è costruite l’addestramento.

Questo spiega anche perché certi difetti sono di famiglia. Un modello che si costruisce le proprie caratteristiche dagli esempi non ha un posto dove controllare se una cosa è vera: ha solo un posto dove controllare se è plausibile. È lo stesso meccanismo che rende il deep learning così bravo sull’ombra e sull’apostrofo, e così disinvolto quando inventa una citazione.

La differenza tra deep learning e machine learning che conta davvero

È la domanda più frequente attorno a questo tema, e le risposte da manuale («il deep learning è un sottoinsieme del machine learning») sono vere e inutili: non ti dicono quando useresti l’uno invece dell’altro. Il confine operativo è uno solo, ed è quello del conto che abbiamo appena fatto: chi decide quali caratteristiche guardare.

Nel machine learning classico le decidi tu. Hai una tabella con «anni di anzianità», «settore», «numero di ordini»: quelle colonne sono già le caratteristiche, qualcuno le ha definite quando ha progettato il gestionale, e l’algoritmo deve solo imparare come pesarle. Nel deep learning non hai colonne: hai pixel, forme d’onda, caratteri. Le caratteristiche non esistono ancora e vanno inventate, ed è precisamente quello che fanno gli strati intermedi.

Quando conviene il deep learning e quando il machine learning classico

Da qui discende la regola pratica che serve davvero: il deep learning vince dove il dato è grezzo e abbondante; il machine learning classico regge benissimo dove il dato è già strutturato e scarso. Una tabella di 2.000 righe con venti colonne pulite non ha bisogno di una rete a 152 strati: ci metterai dieci volte il tempo e otterrai risultati peggiori, perché non c’è nessuna rappresentazione nascosta da scoprire, è già tutto scritto nelle intestazioni delle colonne.

Vale la pena aggiungere che la separazione riguarda il metodo, non il modo di imparare: sia il machine learning classico sia il deep learning possono lavorare con supervisione, senza supervisione o per rinforzo. Sono due assi indipendenti, e confonderli è uno degli errori più comuni nelle discussioni da corridoio.

Perché più strati non migliorano sempre i risultati del deep learning

Qui arriva il pezzo che le definizioni saltano, e che è anche la condizione in cui la spiegazione di sopra smette di valere. Se gli strati costruiscono rappresentazioni sempre più astratte, verrebbe da concludere che aggiungerne sempre di più migliori sempre il risultato. Non è così, ed è documentato dalle stesse persone che hanno portato l’errore su ImageNet al 3,57%: il loro articolo si apre con la frase «le reti neurali più profonde sono più difficili da addestrare», e il problema che risolvono si chiama proprio degradazione. Prima dei collegamenti residui, oltre una certa profondità l’accuratezza smetteva di salire e poi peggiorava, non per eccesso di adattamento ai dati, ma perché il segnale di correzione non arrivava più fino in fondo.

La nota di falsificazione, quindi, in una riga: la spiegazione «più strati, rappresentazioni più ricche» non vale se non hai anche l’architettura che permette al gradiente di attraversarli, e non vale affatto sui dati già strutturati, dove non c’è niente da rappresentare e i metodi ad alberi decisionali restano competitivi o migliori. La profondità è uno strumento, e come tutti gli strumenti ha un intervallo in cui funziona.

Ci sono altre due cose che conviene portarsi via. La prima: il deep learning è affamato. I 101.770 numeri della rete MNIST si sistemano con le 60.000 immagini di addestramento del dataset; miliardi di parametri richiedono corpus di scala industriale ed energia in proporzione, ed è da lì che nascono gran parte delle discussioni etiche sul settore, chi ha fornito i dati, chi ha dato il consenso, chi paga il conto dell’elettricità. La seconda: le rappresentazioni intermedie che la rete si costruisce non hanno un’etichetta. Puoi misurare che funzionano, non leggerle come si legge una regola. È il motivo per cui l’idea che questi sistemi «imitino il cervello» va presa per quello che è, un’ispirazione storica lunga sessant’anni, non una descrizione di come funzionano davvero.

Il passo successivo, se questo mattone è chiaro, è vedere cosa succede quando il testo entra in un modello profondo e ne esce una risposta: il percorso completo è raccontato in come funziona davvero un modello di AI, dal testo che entra alla risposta che esce.

Perché in azienda il modello da solo non basta

C’è una conseguenza diretta, per chi questi sistemi deve metterli al lavoro e non solo capirli. Se le caratteristiche se le costruisce la macchina dai dati che le dai, nessuno può dirti in anticipo come si comporterà sui tuoi dati: lo si scopre misurando, sui tuoi documenti, con i tuoi casi limite. È la ragione per cui in mimir.bot l’agente non lo consegniamo come una scatola con dentro un modello: l’onboarding è un lavoro fatto insieme, in cui si guarda cosa sbaglia sul tuo materiale e si aggiusta di conseguenza. Il prodotto è la parte facile; il servizio è la parte che decide se funziona, e su questo abbiamo scritto per esteso in come si costruisce un agente AI su misura per un’azienda.

Fonti:

Domande frequenti

Qual è la differenza tra machine learning e deep learning?

Il confine operativo è chi decide quali caratteristiche guardare. Nel machine learning classico le scegli tu: le colonne di una tabella sono già le caratteristiche, e l'algoritmo impara solo come pesarle. Nel deep learning parti da dati grezzi, pixel, forme d'onda, caratteri, e sono gli strati intermedi a inventarsi le caratteristiche durante l'addestramento.

ChatGPT è deep learning?

Sì. Un large language model è una rete neurale profonda: rispetto a una piccola rete che legge cifre scritte a mano la differenza è di scala e di architettura, non di natura. I parametri sono miliardi invece di centomila e la struttura è quella del transformer, ma nessuno ha scritto dentro il modello le regole della grammatica: le rappresentazioni se le è costruite l'addestramento.

Più strati significa sempre risultati migliori?

No, ed è documentato dagli stessi autori che hanno portato l'errore su ImageNet al 3,57%: il loro articolo si apre dicendo che le reti più profonde sono più difficili da addestrare. Oltre una certa profondità, senza collegamenti residui, l'accuratezza smetteva di salire e poi peggiorava. E sui dati già strutturati e scarsi i metodi ad alberi decisionali restano competitivi o migliori.

Tabella dei contenuti
Articoli correlati:
Vuoi che l'AI diventi il tuo motore di valore più potente?

Ti accompagniamo noi con Mimír AI Agent.