Wednesday, September 15, 2010

6. Neural Networks - Processing Units

I have spent enough time online and books to study how the neuron or neural networks carry out their data processing and what their techniques are. Somehow everywhere what I find is the ANN (Artificial Neural Network) or DNNA (Digital Neural Network Architecture) etc. While most of them explain the techniques and algorithms what scientists and mathematicians have come up with for an artificial neural network based on the basics of how our brain works or neural network processes data.

However, I hardly find information about how exactly our human brain or neural networks work! That increased my curiosity and I sincerely wanted to figure it out. In all the ANN concepts, neurons are described to be associated with weights (biologically equivalent to amount of voltage of impulse) and that gets carried over various number of layers of neurons before finally brain concludes anything about what is observed. The following diagram is a typical example for a multilayer neural network which is widely used in Artificial Intelligence applications like pattern recognition, super computations etc.


In the above picture, X1, X2.. Xk are input points and they are linked to each and every node in the next layer (hidden layer). So, each node or neuron in the hidden layer has inputs from various input points and it determines its results by summing up all the inputs as shown in the below formula. That output is fed as input to the neurons that are in the next hidden layer or the output node or neuron.

From this model the interval activity of the neuron can be shown to be:

Here vk is not the result, the actual result is nothing but the final output of the neurons in the output layer, yk, which is determined by some activation function on the value of vk. What is activation function? It can be described as follows. Consider an example of how you consider or eliminate items from the list of items based on it's price. You have your budget and only if it falls under, then you tick it otherwise you would strike it or push it for later.

Similarly, activation function is a function which has a threshold value set and if the inputs fall under its threshold value, it returns an output value and if not, it will return a different value! There are three types of activation functions used in this field. First, there is the Threshold Function which takes on a value of 0 if the summed input is less than a certain threshold value (v), and the value 1 if the summed input is greater than or equal to the threshold value.


Secondly, there is the Piecewise-Linear function. This function again can take on the values of 0 or 1, but can also take on values between that depending on the amplification factor in a certain region of linear operation.



Thirdly, there is the sigmoid function. This function can range between 0 and 1, but it is also sometimes useful to use the -1 to 1 range. An example of the sigmoid function is the hyperbolic tangent function.




In all three types of activation function, the only attribute used is 'weights'. There is a thing to be clarified about weights. Neurons are connected with more than one other neurons. We know each of the neuron has (possibly unique) weights associated with it, I mean one weight per neuron. However, the ANN depicts that neurons can have weights per connection not as one value for all the connection! ANN models and real-time applications work with this idea and that makes it believable. So, the electric impulses vary per connection/links. It means that neuron determines the weight for each link that connects to each other neuron. In order to have a better idea about weights, we need an example. Lets explore one here.



According to me, each neuron does not only have weight but it is also tied to a feature or the attribute of the object that is tagged to that neuron or set of neurons. It's also possible that more than one neurons are allocated for same feature in order to carry out the approximation. So based on which sense sends the information, this feature is determined for each of the neurons. I also conclude that not all the neurons, in our brain, are tagged to a feature because few of them only returns the outputs. Or it may be that the neurons handle it's feature only when they are in the input or hidden layers and simply switch the feature off when the same neuron acts in the output layer.

When it becomes impossible for a neural network to understand a subject, it allocates or fires more neurons into its network or it's loop. When a subject creates confusion and the final outcome is different compared to it's knowledge, then the neurons adjust their weights based on how much each of the feature differs and try to come up the with the same overall value. Hence the neural network is knows how to approximate but it doesn't do unless the external force acts up on it!

Yes, it's like Newton's first law 'Objects remain idle until external force acts on it'. According to me, the force could be any kind of basic instinct to feed, live (ex: hunger) or teaching force (ex: teaching children). For example, lets say a child learned what is color 'Red' with the value 'X'. Now, if you show yellow to the child and child recognizes the color as 'Yellow'! Now, lets take a color 'Yellowish Red' (ex: sunset) which has more Red in it. What does happen when this is shown to a child and taught as 'Red but little yellow'?

Even though the child's neurons come up with value 'Y' since the color is not exactly 'Red', because of the authority of teaching and knowledge, when we teach the child, the child's neurons will adjust their weights in a way so that the overall value comes to X in order to accept that this color is still 'Red'! During this adjustment or approximation, if neurons finds that it can't conclude with available neurons, it will start allocating or using the unused nearby neurons into the loop to get the value 'X'.

This remains possible only with the help of other senses like hearing and vision. It gets difficult as we intend to teach the kids who are physically challenged children such as born-blind or born-deaf as the number of attributes will be limited! Same object can be realized at different limits depends on how limited the observer's senses are.

The number of attributes of an object is as same as the number of senses that the observer has; at least that's how the object is seen by the observer and Science buys only what can be seen and so is least interested in something which can't be seen or shown! Hence Science is also a subjective matter like spiritual experience; the only difference is spiritual experience can't be explained or shared while it is possible with scientific experiments!

Lets consider a 'red cubic box' that continuously makes noise. Now a person with all 5 senses would say all of it's attributes as it is described before. A blind person may see the same box just as 'a cubical box that makes noise'. A deaf person would realize it as 'a red cubical box'. A person who is blind and also deaf would realize it simply as 'a cubic box' and if that person also doesn't have sense of feel then he realizes nothing! So, according to me, we can see things with their other (non-visible) attributes if we have other senses that could recognize them! I would conclude that objects may be possessing other attributes but we simply don't see them because we have only 5 (limited) senses.