Super Mario + Intelligenza Artificiale = MarI/O

0

Può una AI, sprovvista di qualsiasi tipo di nozione pregressa, giocare e finire uno dei classici per eccellenza tra i videogames? La risposta è si e può farlo con uno stile tutto suo.

Il software che ha preso parte all’esperimento, portanto avanti e scritto dallo YouTuber SethBling, si chiama MarI/O.

MarI/O è stato quindi catapultato all’interno di Super Mario World personificando il suo omonimo protagonista dal cappello rosso. Sprovvisto di qualsiasi tipo di informazione pregresse sul mondo di Super Mario e delle sue meccanico, MarI/O è stato fornito di due soli dati:

  • Set di pulsanti a disposizioni (A – B – X – Y – Up – Down – Left – Right)
  • Un valore che deve massimizzare: la vicinanza al castello che si trova in fondo (a destra) del livello

Nient’altro, ne training set ne altri valori o indizi. Il sistema non sa nemmeno che la distanza si riduce premendo il pulsante destra, per iniziare a percorrere il livello.

MarI/O è una AI basata sull’approccio NEAT (MarI/O Intelligenza ArtificialeNeuroEvolution of Augmenting Topologies). Questo tipo di reti neurali cercano di adattarsi al task tramite un processo evolutivo anziché tramite l’apprendimento attraverso dataset dedicati.

Ciò che contraddistingue le NEAT dalle altre tipologie di reti neurali è la struttura dinamica della rete stessa. In questo caso a cambiare non solo solo i pesi all’interno degli algoritmi di machine learning, ma anche la struttura della rete in termini di numeri di nodi e loro interconnessioni. La rete evolve durante il procedere del problema (nel nostro caso il livello di Super Mario World) cambiando al fine di fornire la più alta efficienza e il miglior fit possibili.

Diamo però un occhiata più da vicino alla schermata ti gioco di MarI/O al sistema.

Questi sono gli input, è ciò che MarI/O vede. I quadrati bianchi sono blocchi su cui può stare in piedi mentre i quadrati neri sono i nemici.

MarI/O, output, rete neuraleA sinistra: questa è la shermata degli input, è ciò che MarI/O vede. I quadrati bianchi sono blocchi su cui può stare in piedi mentre i quadrati neri sono i nemici.

A destra: ci sono invece gli output della rete. Sono le azioni, i diversi pulsanti, che MarI/O può performare

Questà è la rappresentazione della  rete neurale Rete neurale, neuroni, MarI/Oche
collega input e output. I blocchi bianchi sono i singoli neuroni mentre le linee sono le loro connessioni, Nodi e connessioni si accendono e spengono in base al punto del livello e al contesto fornendo quella struttura evolutiva della rete di cui avevamo accennato all’inzio.

In ultimo diamo uno sguardo ai parametri della schermata.

MarI/O, rete neurale, generazione, genoma

  • Fitness: rappresenta il livello di avanzamento del giocatore nel livello. Banalmente è il numero di quadrati che sono stati percorsi sino a quell’istante in direzione del castello (della fine del gioco)
  • Max Fitness: è la miglior performance raggiunta dal sistema (il livello in particolare raggiunge la conclusione con una performance di 4322)
  • Gen: indica invece il numero di “Generazioni”. In un sistema NEAT il “problema” viene affrontato in un susseguirsi di “tentativi” che rappresentano, in un certo senso, il processo evolutivo della rete. All’aumentare dei tentativi aumenta il “Max Fitness” del sistema.
  • Species: è il numero totale di configurazioni di reti che sono state generate dal sistema. Ogni generazione ha una rete di riferimenti, al cambiare della generazione cambia la rete. Come potete vedere non tutte le reti sviluppate vengono usate da MarI/O (44 reti su 20 generazioni indica la presenza di 24 reti in eccesso) questo perché ogni volta che il sistema scopre una rete più efficiente (che massimizza più rapidamente la “Fitness“) per una data generazione fa prevalere quella rete su quella obsoleta. Questo processo di scoperta di nuove reti deriva da variazioni randomiche (pulsanti premuti a caso) che il sistema inserisce lungo il percorso di risoluzione del problema, se la variazione comporta una maggior efficienza una nuova rete (specie) nasce. Le reti “obsolete” non vengono tuttavia scartate, ma rimangono come una sorta di patrimonio genetico del sistema.
  • La % che invece vedete a destra rapprenseta la percentuale di completamente di un genomo, che rappresentano i singoli componenti di una specie (si potrebbe dire che ad ogni tot genomi corrisponde una specie).

In definitva, MarI/O è riuscito con una certa semplicità a superare il primo livello di Super Mario World. Ma le sue avventure non si sono fermate lì.

SethBling Super Mario, MarI/O, Machine learningha infatti messo alla prova la sua creatura, oltre che su Super Mario World, anche su altri livelli e altri giochi tra cui: Super Mario Bros, Donut Plains 4, Yoshi’s Island 1 e Super Mario Cart.

Per quanto il sistema abbia comunque dato altre soddisfazioni (ad esempio la scoperta in autonomia di piccoli glitch come quello che potete vedere nell’immagine qui a destra) non si è sempre rivelato efficace nel superare tutti i livelli e le problematiche incontrate. Ciò di cui il sistema sembra infatti mancare è la capacità di analisi strategica volta a superare un ostacolo.

Super Mario, MarI/OUn giocatore umano, davanti un tunnel troppo alto da saltare (come nel livello rappresentato nell’immagine a sinistra), sarebbe in grado di fermarsi, analizzare la situazione in cerca di altri componenti meno ovvi da poter essere sfruttati per superare l’ostacolo (come la piattaforma in movimento appena superata). MarI/O invece affronta la situazione a tessta bassa, affrontando il problema solo una volta che è sopraggiunto, senza prendere in considerazione l’idea di tornare sui suoi passi per analizzare altre possibili strategie. Per poter superare il tunnel ha quindi bisogno di un piccolo colpo di fortuna: un “salto” deve essere randomicamente inserito tra gli output in modo che gli permetta di sfruttare con le giuste tempistiche quella piattaforma, caso non impossibile ma decisamente remoto.

 

Fonti:

  • SethBling YouTube Channel – LINK 
  • Evolving Neural Networks through Augmenting Topologies Paper by Kenneth O. Stanley and Risto Miikkulainen – LINK
Share.

About Author

Studio Business Administration ma sono appassionato di Big Data e AI. Quello che faccio: Coworking, TEDx e Wearable. Quello che sono: uno studente di Economia con il rimpianto di non essersi iscritto ad Informatica. Quello che voglio: vedere oltre.

Leave A Reply