Nello studiare le le reti neurali abbiamo realizzato un’applicazione giocattolo. Ci siamo basati su una library che gestisce reti neurali evolutive a topologia fissa. Si tratta di un tipo di rete non supervisionata, cioè che riesce ad imparare dai propri errori senza la necessità di attingere da corposi database di esempi preparati da esseri umani ed particolarmente adatta per applicazioni di vita artificiale, robotiche e per i videogiochi in generale. Non necessita di potenze di calcolo elevatissime, almeno con reti di dimensioni ridotte.
Le regole su cui si basa sono le seguenti: gli individui devono volare all’interno dei limiti dello schermo, se toccano i bordi muoiono, così come muoiono se toccano uno dei muri che scorrono. Gli individui che sopravvivono più a lungo hanno maggiori probabilità di riprodursi e passare i propri “geni” alla prole.
La riproduzione avviene mescolando il “codice genetico” dei genitori e poi si applica una mutazione casuale. Per geni e codice genetico si intendono i pesi delle sinapsi che collegano i nodi della rete che forma il loro “cervello”. Stiamo parlando di cervelli di 15/20 neuroni, quindi molto molto semplici. È comunque incredibile quanto possano fare con così poco.
L’obiettivo è quello di far evolvere individui che imparino a volare perfettamente evitando gli ostacoli di difficoltà sempre maggiore.
All’inizio si spiaccicheranno tutti contro le pareti o i bordi dello schermo, poi, piano piano, imparano a volare dritti. Questo è il momento per aumentare gradualmente la difficoltà variando i parametri ambientali come, ad esempio, aumentando la variazione verticale dei muri per selezionare gli individui più capaci a centrare i passaggi.
In quante generazioni tu riesci ad ottenere creature che svolazzino con maestria tra gli ostacoli?
Puoi provare il giocattolo cliccando il link sottostante