Il ragionamento probabilistico del primo ordine
Si tratta di un campo di studio abbastanza promettente. Il ragionamento probabilistico del primo ordine consiste nel costruire una rappresentazione della realtà utilizzando un linguaggio basato sulla logica del primo ordine e il calcolo probabilistico condizionato. Un esempio è la seguente asserzione:
P(Pioggia) = true | CieloNuvoloso=true = 0,80
Significa che la probabilità di pioggia è pari al 80% quando il cielo è nuvoloso ( probabilità condizionata ). E' un esempio banale... ma rende l'idea.
Questa rappresentazione della realtà è alla base del ragionamento probabilistico nei modelli RPM. In questi sistemi le classi sono utilizzate per indicare le proprietà degli oggetti. Ad esempio, il prezzo dell'oggetto X può essere scritto nel seguente modo:
Prezzo(x)
Le classi sono anche utilizzate per indicare l'appartenenza degli oggetti a un insieme. Come accade in qualsiasi linguaggio RDF di vecchia generazione.
Ad esempio, per dire che il padre di Mario è un dottore si può scrivere nel seguente modo:
Padre(Mario)=dottore
Ipotizziamo ora di avere centinaia di migliaia di queste asserzioni, alcune sono affermazioni certe ( fuzzy=1 ) altre sono condizionate alla probabilità e ad altri eventi e sono incerte ( fuzzy<1 ). Il risultato è una base di conoscenza probabilistica con un'infinità di situazioni, detti modelli o spazio dei mondi possibili.
A seconda degli stati, mutano anche le relazioni tra gli oggetti, quindi non è possibile rappresentare questa conoscenza con un'unica rete bayesiana. Ad esempio, il presentarsi di una situazione nell'oggetto X può annullare la relazione logica tra gli oggetti Y e Z. In pratica, un arco della rete esiste soltanto se X è falso.

Se il cielo è coperto, nell'80% dei casi piove... Se piove è sicuro che il prato è bagnato. D'altra parte, se piove si disattiva il sistema di irregazione, salvo l'ipotesi di guasto del sensore del 1%. Se il sistema di irrigazione ( nodo Z ) è disattivato viene meno la sua relazione con il prato bagnato ( nodo Y ). La rete perde così un arco tra due nodi ( Z, Y ) in conseguenza dello stato di un altro nodo ( X ).
E' un caso semplice ma rende l'idea. Una situazione del genere si può verificare su migliaia di archi e la mutevole configurazione delle reti bayesiane rende praticamente impossibile analizzare tutte le situazioni possibili, seguendo l'enumerazione completa.
Per studiare queste reti è preferibile affidarsi a un algoritmo MCMC ( Monte Carlo Markov Chain ). In pratica, si attribuiscono alle variabili uno stato e si modificano casualmente gli stati dei nodi, uno dopo l'altro.
- Si assegna a tutte le variabili uno stato
- Si modifica lo stato di un nodo assegnandogli un valore casuale del suo dominio, tenendo comunque conto delle relazioni e degli stati degli altri nodi della catena di Markov
- Si procede per N iterazioni
Un campionamento MCMC è utile anche per avviare un processo inferenziale. Ad esempio, posso usarlo per stimare la probabilità di un evento al variare delle condizioni di ambiente, tenendo conto delle probabilità semplice e condizionata degli eventi stessi.
Questa tecnica mi consente di analizzare reti di conoscenza molto grandi e complesse, in particolar modo quelle in cui le relazioni tra i nodi sono incerte.
17 / 07 / 2015
