Live data from Hacker News

NeuroEvolution – Flappy Bird

xviniette.github.io

91–100 of 103 posts

Re: NeuroEvolution – Flappy Bird

#93
post #86
post #62

Earlier quoted context omitted.

Sounds like you are noting that brute force is a very effective technique. Combined with explaining being a tough skill. It is seductive to want things to be elegant. It is costly to wait for the elegant solution.

If that's all it was then I wouldn't bother to bring it up. What I'm saying is that more focus on the beauty of a solution (e.g robustness, scalability, flexibility, simplicity ) can be a more financially sound solution in the long run than brute force. Of course, I'm not holding my breath for this to become the norm since using brute force to "get what we want now" is popular because it gets fast results (and this n…

I was not trying to dismiss what you said. If anything, I was condensing it into my understanding.

The basis is not that brute force is better. The essence is most of us are not seeking an elegant solution to a problem. We are seeking a solution to a problem. Often, just getting that answer is all that matters. Finding a more concise way to get it is something I fully agree that someone should be trying to do. And, in the long term, it is a huge boon if it is found. For most tasks, though, the original solution is all that was needed.

Re: NeuroEvolution – Flappy Bird

#94
post #62

Earlier quoted context omitted.

Sounds like you are noting that brute force is a very effective technique. Combined with explaining being a tough skill. It is seductive to want things to be elegant. It is costly to wait for the elegant solution.

Linked Observation: it is not very reliable in repetition. I ran the sim a few times and got wildly different results. - First time (about average) it stabalised (scopre >10,000) at Generation 18. - The quickest stabalisation was at Generation 3 - sometimes it got to Generation 50 without stabalising. Brute force will eventually get there, but I guess based on so few parameters it is easy to create a misleading weigh…

Right. But consider that if we just want a network that can play the perfect game of flappy bird, the correct answer is to find the parameters of a success and store those. Anything else is then just excess data. (This is calling the program that got the answer data. That happened to have been executed to get the perfect player.)

Re: NeuroEvolution – Flappy Bird

#95
post #25

Interestingly, the updates are done on the basis of only 2 external inputs [1]: the height of the bird in the screen and height of the aperture in the next pipe. Using only these two parameters the neural network decides whether to flap or not. I would had expected at least also the horizontal distance from the next pipe... [1] https://github.com/xviniette/FlappyLearning/blob/gh-pages/ga...

Yes. And the optimal policy is trivial given those inputs, as long as the aperture between pipes is larger than the "jump" height of the bird: if bird y + bird y velocity > bottom pipe y, jump. So finding that with a neural network or genetic algorithm is fairly silly.

If the aperture is smaller than the jump height, then you need to do something smart to time your jumps.

Re: NeuroEvolution – Flappy Bird

#100
post #15

Earlier quoted context omitted.

It is a using a genetic algorithm so learning lies in the mutation and crossover of chromosomes as well as selection of the fittest individuals. https://github.com/xviniette/FlappyLearning/blob/gh-pages/Ne...

It's also using a simple neural network, which is the target of the genetic algorithm, if I understood it right. I haven't seen this combination often - does that make sense in general, or is this just interesting as in playing around with those concepts?

Otoro has an excellent page graphically explaining the neuroevolution of an opponent for Slime Volleyball.

http://blog.otoro.net/2015/03/28/neural-slime-volleyball/

Post reply on HN