by date
Neural Networks
Neural Networks
| Name: | Craig Fortune | ![]() |
|---|---|---|
| Date Posted: | Feb 08, 2007 | |
| Rating: | Not Rated | |
| Public: | YES | |
| Comments: | YES | |
| RSS Feed: | or Subscribe with . | |
| Profile Page: | View profile page for Craig Fortune |
Blog post
Well, I'll start with the old adage of "long time no blog" and further the cliche by saying "I intend to start blogging regularly from now on." Thing is though, for once I think I might actually mean it :)
Usually my attempts at regular blogging have always fallen flat on their face by the sheer fact of not having something that I could blog the progress on frequently enough etc, alas now I have! Introducing...
Neural Networks in Torque
There may be some of you out there who recognise my name as that of an artist, this is true enough. (I have credits in some TGB tutorial art and older T2D demos, the RTS Kit, Dimenxion - check it out ion the GG store, its free - amongst other such stuff as many a GID etc) However I'm also a degree student in my final semester, my degree is "BSc Hons Computer Games Development." What this means is that I'm also a programmer who is at a stage nearing when he's supposed to be industry ready to some level.
This is where neural networks come into the fray, for my final year project I'm doing a research paper into cooperation and complex behaviours using NNs. Of note to the GG community is that I'm integrating the NEAT approach into TGE, I'm also using the RTS Kit addon.
NEAT
More NEAT
I've noticed a lot of interest in the GG community for neural networks in the past and hence I thought it might be of some use/interest to people if I blogged my progress and maybe ultimately provide some sort of download/demo of it. Let me know if you're at all bothered about seeing this ;)
Where its at currently
A class derived off RTSUnit called NeuralAI is spawnable and a highly hacked version of "windowsNEAT" is sitting inside tge with a bit of script functionality hooked up to it. (In reality it's actually playing its own little invisible minesweepers game when you run an RTS mission :D)
Doesn't sound much but when you consider windowsNEAT uses STL, it was a chore to get in. In the end I simply decided to disable torque's memory manager as the main work around. The main controller class can be told by script to go through the ticks of its current population until it's time to epoch the system. Epoch, rinse, repeat.
I suppose in a really-odd-round-about-way that means I've got NNs working in TGE :P Of course it'd be a much more interesting proposition if you could either see it in action or at least see its outputs... next blog maybe ;)
Blog also here...
If you've read this far you're either bored or actually have an interest in this random twittering... my blog is also here: craigfortune.blogspot.com and it might also include things I don't put up on GG.
Usually my attempts at regular blogging have always fallen flat on their face by the sheer fact of not having something that I could blog the progress on frequently enough etc, alas now I have! Introducing...
Neural Networks in Torque
There may be some of you out there who recognise my name as that of an artist, this is true enough. (I have credits in some TGB tutorial art and older T2D demos, the RTS Kit, Dimenxion - check it out ion the GG store, its free - amongst other such stuff as many a GID etc) However I'm also a degree student in my final semester, my degree is "BSc Hons Computer Games Development." What this means is that I'm also a programmer who is at a stage nearing when he's supposed to be industry ready to some level.
This is where neural networks come into the fray, for my final year project I'm doing a research paper into cooperation and complex behaviours using NNs. Of note to the GG community is that I'm integrating the NEAT approach into TGE, I'm also using the RTS Kit addon.
NEAT
More NEAT
I've noticed a lot of interest in the GG community for neural networks in the past and hence I thought it might be of some use/interest to people if I blogged my progress and maybe ultimately provide some sort of download/demo of it. Let me know if you're at all bothered about seeing this ;)
Where its at currently
A class derived off RTSUnit called NeuralAI is spawnable and a highly hacked version of "windowsNEAT" is sitting inside tge with a bit of script functionality hooked up to it. (In reality it's actually playing its own little invisible minesweepers game when you run an RTS mission :D)
Doesn't sound much but when you consider windowsNEAT uses STL, it was a chore to get in. In the end I simply decided to disable torque's memory manager as the main work around. The main controller class can be told by script to go through the ticks of its current population until it's time to epoch the system. Epoch, rinse, repeat.
I suppose in a really-odd-round-about-way that means I've got NNs working in TGE :P Of course it'd be a much more interesting proposition if you could either see it in action or at least see its outputs... next blog maybe ;)
Blog also here...
If you've read this far you're either bored or actually have an interest in this random twittering... my blog is also here: craigfortune.blogspot.com and it might also include things I don't put up on GG.
Recent Blog Posts
| List: | 08/08/08 - iPhones and Productivity 07/22/08 - Building community in purely single player games 12/10/07 - Skinned Mesh XSI Exporting 06/25/07 - Vehicle mounting system progress (video) 06/23/07 - Graduation and Freelancing 03/02/07 - NeuralNet FSM mapping 02/26/07 - Neural Nets are learning! 02/19/07 - Backing-Up, Repositories, XSI and Neural Networks Progression |
|---|
Submit your own resources!| Johan Carlsson (Feb 08, 2007 at 08:52 GMT) |
I'm totally into NEAT.
I'm currently porting rtNeat to PyRex, because I want to be able to tweak it and play around with it, so its a port not a wrapper.
I'm also into other ANNs, mostly SOM, but neat really got me hooked on GA too.
My vision is to use GA for other things, like evolving creatures (e.g. models) in
parallel with the evolution of the NN.
Cooperation sounds really interesting, I've been thinking of using sound as communication
between individuals, for instance for dinosaurs hunting in a pack.
E.g a set of sounds that can be detected and a set of sounds that can be emitted are
connected to the NN.
This problem probably needs FS-NEAT so it just selects the sounds it actually needs,
making the potential set of sounds larger without blotting the initial NN.
Looking forward to see what you come up with.
Cheers,
Johan
| Maxim Lyulyukin (Feb 08, 2007 at 09:52 GMT) |
Anyway BIG job was done.. and more to be done... :)
I have basic knowledge about NN and interesting to see it in Torque, cause like more advanced AI in games.
| Craig Fortune (Feb 08, 2007 at 14:16 GMT) |
Sure NNs can be used outside RTS games but as per any AI they become quite specific to the game they're used in so my implementation will in turn be quite RTS specific.
However something I want to do is try creating a boss character ala World of Warcraft that uses a Neual Net to control its behaviour. Imagine a boss that'll pick an attack that screws up your group's main offensive tactic ;) That'll keep ya on your toes... hehe.
@ Johan:
Yea I've had a brief look at FS-NEAT and it looks pretty cool on the outset. Personally I find it weird to be thinking about dropping some inputs altogether, technically NEAT can do that anyway by making the weighting coming from said input to its linked neuron negligible. And although this method creates even more minimal networks thanm standard NEAT and apparently creates them faster and will score even higher, you have to stop and ask why are you hooking these inputs up in the first place if they useless? lol ;)
| Tom Bampton (Feb 08, 2007 at 14:37 GMT) |
Hmm... you know, it might be kinda interesting to branch A&T when you have some usable NN stuff working ;)
T.
| Tom Eastman (Eastbeast314) (Feb 08, 2007 at 22:02 GMT) |
| Craig Fortune (Feb 08, 2007 at 22:57 GMT) |
Take a look at the NEAT approach, it gets even more awesome than basic NNs. Then FS-NEAT, as mentioned above, takes it that one step further into awesomeness ;)
| Tom Eastman (Eastbeast314) (Feb 08, 2007 at 23:20 GMT) |
Any good links? The Wiki article is pretty weak.
| Craig Fortune (Feb 08, 2007 at 23:23 GMT) |
The paper on it. Its a bit of a beast to read for just one very particular subject, but its fascinating. Diagrams etc the whole way so it explains everything really well.
Also, its from MIT press, so you feel intelligent reading it :)
| Johan Carlsson (Feb 09, 2007 at 09:44 GMT) |
Quote:
And although this method creates even more minimal networks thanm standard NEAT and apparently creates them faster and will score even higher, you have to stop and ask why are you hooking these inputs up in the first place if they useless?"
First thing reason to let the Neat decide which inputs are useful is what you said,
the nets tend to be smaller and more efficient (links with zero weight are unnecessary links).
Smaller neat = more AI :-)
Second reason is that Neat does a much of a better job deciding what inputs are useful that
the human designer. So the human just need to provide any input they can think of and the FS-NEAT
may eventually find a use for it. Also if the Neat should be used to learn player strategies in real-time,
having additional unused inputs may be crucial. Inputs for one type of strategy might might be useless for another and the other way around.
Third, using feature selection makes it possible to give the Neat a very large of inputs to
evolve from, making it possible to evolve different species (not neat species, more like game-play species).
Each with its own evolutionary history and their own special strategies.
In a massive online world maybe even competing for recourses against other gp-species, creating a partial virtual ecosystems.
Edit:
Forth, FS-NEAT is such a small change to NEAT, and possible to rtNEAT as well so its definitively worth trying to implement.
Another innovation to NEAT I've found interesting is the rowing-eye.
The rowing-eye scans the input for useful patterns and use them.
The rowing-eye (that I know of) have only been applied to more discrete
types of problem, e.g. the board game Go, but have been very successful
in learning to pay Go incrementally (e.g. starting with smaller boards and
some what reusing strategies learn on smaller boards when moving to a large) .
I would like to investigate the possibility of using rowing-eye for some kind of
"visual sense", for instance scanning a array from a radar input instead of
feeding the whole she bang.
I'm hoping this would make it possible to use larger radars without bloating
the nets.
All my ideas are fairly untested and just wild dream at the moment.
So take it for what it is :-)
Edited on Feb 09, 2007 09:48 GMT
You must be a member and be logged in to either append comments or rate this resource.



Not Rated


