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

Narrow the scope of the neural network to evolve a heuristic function #26

Open
FausticSun opened this issue Mar 20, 2018 · 0 comments
Open
Assignees

Comments

@FausticSun
Copy link
Owner

As discussed a bit on Monday, we use the NEAT algorithm to train a network to be a heuristic function, i.e. the neural network takes in the field and any PDIs (aka features) and outputs a single value which is how desirable that state is.

That means the fitness evaluation and tetris simulation will need to be changed to simulate all possible actions and the corresponding states and run the states through the evolve neural network. You can port over the code from TetrisState in GeneticHeuristcTetris repo (change the return value of evaluateHeuristic to be the neural net output).

In terms of initial network structure try directly connecting essential PDIs to the output and leaving the field inputs and other less important PDIs disconnected. Theoretically it would be the same as a normal heuristic function where the weights of the edges are the weights in the heuristic function, but because it's running NEAT it has the ability to evolve more features (and discard irrelevant features). You can take the features I've implemented from the paper (leave disconnected because there's too many) and El-Tetris (connect all 6 since it offers good performance on my runs), and also take features implemented by our senior here (connect and disconnect as you see fit).

Go ahead and split this issue up and assign new issues to yourself so we know what part you're working on.

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