Advertisement

Neural Nets

Started by January 30, 2002 06:51 AM
20 comments, last by myfirstgame 22 years, 9 months ago
I think a lot of you need to learn a little more about neural nets. ;0)

Quoting from the neural net FAQ:

"In principle, NNs can compute any computable function, i.e., they can do everything a normal digital computer can do (Valiant, 1988; Siegelmann and Sontag, 1999; Orponen, 2000; Sima and Orponen, 2001), or perhaps even more, under some assumptions of doubtful practicality (see Siegelmann, 1998, but also Hadley, 1999). "

for further information see:

ftp://ftp.sas.com/pub/neural/FAQ.html#A_cando

You *can* use an ANN for this type of AI but it is inadvisable in this example unless you are prepared to devote a *lot* of time experimenting. A FSM is much easier to program and will give you far more control and acceptable performance.

Check out my website to see how you can use neural nets as a simple control system. You can find it here:

http://www.btinternet.com/~fup/Stimulate.html

(you need flash installed for the home page)

If you go on to do something interesting after reading my tutorial please let me know.
Hey Alex! Great site you have there btw. Keep up the good work.
Advertisement
fup, thanks for the support Your tutorial is now in the database, cheers for submitting it! I need to fix up the template formatting and it''ll go online. Sorry about the delay...


Artificial Intelligence Depot - Maybe it''s not all about graphics...

Join us in Vienna for the nucl.ai Conference 2015, on July 20-22... Don't miss it!

I was wondering about the applicability of NN to games... does anyone know a game which has succesfully used NN??
Collin McRae Rally 2, Black & White, Creatures

I think that''s about it! There are also three experimental hobbyist bots using NN, including mine...

Join us in Vienna for the nucl.ai Conference 2015, on July 20-22... Don't miss it!

well, mine too .. if you know german, at http://www.joebot.net/lampel/johannes/bll137.html there''s a documentation

@$3.1415rin
Advertisement
Some NNs are pattern classifiers. Take a series of inputs, and return an output that describes the inputs. EG: For an OCR program, take 100 inputs (for a 10 by 10 pixel grid) and ouput a number between 0 and 9 to describe the number portrayed in that square of pixels.

Some NNs are function estimators. Input one number and it spits out another. You could, using some simple physics formulae, create a function that, given the firing angle of a cannon of fixed muzzle velocity, returned the distace away the shell would land (assuming a flat plane). Or you could give an NN angles as inputs and actual landing spots as training values for a couple thousand epochs until it eventually, given an angle, outputs a number very close to the one that comes from your physics formula. Remember, they're function estimators .

Other NNs take several inputs (an input vector) and respond with several outputs (an output vector). This is similar to the first example I gave; it just classifies a pattern in terms of another pattern.

Think for a minute about whether any of the above situations accurately describe your NPCs. I doubt they do. For one thing, you have no training data. You have no known goals you want them to reach; all you want is sort-of-human-like behavior. Then, like most of the above posters, I feel that the best way to do this is to design the behavior yourself, using an FSM.



Edited by - TerranFury on February 5, 2002 5:16:57 PM
Alex: I''m interested in learning more about your bot project. Do you mean a bot for a FPS type game? If not, what sort of bot?

If it is for a FPS would you be kind enough to tell me a little about it as this application of ANNs has interested me for some time?

thanks

ps. maybe we could continue this discussion on your message board, what d''ya think?

I can''t think of any way to use traditional techniques like backprop since there is no training data. The only thing I can think of (which is, btw, very very slow) is to use a GA to evolve your ANNs.
Training an ANN by evolutionary methods has been consistently proven to be more efficient than backprop.

It all depends how you go about it. One of the most important things is to maintain diversity amongst the population otherwise you get premature convergence and you just end up with brute force way (mutation) of traversing the search space. Many techniques have been dreamed up for this including fitness sharing, speciazation and SANE to name a few.

And then there are the ways of actually evolving the network topology like Kenneth Owen Stanley''s wonderful NEAT technique.

My tutorial doesn''t go into these sort of optimization techniques because its aimed at complete beginners and I don''t want to confuse the issue. It''s hard enough getting your head around ANNs in the first place!

This topic is closed to new replies.

Advertisement