MarI/O, l'intelligenza artificiale che completa i livelli di Super Mario in soli 34 tentativi

MarI/O, l'intelligenza artificiale che completa i livelli di Super Mario in soli 34 tentativi

Il software di Seth Bling è in grado di apprendere gli errori da tentativo a tentativo, riuscendo a portare a termine un livello di Super Mario in soli 34 tentativi

di Nino Grasso pubblicata il , alle 11:01 nel canale Videogames
 

Gli sviluppatori di software di machine learning, che potremmo anche chiamare intelligenza artificiale, sono stati sempre parecchio interessati a provare le proprie routine sui vecchi capitoli della saga di Mario. Sarà per la sua struttura semplice o per il gameplay tipico da platform, o forse semplicemente perché è un'icona per ogni gamer che si rispetti, tuttavia il più famoso idraulico del mondo è sempre più spesso oggetto di esperimenti inerenti gli algoritmi di intelligenza artificiale.

L'ultimo lavoro in tal senso è MarI/O, un software che è riuscito ad imparare un intero livello del gioco di piattaforme in soli trentaquattro tentativi. A differenza di altri programmi simili, MarI/O non sapeva nulla del videogioco prima di essere stato scaraventato nel suo gameplay, nemmeno la direzione da seguire. L'unico parametro che osserva è un dato definito "fitness": l'AI sa che andando a destra il punteggio di "fitness" sale, il che è percepito come un bene.

MarI/O introduce nel gameplay nuove "idee" ad ogni morte: se queste portano a risultati positivi (aumento di fitness), queste vengono ricordate, viceversa verranno sostituite da nuove idee. MarI/O è riuscito così a completare il livello in 34 step "evolutivi". Se dovesse ripetere il livello, MarI/O comunque non ripeterebbe lo stesso pattern, ma cercherebbe con buone probabilità di trovare una soluzione ancora più efficace.

Questo stile di apprendimento è chiamato NeuroEvolution of Augmenting Topologies (NEAT). Non è un'implementazione nuova nel campo informatico, ma nel caso di MarI/O si rivela molto efficace. Passerà probabilmente parecchio tempo prima che il machine learning diventi cosa di tutti i giorni, tuttavia molte società hanno già mostrato interessa nelle routine di IA per gli ambiti più disparati, partendo da Google fino ad arrivare ad un'insospettabile NVIDIA.

9 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
aqua8419 Giugno 2015, 12:05 #1
mah...
un bambino ci riesce in 2-3 "step" a finire il livello, a meno che nn riesce già alla prima...

sono sempre scettico su questa famosa Intelligenza Artificiale
dubito che qualcosa di programmabile e programmato dall'uomo possa superarlo.

persino una "banale" partita a scacchi, dove ci sono regole prestabilite e la macchina parte sicuramente favorita, questa è stata battuta ugualmente dall'uomo.
zerothehero19 Giugno 2015, 12:15 #2
L'intelligenza di un bambino di 2-3 anni è stata sviluppata in circa 4 miliardi di anni di evoluzione..
Noi abbiamo iniziato da meno di un secolo a ragionare sulle IA..dai tempo al tempo.
D3stroyer19 Giugno 2015, 12:19 #3
come fa un pc a perdere a scacchi con un umano? Pensavo fosse impossibile
Timewolf19 Giugno 2015, 12:23 #4
Originariamente inviato da: D3stroyer
come fa un pc a perdere a scacchi con un umano? Pensavo fosse impossibile


ma infatti non ci perde.

il primo deep blue perse, ma con le capacita' di calcolo attuali credo che nessuno scacchista umano possa vincere contro una macchina
koni19 Giugno 2015, 13:43 #5
Originariamente inviato da: D3stroyer
come fa un pc a perdere a scacchi con un umano? Pensavo fosse impossibile


è da anni che vincono i computer :P
sarebbe più interessante una sfida su velocità di gioco e multi partite contemporanee come fanno certi campioni di scacchi
uc8419 Giugno 2015, 14:45 #6
Originariamente inviato da: D3stroyer
come fa un pc a perdere a scacchi con un umano? Pensavo fosse impossibile


si vede che non conosci il gioco degli scacchi. come ogni altro gioco con miliardi di mosse alternative, l'intelligenza "strategica" dell'uomo può ancora battere la capacità di calcolo dei computer.

i computer, fino a pochi anni fa, non facevano altro che calcolare su base statistica quale fosse la successione di mosse con la migliore probabilità di vincere.

l'uomo non può prevedere tutto in anticipo, ma è in grado di scompaginare le tattiche precalcolate, intuendo, pianificando e anche bluffando. è quello che si chiama lo "stile" di gioco.
ctoks19 Giugno 2015, 16:55 #7
Parafrasandoti "Si vede che non conosci"

Qui gli algoritmi di scacchi

https://chessprogramming.wikispaces.com/


Oggi, in 3 dei principali giochi, questa e' la situazione sw-miglior uomo
- scacchi: sw superiore
- shogi: sw quasi pari
- go: sw inferiore


Qui la complessita' dei giochi strategico-tattici che (in parte) spiega la graduatoria

https://en.wikipedia.org/wiki/Game_complexity


Ciao


Originariamente inviato da: uc84
si vede che non conosci il gioco degli scacchi. come ogni altro gioco con miliardi di mosse alternative, l'intelligenza "strategica" dell'uomo può ancora battere la capacità di calcolo dei computer.

i computer, fino a pochi anni fa, non facevano altro che calcolare su base statistica quale fosse la successione di mosse con la migliore probabilità di vincere.

l'uomo non può prevedere tutto in anticipo, ma è in grado di scompaginare le tattiche precalcolate, intuendo, pianificando e anche bluffando. è quello che si chiama lo "stile" di gioco.
bobafetthotmail23 Giugno 2015, 09:49 #8
Originariamente inviato da: aqua84
mah...
un bambino ci riesce in 2-3 "step" a finire il livello, a meno che nn riesce già alla prima...
Un bambino è molto avvantaggiato perchè vive nel mondo reale, Marioland è una versione 2D del mondo reale.

Qui l'unica cosa che sapeva questa AI era che doveva andare a destra. Nessuno ha spiegato l'interfaccia, i comandi nè li poteva intuire come farebbe un bambino che può utilizzare le conoscenze acquisite nel mondo reale (perchè questa AI non potrebbe neanche comprenderlo il mondo reale).

Come ad esempio il concetto di saltare in un ambiente con gravità, un bambino(o adulto) ha i centri di controllo motorio nel suo cervello che precalcolano le traiettorie balistiche ad esempio, e senza che lui debba capire nulla, sa che se lancia o cade o salta in un certo modo la traiettoria sarà X.

Questa AI la puoi confrontare forse con un neonato perchè il neonato non sa una mazza del mondo reale, e ci mette anni per diventare un bambino in grado di battere il primo livello di Mario in meno di 10 mosse.


Comunque faccio notare che è una AI, non è un algoritmo iterativo sdozzo che riparte sempre da zero e si muove a caso (tipo insetti).
Le strategie che fungono le ricorda e le applica di nuovo.
Ora il livello lo finisce SEMPRE in un tentativo, e lo fa in modo sempre più efficiente.

sono sempre scettico su questa famosa Intelligenza Artificiale
dubito che qualcosa di programmabile e programmato dall'uomo possa superarlo.
Le azioni di una AI sono programmate solo parzialmente dall'uomo.
Una AI è programmata per pensare, per ragionare, non ha soluzioni pre-determinate come un programma normale.
Pensa e trova soluzioni da sola.
Prova a casaccio e impara dai propri errori.
Trova soluzioni che nessuno gli ha mai detto nè inserito nel programma, perchè dipendono in parte dal programma (il suo pensiero/ragionamento) ma anche dall'interazione col modno esterno.

Questo è ciò che differenzia una AI da un programma normale. Una AI è programamta per pensare come fa un uomo, ma quello che pensa o le soluzioni che trova sono sue, non glie li ha detti nessuno.

Non sceglie la soluzione migliore tra una lista finita stabilita nel programma, ma la trova facendo prove e vedendo i risultati.

Ed è per questo che una AI può fare meglio dei programmatori. Perchè se la AI pensa meglio dei programmatori o semplicemente continua a provare senza arrendersi mai mille milioni di volte e ogni volta migliora la strategia, diventa meglio dei programmatori.

Ed è per questo che vengono usati algoritmi AI in tutti gli ambiti più avanzati (esempio motori di ricerca o sistemi di riconoscimento dell'immagine o simili).
Perchè se aspetti che qualcuno sia in grado di programmare un sistema convenzionale per fare una cosa del genere... aspetti troppo.

Se tu parli di AGI cioè le AI da film che non fanno 3 cose e basta ma sono unità grossomodo indipendenti e in grado di agire come persone, probabilmente non le fa nessuno ancora per un bel pò. Non c'è mercato.

si vede che non conosci il gioco degli scacchi. come ogni altro gioco con miliardi di mosse alternative, l'intelligenza "strategica" dell'uomo può ancora battere la capacità di calcolo dei computer.
Gli scacchi non sono strategici ma di memoria anche per gli umani (mappa troppo piccola, troppi pochi pezzi). Ed è per questo che un computer se la cava decentemente, perchè scansiona database con tutte le possiibili strategie e tutte le possibili mosse.

Se vuoi un gioco strategico serio e con regole meno assurde, guarda il Go.
Lì le possibili mosse sono varie decine di ordini di grandezza di più rispetto agli scacchi e un computer le prende senza tante possibilità.
Apachi2223 Giugno 2015, 12:21 #9
Pro MLG

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^