Neural Network...
Hello,
I have a very "theoretical" question.
I wonder if someone could summarize the principle of Neural Network. :?
What I know so far is that it sort of link several inputs (events) to several output (outcomes, actions). And also that you can have multiple layers in between.
Fine! Then the less obvious part is the learning. How does it learn???
The way I see it, so far, is that it learn to "choose/select/prefer" a given path for a given set of inputs. Yes, OK... But still... How does it learn to make this choice? I guess that you need some feedback function that tells, GOOD or BAD or EVEN...
Anyone feels like given lessons?
For the history, I've created a small prey/predator simulation. I've hardcoded the prey and predator behavior but now I would like to let them learn by themself (sort of)... The idea is that at each itteration, each creature have a list of "input event", e.g. "10 pred around", "closest pred at 1", "average pred at 2.5", "you are starving", "you are feeded", "3 friends nearby", "there are food nerbay", and so on. And, there are a list of actions that could be performed: "go to closest food", "run/escape", "try to mate", "do some moonwalk", and so on...
Unless I'm misunderstanding something, it seems that the best way to connect the list of events to the list of action is through a neural network... In all case, I will certainly read all example I could find to try to learn, but there is nothing like a good explanation... ;-)

Neural Network...
lol ive already made a simulatoin very simuler to that , but i get in trouble with the uni if i post it on the internet. if you want a look i'll e-mail it to you.
ok nerual networks
this will explane a simple one.
say you have two output nodes tierdness and hunger, you have a middle layer of nodes which these are connected to, and then 2 output nodes , sleep and eat.
imagine each middle node has a weighting. and for this simple network the biggest weighting is the domenent.
so by changing the wieghting of each node you change the overall effect
hunger=100 * wieght of 5 = 500.
tierdness=20 * wieght of 1 = 20.
so if its like this it will eat. if you changed the weighting enough you could make tierdness more important and make is sleep more and eat less.
so the nerual network adapts itself by changing these wieghtings. This is a very simple exzample but can be used well for creating a sumbsumptoin list. you basicly have a list of input varibles which have a wieghting, then have a if statement saying which ever varible*wighting is highest do. then you can allow a small genetic algorythem to change the wieghtings and change the order of subsumtoin.
of course you can do much fancyer things with nerual networks and have it so multiple wieghtings for example , the eat output has to be over 2 for it to eat but the hunger varible is worth only 1 and then it being safe is worth anouther one , so only when its safe and hungry it will eat.
ive probably just rambled. sorry
good luck (you'll need it with my explanatoin).
Neural Network...
Neural networks have interested me often, too, though I had trouble finding a use for them. I also had little knowledge of them, other than they are great for finding patterns, or best-courses-of-actions. This example (not ramblings!) was helpful.
Thanks!
~Moto
Neural Network...
I have a book recommendation which is not directly about neural networks, but it does build up to the conceptual description of neural networks from extremely simple circuits. It's probably my favorite artificial life book.
The book is called "Vehicles", and is the basis of the "Braitenberg" demos which come with breve:
http://www.amazon.com/gp/product/0262521121/sr=8-1/qid=1156770338/ref=pd_bbs_1/102-8432666-2991354?ie=UTF8
Braitenberg vehicles, like the ones included in breve, are extremely simple circuits in which you have motors connected to sensors with weighted connections. By changing the weights of the connections, you can change the behaviors of vehicle.
Through the book, Braitenberg adds in multiple connections between sensors and motors, as well as intermediate nodes which aggregate sensor information before sending them to the motor outputs. Although he doesn't use the word neural networks, his "circuits" are based on the exact same ideas and methods.
- jon
Neural Network...
Thank you all for your feedback! :-)
Jon, well if this is your favorite book, considering that the previous one that you recommanded was just great, I will definately buy this one... Thanks for the link! I'll also have a look at the Braitenberg example...
Noz, if you have an example on hand, I'm certainly interested. Could you try sending it through PM?
I must admit that I did not get everything you said, but I got the global idea. There are still a few things that are not clear... If I take your example: Input nodes (thiereness, hunger), ouput nodes (sleep, eat), in the middle: a weight function.
If I get you right, you should have:
input(tiereness) - weight(t-s) - output(sleep)
input(tiereness) - weight(t-e) - output(eat)
input(hunger) - weight(h-s) - output(sleep)
input(hunger) - weight(h-e) - output(eat)
or:
output(sleep) = input(tiereness) * weight(t-s) + input(hunger) * weight(h-s)
output(eat) = input(tiereness) * weight(t-e) + input(hunger) * weight(h-e)
with weight(t-e) = weight(h-s) = 0.
But, of course, you may assume situations where an output result may depends on several inputs (more then one weight are different then 0).
If this is it, then your explanation is clear as crystal. But, why should we need to have more then one level of middle layer?... Oh, OK... I think I got it... It's useful in cases where you have intermediate results. For example, input events, may triggers intermediate emotions which may triggers output reactions, hence you will have 5 level (input weigh(input-intermediate), intermediate result, weight(intermediate-output) and output).
OK, thank you! I think I have a good start now! :-D
Neural Network...
I dont know if you have matlab on hand but i would have a look , it has a fairly simple NN module on it , it would be a good way to play with a nerual network to understand how they work without having to write reems of code.
Neural Network...
No I don't have access to mathlab or mathematica... But still, I think I oculd manage from now on... If I find myself into trouble, I shall come back and ask... Thanks for the hint!