Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seeking step by step tutorial #1

Open
chikiuso opened this issue Mar 15, 2018 · 7 comments
Open

Seeking step by step tutorial #1

chikiuso opened this issue Mar 15, 2018 · 7 comments

Comments

@chikiuso
Copy link

Hi, is it possible there is a step by step guide so I could try it at home? thanks!

@ChintanTrivedi
Copy link
Owner

Please follow's sentdex's "python plays GTA" tutorial series on YouTube. I used that tutorial to learn this myself, so I did not invest time in recreating an already excellent tutorial.

@GloryAndDream
Copy link

GloryAndDream commented Jun 13, 2018

Chintan, first of all, I am impressed your work! This makes AI bot possible, so cool~~~
And I got some questions below:

1, I saw you only define output movement as 4 direction ( up,down, left, right), actually, there are 8 direction for player movement, if I change this output array, does that mean previous train result doen't apply and I have to train it from beginning?

2, Why I see there is part of code for displaying button pressing of game controller in display_controller.py, but actually it did nothing?

@ghost
Copy link

ghost commented Jun 13, 2018

Well, I liked the code for interfacing to fifa. Don't know if it was borrowed from sentdex, but great nonetheless, saved me the effort. You should try World Models for this, I read that paper recently and it seemed really simple to understand. I also read sometime ago that RainbowDQN was way better than DQN, maybe that isn't state of the art anymore, so you should look at it for improvements. There is also Reptile algorithm from OpenAI which is supposed to be in meta learning category.

@ChintanTrivedi
Copy link
Owner

ChintanTrivedi commented Jun 13, 2018

@iamzgy48

  1. Changing number of keys from 4 to 8 will mean changing the last fully connected layer to estimate probability for 8 classes instead of 4. This means the task of learning will be really difficult and will require lot more training data. Currently I have it formulated as one-class classification problem with softmax activation+cross-entropy loss.

  2. The display controller code is for visualizing the neural net's output. If you flip the boolean variable 'visualize' in the code, you will see the output actions that the bot takes while playing the game.

@rajatpundir
I have acknowledged sentdex in the readme section, that guy is awesome :)

@GloryAndDream
Copy link

@ChintanTrivedi
I tested again, saw the visualization of game frame, quite interesting, I found out this object auto detection system almost can't detect ball, and also can't detect home team and away team player, only "player" in the screenshots, which brings to another question, If we train AI with this kind of raw data, seems not intelligent enough....

@ChintanTrivedi
Copy link
Owner

@iamzgy48
The actual game bot doesn't use these boxes in the algorithm. It uses the feature map which is generated before the bounding boxes are calculated. Only reason I trained object detector was to be able to train the entire network on something relevant. Bonus advantage, visualizing it looks cool.

@GloryAndDream
Copy link

@ChintanTrivedi
Don't you think the feature map should be categorized to different scenarios? e.g.
whether controlled team is Home or Away team
If the AI is trained with data corresponding to certain scenarios, maybe the result is better?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants