Javaday Roma Terza Edizione: There is no day like Javaday

Sarà sabato, 24 gennaio 2009, la Terza edizione del Javaday Roma http://roma.javaday.it.

L’evento è direttamente organizzato dai membri della Community Java italiana, con lo scopo di avere una manifestazione fortemente tecnica, focalizzata su: Java, i nuovi linguaggi e le tecnologie emergenti.
Il programma composto da 24 interventi, sarà suddiviso in 5 tracce principali: Core Java – What’s hot, Next generation Web, Java Enterprise, Open Source, New Languages.
I relatori degli interventi provengono sia dalla Community Java italiana sia internazionale.

Per favorire il coinvolgimento degli studenti la manifestazione sarà ospitata dall’Università Roma TRE.

Ci sarà una Campagna CV: i partecipanti potranno consegnare i loro Curriculum Vitae alle società sponsor. I rappresentati delle società saranno a disposizione per fornire informazioni sulle attività svolte dalle rispettive aziende.
Iona Progress, Red Hat, Ilog, SpringSource, Sun Microsystems, sono alcune delle società che hanno aderito all’iniziativa, la lista completa è disponibile sul sito del Javaday Roma.

La partecipazione è gratuita.

Informazioni logistiche:
Quando: sabato, 24 gennaio 2009
Dove: Roma, Facoltà di Ingegneria, Università Roma TRE
Sito: http://roma.javaday.it/

Infer.Net

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