|
-
Nov 30th, 2009, 06:53 PM
#1
Neural Net Doubts
I'm working on a robotic brain project. The bulk of the brain is a pseudo neural net trained through a GA. There are numerous modules in the higher brain functioning, and for one of them, I thought that I could use a standard neural net. This has led me to doubt the value of neural nets.
The place that the net will work is a function that has to determine whether to respond with Panic, Caution, or Nothing, as a result of a variety of inputs. My thought was that the inputs would be a few sensors, and a few internal state variables. Basically, there would be six possible inputs: Four were internal state variables, and two sensors. An alternative thought was that ALL sensor input would enter into the neural net, rather than just those sensors that would be necessary for the decision. The training seemed to be a matrix of inputs and outputs, such that for a set of inputs I, there would be a preffered output. The weights on the neurons would then be trained via a GA until for any set of inputs, the correct outputs were recorded.
That doesn't seem right. It seems to me that, if I can actually determine what the correct response should be for any set of inputs, then there is no need for the neural net at all. For example, two sensors should cause either Panic or Caution, with the actual choice mediated by the other state variables in a multitude of ways. Therefore, why not simply state:
If sensor = X OrElse sensor = Y Then
rather than going through the training of the neural net to ignore all sensory inputs other than X or Y for making this decision.
In short, it seems that a fully trained neural net could be replaced by a rigid decision tree. If that is the case, what is the value of the neural net?
For instance, if I was to take a 64x64 grid, and try to train a neural net to recognize the letter A in the pixels of that grid, I would have a huge number of inputs, and there would be a bunch of training, but how would the training happen? Would the net be given a series of grids, or even all of them (2^12 is a lot of grids, but not unmanageable), and the net would say A or Not A, while somebody would grade the grids for their A-ness?
I suppose that in that example, the very number of inputs makes a hard coded decision undesirable, whereas in my case, the number of inputs is really quite small.
I guess what I am trying to figure out is how the training is done. Who decides success or failure? Do you train for a certain set, and let the NN figure out all the other cases? Perhaps the training would be against a set of a dozen A and Not A grids, and once the NN had trained to them, then any other grid could be tried.
This kind of baffles me. With this robot project, I have figured out a means to train the whole brain: Dreams. The brain is a massive GA with thousands of genes contributing in a myriad of different ways to the final behavioral decision. A dream would be a manufactured scenario that would target one portion of the GA to train for a certain outcome. Figuring out the right and wrong of a dream is simple enough, as the outcome of the behavioral decisions can be evaluated based on just a few factors such as power consumption, goal achievment, and so forth. Therefore, while the robot is running, or while the robot is not, the brain can be busily dreaming (spread across several processors), and the robot can be learning. But how would an NN learn? It seems like an NN would work when you can have a training set that is a tiny subset of the total potential set. In my case, the total potential set is not all that large, such that it would be possible to test against the entire set. Is it true that a NN has no real value in such a situation, or am I missing something?
My usual boring signature: Nothing
 
-
Dec 1st, 2009, 04:29 AM
#2
Re: Neural Net Doubts
Give a look at Fuzzy Logic
-
Dec 1st, 2009, 09:52 AM
#3
Re: Neural Net Doubts
My logic is as fuzzy as it gets. Do you have any link that you particularly like?
My usual boring signature: Nothing
 
-
Dec 1st, 2009, 01:44 PM
#4
Re: Neural Net Doubts
The value of a neural net is not to fully train it, mostly because with a complex enough neural net, you can't fully train it. Thus, the neural net will try "best guess" scenarios and fill in the gaps in it's training with it's own observed results that it obtained from it's best guess.
Neural nets also make more sense when dealing with analog ranges and complex sensing like vision systems. Imagine a robotic car designed to follow the road. It has a set of parallax cameras for eyes to try to detect the edges of the road. You just can't train it for every condition it'll ever come across while driving, so you build a neural net and train it in the basics. After a while, you take it around and let it train itself.
-
Dec 1st, 2009, 02:30 PM
#5
-
Dec 1st, 2009, 09:55 PM
#6
Re: Neural Net Doubts
So, in my case, where the total set of inputs is small enough to be manageable, then a true neural net is probably not an ideal solution.
Instead, I think I will be using my pseudo-neural net design. The goal of the design is to put NOTHING into hard coding. Every decision is a gene in a genome, which means that the whole thing acts like a giant neural net with no true hidden layer. This also ends up resembling fuzzy logic if carried far enough, as no two instances will ever be the same due to combinatorial explosion. By using a VERY rich and diverse genome to drive any aspect of decisions, the results take considerable training, but they are anything but deterministic.
When I started out on this question, I was thinking that the learning involved with deciding whether to respond with fear was too complicated to handle with a pseudo-neural net, and was looking at making a true neural net for this particular question. However, as I laid out how to create a net trainer, I eventually realized that I actually knew what was the correct response to every input. All that remains was to allow the genome to direct the decisions, just in case what I thought was the correct response actually wasn't.
My usual boring signature: Nothing
 
-
Dec 2nd, 2009, 09:19 AM
#7
Re: Neural Net Doubts
Right. see, in a true neural net, a fear response could be very complex. Take humans for example:
Here's our training:
We know teeth hurt if bitten, so we fear it.
We know claws hurt if slashed, so we fear them.
We know there is a difference between animal intelligence and sentient intelligence, so we tend to fear animal intelligence since it's unpredictable and not so much sentient intelligence since it's most likely reasonable.
We know that barriers that prevent flight are dangerous, so we fear being in situations where we can't flee.
So, I drop a human in a cage with a tiger, EVERYTHING screams "FEAR!" and the human behaves that way. Only extreme complexities like in-depth knowledge of tigers feeding habits, tiger sociology and behavior patterns, the exact tiger in question, and past experiences with tigers might overcome this; and allow a trained tiger zookeper to care for the animal. Even so, the right conditions could elect a fear response from the zookeeper (no exit routes, an unfamiliar animal, observance that the tiger is displaying aggressive behavior).
Now, put the human in a city street and have him meet some toothy, clawed, tiger like alien dressed in clothing who arrived in a spaceship (think Kilrathi from Wing Commander).
It has teeth and claws so we fear it.
It's obviously sentient and has developed technology which means it may behave rationally and shouldn't be feared.
We can take off running down the street so we got an exit route.
In this case, we may be conflicted. It's going to take other factors to determine whether we show the fear response or not. Is it showing aggressive tendencies? Does it have weapons? Is it trying to communicate?
-
Dec 2nd, 2009, 10:35 AM
#8
Re: Neural Net Doubts
Quite so, though I would take it to a lower level. We can fear a tiger without fearing teeth or claws (it took me a bit to figure out how teeth hurt if bitten, as I have never bitten my teeth ), because what we are really learning is patterns. Some set of visual cues enters our eyes and we interpret that as 'Tiger', and may or may not interpret that as danger based on all the other factors that go into the situation. That is the level that I am going for with the robot. Not the conscious recognition of tiger, but the sensory recognition of a pattern that is recognized as threatening, though the response is also dependent on the other situational inputs. However, the robot will be receiving a VERY tiny amount of information compared to that delivered by our eyes alone. This makes pattern recognition easier.
As an example, the bot will see a person (heat sensor detection), which could produce panic, but if the bot is either stuck, or very low on power with no good power source, then the panic response has to be somewhat different. Perhaps no panic at all is warranted? Perhaps the bot should 'scream' rather than running. And so forth.
My usual boring signature: Nothing
 
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|