![]() Animation 1 shows an accelerated example (×2 speed) of a run where the directional pad was input randomly. Compared to the other races, it’s the easiest one. I chose to do the experiment on the first level of Excitebike ( map from ). Conversely, the vertical axis on the control pad makes the bike change lanes. The horizontal axis is used to gauge the angle of the bike, effectively lowering or raising the nose of the bike. To avoid the obstacles and make the best from the jumps, the control pad has to be used. Instead it concentrates its learning on overcoming the obstacles. ![]() For the sake of simplification, I made the AI always press A thus it doesn’t have to learn about managing the turbo. The A button is for the normal acceleration while the B button is for the turbo. To make the bike go forward in Excitebike, a player has to press an accelerator button – either the A or B button. ![]() Since the experiment is actually being run from an emulator, the AI will evaluate which input maximize the future outcomes, and digitize the buttons directly from the computer.įigure 1: How to play Excitebike from the official manual.įigure 1 shows how the controller needs to be used from the Excitebike official manual. Normally, to play the game, a player has to press buttons on the NES controller. In this case, the game is instead played from the Bizhawk emulator, which incorporate an interface to run computer programs in the Lua language. For the scope of this project, we need a very flexible framework. Normally, the game is played on a NES console. Finally, I will talk about features that could be improved. Furthermore, this blog post will show what the AI learned during its journey with examples of its improvements. I will focus on the right techniques that made it work. I will not go into details, preferring to point to other resources instead. I will briefly introduce the techniques used to make this work. This blog post will first present the environment of this experiment. Now, the scope is much bigger than a single jump: I want the AI to learn how to navigate through the entire race! Learning Excitebike follows a blog post that I’ve made some years ago where I sampled random trials of a single jump. I choose to make the AI learn to play the NES game Excitebike. Being more familiar with Gradient Boosting techniques than Neural Networks, I decided to give the method a chance. Recently, I stumbled upon this paper which outline a method for making an AI learn to play video games using a Gradient Boosting algorithm. ![]() This is not the only case, as there are multiple games played by AI that can be found on the Internet: Super Mario World, Pac-Man, Super Mario Kart, etc. A notable effort came from Deepmind with a Convolutional Neural Network algorithm that can play an handful of Atari 2600 games. This incredible development now even extends to video games. For example, it has learn to drive cars, translate languages, understand pictures, filter emails, etc. Following the incredible boost in machine learning applications in the recent years, people have made artificial intelligence (AI) learn many tasks. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |