GEN e linguaggi di programmazione probabilistica: cosa sono?
I linguaggi di programmazione probabilistica sono dei particolari linguaggi di programmazione in grado di creare modelli e previsioni, analizzando campioni di dati. Sono anche detti PPL e comportano una vera e propria evoluzione nel modo di scrivere i software.
Pur essendo ancora in fase embrionale, queste nuove tecniche di scrittura informatica lasciano intuire le enormi possibilità applicative (che spaziano in diversi settori). Alcuni sistemi fanno già uso di PPL relativamente semplici, con risultati molto incoraggianti.
Il ragionamento probabilistico è un aiuto concreto
Riuscire a programmare software capaci di compiere ragionamenti complessi è un sogno che l’uomo persegue ormai da diverso tempo. Ad oggi la programmazione probabilistica sembra essere la via più concreta per raggiungere tale obiettivo e i primi esempi di successi non si sono fatti attendere.
Le grandi IP del web stanno già lavorando su programmi, che sfruttano il ragionamento probabilistico per analizzare grosse quantità di dati ed estrarre grafici – previsioni il più verosimili possibile. I campi di applicazione sono svariati e spaziano dall’andamento delle borse, fino al riconoscimento facciale e alla ricostruzione 3D di volti presi da foto 2D.
Le potenzialità offerte dalla programmazione probabilistica sono tante e in continua evoluzione. Fra i più noti software attualmente in uso vale la pena citare: Fossetta e Chimple (basati su linguaggio Java), Infer.NET (basato su fremwork.NET) o PRISM (per Prolog). Altri utilizzano invece linguaggi di programmazione autonomi, come ad esempio avviene per WinBUGS o Stan.
Lo scopo ultimo di tali programmi è quello di aiutare gli esseri umani a prendere decisioni oculate quando vi è incertezza. L’idea è tentare di codificare e analizzare ogni variabile, creando previsioni accurate che aiutino a scegliere una certa opzione, grazie al supporto concreto dei dati statistici.
GEN il nuovo esempio di programmazione probabilistica
Quello che propone il MIT (Massachusetts Institute of Technology) è un linguaggio di programmazione probabilistica di nuova generazione, denominato GEN. La caratteristica che lo distingue rispetto agli altri software già presenti nel mercato, è la possibilità di essere utilizzato facilmente dagli esperti, come anche da chi non ha particolari conoscenze nel coding.
La struttura di GEN funziona grazie a tre strumenti principali, che ne vanno a definire le caratteristiche più interessanti:
- dispone di una funzione generativa capace di inglobare diversi modelli probabilistici;
- possiede linguaggi di modellazione interoperabili;
- ha algoritmi di inferenza ad alto livello di astrazione.
Il linguaggio di programmazione su cui si basa GEN è Julia, al quale sono stati implementati altri strumenti di supporto come: il DML (un compilatore che genera funzioni contenenti hash-table, utili per la creazione dei grafici), l’SML (che si occupa dell’analisi statistica) e il TML (che agevola l’impiego di reti neurali profonde).
I risultati di GEN rispetto agli altri linguaggi di programmazione probabilistica
Per verificare la precisione dei modelli restituiti da GEN, sono stati realizzati i medesimi test anche con altri linguaggi di programmazione probabilistica già in uso. Le prove effettuate hanno riguardato:
- regressione robusta sull’algoritmo di Bayes;
- apprendimento gaussiano;
- stima 3D che prevede la disposizione delle persone in una stanza;
- modelli non lineari per la previsione degli stati nello spazio;
- modelli per agenti autonomi.
Tutte queste prove hanno dato esito positivo, confermando le enormi potenzialità applicative di GEN. Tale linguaggio di programmazione probabilistica può essere impiegato in innumerevoli campi di ricerca e, pur essendo ancora in fase di testing, rappresenta per molti il futuro della programmazione intelligente.
