Neural networks and evolutionary algorithms for car racing AI
Hi all, I recently found this discussion on how to use neural networks to learn racing skills:
http://www.gamedev.net/community/forums/topic.asp?topic_id=459586
(also related is this older discussion: http://www.gamedev.net/community/forums/topic.asp?topic_id=351411 )
I couldn't reply in any of those threads as they are "too old", so I thought I'd do it here. I've been working on evolutionary algorithms and neural networks for car AI for the better part of the last three years, and I have a number of papers on this available on my website:
http://julian.togelius.com
And some simplified explanations (and videos) on my blog:
http://togelius.blogspot.com
I especially recommend having a look at:
(papers)
http://julian.togelius.com/Togelius2006Evolving.pdf
http://julian.togelius.com/Togelius2007Towards.pdf
http://julian.togelius.com/Togelius2007Multipopulation.pdf
(blog posts)
http://togelius.blogspot.com/2006/04/evolutionary-car-racing-videos.html
http://togelius.blogspot.com/2007/08/how-better-ai-can-make-racing-games.html
(thesis)
http://julian.togelius.com/thesis.pdf
I would be very happy for any and all feedback on these matters, so please let me know if you find these efforts interesting, useful, or just plain wrong! At least I understand that some people here are interested in the problem...
Please dont take this badly, but I do find it plainly wrong.
Quote from your interview on AIGamedev:
"What I’ve been doing is trying to find ways to use evolutionary algorithms, which are a type of algorithms inspired by biological evolution, in computer games"
And that why I wouldnt let any of that stuff in my game AI. What ever happened to analysing a problem and finding the best solution? No, thats for other fields, in AI people prefer to create problems that fit their favorite toys.
Imagine you are really making a racing game. You are using an evolved neural network as a controller for the AI pilot. Its five days to code freeze. Your producer ask you to change 1 specific behavior without affecting the rest of the AI. What can you do?
Quote from your interview on AIGamedev:
"What I’ve been doing is trying to find ways to use evolutionary algorithms, which are a type of algorithms inspired by biological evolution, in computer games"
And that why I wouldnt let any of that stuff in my game AI. What ever happened to analysing a problem and finding the best solution? No, thats for other fields, in AI people prefer to create problems that fit their favorite toys.
Imagine you are really making a racing game. You are using an evolved neural network as a controller for the AI pilot. Its five days to code freeze. Your producer ask you to change 1 specific behavior without affecting the rest of the AI. What can you do?
Quote: Original post by Steadtler
What ever happened to analysing a problem and finding the best solution?
How would you create personalized content then? These AI techniques solve problems that haven't been solved otherwise... In my mind, these are the best solutions.
Quote: Original post by Steadtler
Imagine you are really making a racing game. You are using an evolved neural network as a controller for the AI pilot. Its five days to code freeze. Your producer ask you to change 1 specific behavior without affecting the rest of the AI. What can you do?
- Jeff Hannan has already applied a neural network to the Colin McRae series of games with great commercial success.
- The same can be said about changing a very large HFSM 5 days before code freeze, it's equally fragile and fine tuned.
- Whatever methodology you used to train the NN (e.g. imitation) you could apply to change 1 specific behavior.
I'm not saying I'd use CI everywhere, but there are lots of unfounded prejudices in industry against CI, mainly because of lack of knowledge & experience.
People that are willing to get over those prejudices will be more successful in the coming years, IMHO!
Join us in Vienna for the nucl.ai Conference 2015, on July 20-22... Don't miss it!
Quote: Original post by alexjcQuote: Original post by Steadtler
What ever happened to analysing a problem and finding the best solution?
How would you create personalized content then? These AI techniques solve problems that haven't been solved otherwise... In my mind, these are the best solutions.
Why do you think there is no personalized content without CI? Any AI technique can be driven by dynamic data if properly designed to be so. Read Mr. Togelius's papers, read Mr. Stanley's papers. What I critizize is that they dont solve real-life problems of writing AI for today's games, rather they invent other problems that can be solved by their methods, while claiming the first. What you call the best solutions have everything my game designers and producers hate, and rightly so.
Quote: Original post by alexjc
People that are willing to get over those prejudices will be more successful in the coming years, IMHO!
Why did we first heard that about CI? Oh yeah, in the late '60s.
Its rather easy to call prejudiced or ignorant people who disagree with you, just like its easier to apply a random search to a problem, rather than doing the proper analysis work. This said, this thread is about Mr. Togelius's work. Having explained my opinion about it, I'll take my leave.
Quote: Original post by Steadtler
Any AI technique can be driven by dynamic data if properly designed to be so.
Oh, absolutely. But keep in mind CI offers tools to gather dynamic data in a useful form, so the "if properly designed to do so" bit is made much easier if you don't reinvent the wheel.
Quote: Original post by Steadtler
What I critizize is that they dont solve real-life problems of writing AI for today's games, rather they invent other problems that can be solved by their methods, while claiming the first.
If research doesn't make it easier for me to code my FPS bot then it's not a real-life problem? Why did Colin McRae used a NN, novelty? Jeff Hannan knew what he was doing and picked the best solution available...
If we can't understand such decisions, then it's probably because our skillset doesn't cover those fields. It's not a problem, but we shouldn't criticize techniques without practical experience with them.
Also, I agree with you that finding a problem for a technique, like Julian phrased it in the interview, is back-to-front and something that only academics do. However, in this case it turned out the application is very useful and practical.
Quote: Original post by Steadtler
What you call the best solutions have everything my game designers and producers hate, and rightly so.
That's interesting. Care to elaborate? What in particular do they hate? Do they have any experience with CI? What kind of game is it?
Quote: Original post by Steadtler
Why did we first heard that about CI? Oh yeah, in the late '60s.
But only since the last 5-10 years has these data-mining techniques have hit the mainstream, both in terms of libraries and applications. Now applying them to commercial problems is almost as easy as any other good-old-fashion-AI for those who know what they are doing.
Quote: Original post by Steadtler
Its rather easy to call prejudiced or ignorant people who disagree with you, just like its easier to apply a random search to a problem, rather than doing the proper analysis work.
My belief is that any widespread technology has its uses, and if we disregard it by default for a problem then we probably don't know enough about it. That applies to CI in this case.
Quote: Original post by Steadtler
This said, this thread is about Mr. Togelius's work. Having explained my opinion about it, I'll take my leave.
Well, I guess many other people feel the same way so now you've started this let's clarify things and find common ground!
Alex
Join us in Vienna for the nucl.ai Conference 2015, on July 20-22... Don't miss it!
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement