Infer.Net

Generico, Gnu/Linux

No, non è un gioco di parole e, ammetto, ho riso davvero per tanto tempo prima di capire il motivo che ha spinto la Microsoft a scegliere un nome così infelice per la sua nuova libreria.

Si perché Infer.Net è l’ennesimo parto dell’area Research della Microsoft (per intenderci quelli che hanno creato F#, C-Omega e altri progetti simpatici). Scopo di questa libreria è quello di fornire tutti gli strumenti tipici del calcolo probabilistico e della creazione di algoritmi che su di essi basano i loro risultati.

null

Nel video introduttivo, e nella relativa documentazione, è possibile assistere ad algoritmi che imparano a classificare le immagini in base ai nostri input (i famosi filtri Bayesiani) in modo semplice e utilizzando un insieme di classi che ci consentono di passare facilmente dal modello probabilistico al codice.

In pratica, scopo della libreria (disponibile in download come beta), è quello di consentire la creazione di algoritmi di inferenza Bayesiana fornendo una serie di classi già pronte allo scopo.

Un primo semplice (e forse banale esempio) è il seguente: supponiamo di avere due monete e di voler valutare la probabilità che lanciando in aria entrambe, cadendo, mostrino testa

Variable firstCoin = Variable.Bernoulli(0.5);
Variable secondCoin = Variable.Bernoulli(0.5);
Variable bothHeads = firstCoin & secondCoin;
InferenceEngine ie = new InferenceEngine();
Console.WriteLine("Probability both coins are heads: "+
        ie.Infer(bothHeads));

Il risultato è (ovviamente):

Probability both coins are heads: Bernoulli(0.25)

Possiamo però utilizzare l’inference engine per osservare una variabile e decidere la probabilità di un evento. Supponiamo che la variabile (bothHeads) che indica che entrambe le monete sono cadute come testa sia falsa e vogliamo calcolare la probabilità che la prima moneta sia testa; useremo il seguente codice:

bothHeads.ObservedValue=false;
Console.WriteLine("Probability distribution over firstCoin: " +
        ie.Infer(firstCoin));

il risultato sarà:

Probability distribution over firstCoin: Bernoulli(0.3333)

a cui possiamo facilmente arrivare notando che se la variabile bothHeads è false ciò implica una delle possibili condizioni sulle due monete: (testa, croce) (croce, testa) (croce, croce). Quindi la probabilità che la prima moneta sia testa è 1/3.

Buone inferenze!

Zac

Leave a Reply

Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



  • Google Adsense

  • MiniBlog

    Banner Javaday Roma III Edizione >>

    Adobe ha appena sfornato il Flash player nella versione 10, stavolta anche per Linux da subito! Incredibile >>

    When the source code to Quake was leaked and circulated among the Quake community underground in 1996, a programmer unaffiliated with id Software used it to port Quake to Linux, and subsequently sent the patches to Carmack. Instead of pursuing legal action, id Software, at Carmack’s behest, used the patches as the foundation for a company-sanctioned Linux port. id Software has since publicly released the source code to Quake, Quake 2 and most recently Quake 3, all under the GNU General Public License (GPL). >>

    Ganymede Donate, please ;) >>

    Download Day 2008 >>

    Scusa Ameri, Sun s’è comprata MySQL e Oracle s’è pappata BEA. >>

    Chi ha bisogno di un Mac quando con Linux abbiamo Compiz, Open Office, Inkscape, Scribus, Eclipse, Tracker, ed ora anche una Time Machine per recuperare al volo vecchi backup? Per ora manca lo sberluccichio di casa Apple ma il funzionamento è analogo: si chiama FlyBack! >>

    Giusto per ricordarvi che una delle distribuzioni Linux più diffuse sta per raggiungere le nostre scrivanie :D

    >>

    Anche se me ne vergogno come un ladro non posso esimermi dal pubblico ludibrio consentendovi di ritrovare tracce di me nella storia di Internet: era il 6 Ottobre 1995 ed il 4 Novembre 1995. E come non ricordare la mia prima Home Page>>

    Assegnati gli Ig Nobel per la ricerca improbabile qui e, appena possibile, qui. >>

  • Categories