Tuesday, October 23, 2007

Oggi ho tenuto un piccolo seminario che aveva come tema quello delle reti neurali. O meglio: di come implementare efficacemente una rete neurale dato un training set vero e proprio.

Per coloro che non conoscessero le reti neurali, basti sapere che si tratta di un potentissimo strumento, in grado di risolvere (almeno in potenza) qualsiasi problema matematico/informatico. I passi da seguire per avere la propria rete neurale sono questi:

L'ultimo passo e' decisamente il piu' difficoltoso :) . Per semplificare il lavoro di coloro che volessero avvicinarsi alle reti neurali (fanno anche molta scena in una tesi di laurea ;) ) ho costruito un piccolissimo framework che implementa gia' la versione basilare degli algoritmi classici sulle reti neurali, applicando il tutto ad una rete abbastanza banale che calcola lo xor di due bit. Lo trovate su http://wwwstud.dsi.unive.it/~gmaggior/ANNDemo.zip.

Il sorgente e' in C#, e puo' essere compilato sotto Windows con Visual C# Express Edition (free) o, almeno in teoria, sotto Linux/Unix/MacOsX tramite il compilatore Mono. Li si trova su:

Ovviamente con una rete neurale si possono fare cose ben piu' interessanti. Al momento sto lavorando su un sistema per evolvere reti neurali (si, evolvere, in termini darwiniani) che facciano poi da AI per le entita' di un videogioco.

Se a qualcuno interessa qualcosa del genere, si faccia sentire (giuseppemag@gmail.com).