Advertisement

is neural network the only way?

Started by July 23, 2010 03:58 AM
24 comments, last by Neoncore 14 years, 6 months ago
is neural network the only way to make a AI that learns or i can make it in otherway


other question i made BI-Directional Neural Network That Saves it's memory into file

here is how it works

[OBJECT]Input Sends data to hidden layer , hidden layers trys random outputs between Input Value and 0 and if one worked it gets saved into memory file.

does this sound like neural network or it's just bad logic
A NN is never the only way ;-) In fact, there's rarely ever only one way to do things!

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

Advertisement
Why is it "BI-Directional"?

If you are constantly trying random values it isn't really learning. That sounds more like an evolutionary technique.

Typically you would assign random weights to the artificial synapses. Then adjust these weights in response to the given input and desired output to bring the result closer to want you want. You have said you have a hidden layer which makes the "back propagation" algorithm spring to mind.

Not sure of AI in the games industry but from what I've read neural networks are used when other forms of AI are not appropriate, perhaps a fuzzy inference system? Although these do not learn they can be implemented as a neural-fuzzy hybrid to enable the capturing of expert knowledge in the initial fuzzy sets and rules but with the learning capability of neural networks (this can eliminate false or redundant rules).

Have you started simple? Look up "Perceptron".

I have beginner knowledge of AI and no knowledge of AI in games. Take my advice carefully. I’ll expand on anything I’ve mentioned if you ask.
thanks for answers here is my header

http://codepad.org/GLapU1M9

can you give me any example how to make it work same as neural network?

do you have msn/yahoo so i can ask you a bit more ?


EDIT: i am also using it inside game to drive vehicle but it's for learning cause i like robotics and AI so i am trying to learn how to do it.
I only have access to the Internet at work so my methods of communication are limited. Also to elaborate on my beginner status I have never coded a neural network.

My experience is in fact totally from reading this book.

So don't get your hopes up that I alone can help you complete your project. Additionally anything I say to you here will be read my other people with more knowledge so they can warn you if I am wrong.

I'm not entirely sure how much experience you have and if giving you information you already know. If you are just starting neural networks this week, my information might be useful. But as I've said do not use me as your only source there may be problems trying to implement the things I’m saying in code and better methods to use.

I suggest you use the perceptron as an example (from the book) and work out on paper how the neuron weights will change up to the point it is trained. Can you already do this?

If you read the chapter on Neural Networks in the book I've shown you, you will see that that you have to initialise the weights and thresholds of each neuron. You then provide inputs and a desired output so that you can calculate error. The error, input and learning rate can be used to calculate the weight changes. Rinse and repeat (not the random bit) until trained.

If you can do this and wish to use multilayer networks I would again suggest that you learn it on paper or at least understand what the book is saying, then implement it in code. That’s just what I would do. Once you know the formulas you’re trying to code you can do it easier, once you have a program then play about and experiment a bit more where you will see the results a lot quicker than on paper.

On a side note if you are interested in the field you may wish to read about ALVINN. A neural network was used to control a van that learnt from having data presented to it collected from a human driving the same vehicle. A couple of considerations were: driving on a straight too long caused the weights to be adjusted too much towards driving on a straight and performing turns suffered as a result. Also they wanted it to learn to correct from swerving off but they couldn’t just swerve and correct because the network learnt to swerve too.
Machine learning comprises many techniques, most of which boil down to some combination of function approximation (neural networks, SVMs, least squares), dynamic programming (e.g., Q-learning), and a smattering of unsupervised heuristic methods (e.g., most clustering algorithms -- K-means, etc). This is a decent book, but there are probably better ones out there.

However, machine learning is also at most small part of making a working controller or game AI.

So let me ask you: What exactly are you trying to achieve? What task are you trying to get a computer to do?
Advertisement
actually what i am trying to achieve for now is driving simple car just for testing but i don't want it to be limited to anything later i will make it control characters or even use it In RTS game
So what exactly are your inputs and outputs? ANNs are a rather blunt instrument. Other machine learning algorithms (and there are a lot of them) can usually produce better results with less training data, but which one is most appropriate depends on exactly the data you're feeding in, and exactly the type of output you want.
Quote:
Original post by Neoncore
actually what i am trying to achieve for now is driving simple car just for testing but i don't want it to be limited to anything later i will make it control characters or even use it In RTS game


There's a ton of papers out there for ANNs as controllers in various paradigms, including games. Colin McRae and Forza racing games both have ANN-controlled NPC drivers.

The Drivatar page at Microsoft Research goes into some detail. Might be a good starting point:

http://research.microsoft.com/en-us/projects/drivatar/forza.aspx

a very big part of ML/AI is using the right tool. You need to understand your problem and realize which algorithm is best. Fuzzy logic makes excellent controllers but statistical methods are much better for a learning RTS thing. Sometimes you combine different methods because one simply is not performant or accurate or smart enough ala Ensemble Learning.

Excellent free book at :

http://www-stat.stanford.edu/~tibs/ElemStatLearn/

@Emergent. There are also Rule Based things ranging from FOL to Semantic Nets. Old school i know. I would also choose probability distribution approximators (the what) instead of function approximators (the how) as I do not think SVMs fall into the latter - this is not to go against SVR.
ERRR I dont think Im being clear. I dont get much time to write proper posts these days :(

This topic is closed to new replies.

Advertisement