Quando i modelli dicono: “non sono sicuro”

Quando i modelli dicono: “non sono sicuro”

Condividi con i tuoi amici...

Quando un sistema di intelligenza artificiale prende una decisione, molto spesso lo fa con grande sicurezza apparente. Classifica un’immagine, suggerisce una diagnosi, decide se concedere o meno un credito. Il problema è che questa sicurezza è spesso un’illusione: il modello fornisce una risposta, ma non ci dice quanto quella risposta sia affidabile. Nella vita reale, invece, saper dire “non sono sicuro” è fondamentale. È proprio qui che entra in gioco la quantificazione dell’incertezza.

L’idea di fondo è semplice: non vogliamo che una rete neurale dica solo che cosa pensa sia giusto, ma anche quanto ne è convinta. Questo diventa cruciale in tutti quei contesti in cui un errore può avere conseguenze serie, come la medicina, la guida autonoma o la finanza.

Previsioni come certezze apparenti

Una rete neurale tradizionale funziona un po’ come una macchina che, dato un input, produce un output unico. Se le mostri un’immagine, ti dice “questo è un gatto”; se le dai dei dati clinici, ti restituisce una diagnosi probabile. Anche quando l’output è una probabilità, questa probabilità nasce da un singolo modello addestrato su dati finiti. In pratica, la rete si comporta come se avesse trovato la risposta giusta e definitiva.

Il problema è che quella risposta dipende fortemente dai dati che ha visto durante l’addestramento. Se i dati sono pochi, rumorosi o non rappresentativi di tutte le situazioni possibili, la rete può sbagliare… e farlo con grande sicurezza.

Due tipi di incertezza: quella del mondo e quella del modello

Per capire meglio il problema, è utile distinguere due tipi di incertezza, che hanno nature molto diverse.

La prima è l’incertezza aleatoria. È l’incertezza che appartiene al mondo reale (o alla rappresentazione che abbiamo di esso indipendentemente dal modello di AI). Alcune situazioni sono ambigue per natura: un’immagine può essere sfocata, un sensore può essere impreciso, due malattie possono avere sintomi simili. Anche il miglior modello possibile, con infiniti dati, resterebbe incerto in questi casi. Questa incertezza non si può eliminare: fa parte del fenomeno che stiamo osservando.

La seconda è l’incertezza epistemica. Questa non dipende dal mondo, ma dalla conoscenza del modello. Se la rete ha visto pochi esempi, o se si trova davanti a un caso molto diverso da quelli su cui è stata addestrata, non ha abbastanza informazioni per essere sicura. La buona notizia è che questa incertezza può diminuire: più dati, migliori dati, o modelli migliori possono ridurla.

Capire la differenza tra questi due tipi di incertezza è fondamentale, perché portano a decisioni diverse. Nel primo caso possiamo solo accettare il limite; nel secondo caso è prudente fermarsi e chiedere più informazioni.

L’idea bayesiana: non esiste un solo modello possibile

L’approccio bayesiano introduce un cambiamento di prospettiva molto importante. Invece di pensare che la rete neurale abbia trovato l’unico insieme corretto di parametri, si accetta l’idea che, dati i dati disponibili, esistano molti modelli plausibili. Alcuni spiegano i dati un po’ meglio, altri un po’ peggio, ma nessuno può essere considerato l’unico vero.

In questa visione, una buona previsione non è quella prodotta da un singolo modello, ma una sorta di “media” delle previsioni di tutti i modelli plausibili. Il risultato non è più una risposta secca, ma una distribuzione di possibili risposte, che riflette anche quanto siamo incerti.

Il problema pratico è che gestire davvero tutti questi modelli è troppo costoso dal punto di vista computazionale. Qui entra in gioco un’idea sorprendentemente semplice: il dropout.

Il dropout visto sotto una nuova luce

Il dropout nasce come una tecnica per migliorare l’addestramento delle reti neurali. Durante il training, alcuni neuroni vengono spenti a caso. In questo modo la rete è costretta a non dipendere troppo da singole parti e diventa più robusta.

La svolta concettuale è stata capire che questo spegnimento casuale può essere interpretato come un modo per generare varianti della stessa rete. Non stiamo creando reti completamente diverse: i pesi sono gli stessi, l’architettura è la stessa, l’addestramento è lo stesso. Cambia solo quali parti della rete sono attive in un dato momento.

Ogni volta che la rete elabora un input con una maschera di dropout diversa, è come se stessimo interrogando una versione leggermente diversa del modello. Tutte queste versioni condividono la stessa “conoscenza di base”, ma fanno scelte leggermente diverse. In questo senso, il dropout non crea nuovi modelli indipendenti: rende esplicita l’incertezza interna di un unico modello.

Ripetere la previsione per capire quanto siamo sicuri

L’idea chiave è allora molto semplice: invece di chiedere una sola volta alla rete “qual è la risposta?”, glielo chiediamo molte volte, lasciando attivo il dropout anche in fase di test. Ogni volta otteniamo una risposta leggermente diversa. Se tutte le risposte sono molto simili, possiamo dire che il modello è sicuro. Se invece le risposte variano molto, significa che il modello non ha una convinzione stabile.

Questo procedimento è un esempio del metodo Monte Carlo: invece di calcolare qualcosa in modo esatto (cosa impossibile in questo caso), lo stimiamo osservando il comportamento medio di molte ripetizioni casuali. Alla fine, otteniamo non solo una previsione media, ma anche un’idea di quanto quella previsione sia incerta.

Entropia: misurare l’incertezza, ma con cautela

Per riassumere quanto una previsione è incerta, spesso si usa un concetto chiamato entropia. In parole semplici, l’entropia misura quanto una distribuzione di probabilità è “sparsa”. Se una classe domina nettamente, l’entropia è bassa; se tutte le classi sono più o meno uguali, l’entropia è alta.

L’entropia è utile perché fornisce un numero che dice “questa previsione è sicura” oppure “questa previsione è incerta”. Tuttavia, da sola non basta. Un’entropia alta può significare due cose molto diverse: o il problema è intrinsecamente ambiguo (incertezza aleatoria), oppure il modello non sa bene cosa fare perché si trova in un territorio che non conosce (incertezza epistemica).

In entrambi i casi l’entropia è alta, ma le decisioni da prendere sono diverse. Ecco perché è importante non fermarsi a un solo numero, ma interpretarlo nel contesto del comportamento del modello.

Perché tutto questo rende l’IA più affidabile

La forza di questo approccio sta nel fatto che permette ai sistemi di intelligenza artificiale di riconoscere i propri limiti. Quando un input è simile a quelli visti durante l’addestramento, le diverse “varianti” della rete tendono a concordare. Quando invece l’input è fuori distribuzione, cioè molto diverso da ciò che la rete conosce, le risposte diventano incoerenti e l’incertezza cresce.

Questo segnale può essere usato per prendere decisioni più sicure: fermare il sistema, chiedere l’intervento umano, oppure adottare una strategia più conservativa. In questo senso, la quantificazione dell’incertezza non serve solo a essere più “precisi”, ma a costruire sistemi di intelligenza artificiale più responsabili e affidabili.

In sintesi, il passaggio chiave è smettere di vedere le reti neurali come oracoli infallibili e iniziare a trattarle come strumenti che fanno il meglio possibile con informazioni incomplete. Il dropout, reinterpretato in chiave bayesiana grazie ai contributi di Yarin Gal e Zoubin Ghahramani, fornisce un modo semplice e potente per dare alle reti neurali una forma di “consapevolezza della propria incertezza”.

Non elimina il dubbio, ma lo rende visibile. E, in molti contesti reali, sapere di non sapere è il primo passo verso decisioni migliori.

Per un approfondimento matematico leggi questo articolo: