11 94212.3627 radio@radiodesign.com.br

Ver um programa aprender jogar um clássico dos games é uma excelente demonstração do machine learning. O MarI/O é uma I.A. com um algoritmo evolucionário e um objetivo simples, passar de fase no Super Mario World.

Sem receber instruções do que fazer ou para onde ir, o MarI/O teve a missão de passar por uma fase de Super Mario World basicamente por tentativa e erro. O programa não sabia nada sobre o jogo, e nada sobre Super Nintendo, apenas quais comandos estavam disponíveis, mas foi capaz de aprender sozinho como completar a fase através do processo de evolução neural.

 

 

Inspirado na evolução biológica, cada tentativa do programa herda as informações das tentativas anteriores, evitando os erros já conhecidos, e transmite suas informações adiante. A próxima geração aperfeiçoa o programa e chega mais próximo do final. Cada geração do programa tem um nível de “fitness”, que mede o quão longe a tentativa chega e o quão rápido consegue, e somente as tentativas que produzissem os maiores níveis de “fitness” são selecionadas e passadas adiante.

 

mario_img2

Frames do vídeo demostrativo

Criado por SethBling, levou 34 gerações para que o MarI/O finalizasse essa fase do Super Mario World. É interessante pensar que se o criador roda-se o programa novamente os resultados provavelmente seriam outros, encontrando um novo caminho para o final da fase. O algoritmo usado se chama NEAT, NeuroEvolution of Augmenting Topologies, que baseado em um paper de Kenneth O. Stanley e Risto Miikkulainen, que pode ser visto clicando aqui. SethBling também deixou disponível seu código para quem quisesse usá-lo e se você tiver interesse pode confira-lo aqui.

Uma rede neural com um algoritmo que aprende de maneira semelhante a evolução biológica, MarI/O é um simples, porém excelente experimento para demonstrar o funcionamento do machine learning e o potencial da inteligência artificial.

 


Gostou do post? Confira outros da editoria Terráqueos clicando aqui.

%d blogueiros gostam disto: