Intelligenza artificiale e statistica: la scorciatoia matematica che rende le simulazioni fino a cento volte più veloci
Ogni giorno migliaia di ricercatori nel mondo utilizzano algoritmi che simulano milioni di scenari possibili per rispondere a domande molto concrete: quanto è efficace un nuovo farmaco? Come si diffonderà un’epidemia? Qual è il rischio di un investimento finanziario? Quanto è affidabile un modello di intelligenza artificiale?
Dietro queste analisi lavora una famiglia di metodi statistici nota come Markov Chain Monte Carlo (MCMC). Sono strumenti essenziali della statistica bayesiana e del machine learning moderno perché consentono di esplorare problemi con centinaia o migliaia di parametri, dove un calcolo esatto sarebbe praticamente impossibile. C’è però un limite che accompagna questi algoritmi fin dalla loro nascita, negli anni Cinquanta: sono stati progettati per procedere un passo alla volta. Ogni nuovo calcolo dipende dal precedente. È come leggere un romanzo: non si può capire il capitolo dieci senza aver letto il nove. Oggi, però, i computer sono cambiati. Server, cluster e GPU dispongono di decine o centinaia di processori capaci di lavorare contemporaneamente. Il paradosso è che molti degli algoritmi statistici più importanti riescono a sfruttarne solo una piccola parte.
È proprio questo il problema affrontato da Giacomo Zanella e Sebastiano Grazzi (entrambi del Dipartimento di Scienze delle Decisioni e centro di ricerca BIDSA, Bocconi) nel loro studio Parallel computations for Metropolis Markov chains with Picard maps da poco pubblicato su Biometrika.
La loro proposta apre la strada a una nuova generazione di algoritmi capaci di utilizzare il calcolo parallelo in modo molto più efficiente, riducendo drasticamente i tempi necessari per eseguire simulazioni statistiche complesse.
Perché queste simulazioni richiedono così tanto tempo?
Gli algoritmi MCMC funzionano costruendo una lunga sequenza di possibili soluzioni. Ogni passaggio utilizza le informazioni prodotte da quello precedente, migliorando progressivamente la conoscenza del problema.
Questa dipendenza rende difficile distribuire il lavoro tra più processori. Il modo più semplice per sfruttare un computer potente consiste nel far partire molte simulazioni indipendenti, ma questa strategia non accelera la parte più costosa del processo: il tempo necessario affinché ogni simulazione diventi affidabile.
“L'approccio più semplice per parallelizzare i calcoli consiste nell'eseguire più catene indipendenti. Si tratta di un'implementazione semplice da realizzare in parallelo, ma che non riduce il tempo di convergenza.”
In altre parole, si ottengono più simulazioni nello stesso tempo, ma ciascuna continua a impiegare lo stesso tempo per “imparare” la distribuzione di probabilità che si vuole studiare.
L’idea: anticipare il lavoro invece di aspettare
La novità introdotta dallo studio consiste nel cambiare completamente prospettiva. Invece di aspettare che ogni passaggio sia completato prima di iniziare il successivo, il nuovo algoritmo prova ad anticipare una parte della simulazione. Diversi processori lavorano contemporaneamente formulando una previsione sui passi successivi; l’algoritmo verifica poi rapidamente quali previsioni erano corrette e corregge soltanto quelle sbagliate. Il procedimento viene ripetuto più volte finché il risultato coincide con quello che avrebbe prodotto l’algoritmo tradizionale.
Dietro questo meccanismo c’è una costruzione matematica chiamata Picard map, ma il messaggio fondamentale è molto più intuitivo: anziché eseguire milioni di operazioni rigorosamente una dopo l’altra, diventa possibile farne molte in parallelo senza perdere accuratezza.
Un risultato teorico che cambia le regole del gioco
Il lavoro non propone soltanto un’idea elegante: dimostra anche, con strumenti matematici rigorosi, che questa strategia permette di ottenere un’accelerazione praticamente proporzionale al numero di processori impiegati, almeno per un’ampia classe di problemi statistici molto diffusi.
Per alcune simulazioni ad alta dimensionalità questo significa ridurre i tempi di calcolo di un fattore pari alla radice quadrata del numero di parametri del problema. Nelle versioni approssimate dell’algoritmo, gli esperimenti mostrano accelerazioni ancora maggiori, superiori a cento volte rispetto alle implementazioni sequenziali.
Gli autori sottolineano inoltre un risultato particolarmente significativo:
“Per quanto ne sappiamo, questo è il primo schema MCMC parallelo di ordine zero con un aumento di velocità dimostrabilmente lineare nell’impostazione canonica log-concava.”
In altre parole, è il primo metodo di questa famiglia per cui sia possibile dimostrare matematicamente che aggiungere processori produce un guadagno praticamente proporzionale nelle prestazioni.
Quando non esistono scorciatoie matematiche
Uno degli aspetti più interessanti dello studio è che gli algoritmi proposti funzionano anche quando il modello da analizzare è una vera e propria “scatola nera”. In molte applicazioni, infatti, non è possibile calcolare facilmente le derivate matematiche del modello, perché il software è proprietario, utilizza simulatori numerici molto complessi oppure integra codice sviluppato da esperti di discipline diverse.
In questi casi gli algoritmi tradizionali più veloci non possono essere utilizzati. Il metodo sviluppato alla Bocconi, invece, richiede soltanto di poter valutare il modello nei diversi punti della simulazione, rendendolo applicabile a un numero molto ampio di problemi reali.
Dall’epidemiologia alla medicina di precisione
Per verificare l’efficacia dell’approccio, gli autori lo hanno testato su problemi molto diversi tra loro. Le simulazioni comprendono modelli statistici ad alta dimensionalità, un modello epidemiologico utilizzato per studiare la diffusione delle malattie infettive e un’applicazione reale di medicina di precisione dedicata alla personalizzazione delle terapie oncologiche.
Quest’ultimo esempio è particolarmente significativo. Ogni valutazione del modello richiede la soluzione numerica di equazioni differenziali complesse e impiega circa un quarto di secondo. In queste condizioni il nuovo algoritmo ha ottenuto una riduzione del tempo complessivo di esecuzione superiore a due volte e mezza rispetto alla versione tradizionale, un risultato che potrebbe tradursi in risparmi molto maggiori su modelli ancora più complessi.
Una ricerca che guarda al futuro del calcolo scientifico
Il contributo di Grazzi e Zanella va oltre il miglioramento di uno specifico algoritmo. Sempre più modelli scientifici vengono eseguiti su computer dotati di decine o centinaia di processori, mentre molti strumenti statistici continuano a essere progettati come se dovessero funzionare su una sola unità di calcolo.
Il nuovo approccio contribuisce a colmare questo divario. Quando ogni simulazione richiede molto tempo, come accade nella medicina di precisione, nell’epidemiologia, nella biologia computazionale o in molte applicazioni dell’intelligenza artificiale, sfruttare davvero il calcolo parallelo può ridurre sensibilmente i tempi di analisi, permettendo ai ricercatori di esplorare più rapidamente modelli sempre più complessi.
Gli autori stessi indicano diverse direzioni di sviluppo, con l’obiettivo di rendere questi algoritmi ancora più efficienti. Ma il risultato principale è già evidente: anche una tecnica consolidata e utilizzata da oltre settant’anni può essere ripensata per adattarsi all’hardware del XXI secolo. Ed è proprio da innovazioni come questa, spesso invisibili al grande pubblico, che passano molti dei progressi futuri della ricerca scientifica.