I hated biology in my school days and loved mathematics. After a long period of time I get to learn something which combines both mathematics and biology together, that is Artificial Neural Network short for ANN, inspired by biological Neural network. Though you might find it weird, that is how I would like to define the artificial neural network. When we say biology here, it is basically the study of brain or perhaps the nervous system. How nervous system works, Artificial intelligence just mimics that. Neural network is getting popularity hugely now a days with bigdata by its side. Infact one of newly joined colleague said, you cannot do artificial neural network or any other machine learning algorithm without bigdata but of course I didn’t believe him and decided to try it myself. So rest of whatever will be in this blog are from the first interaction of mine with ANN.
This blog is definitely not going to be sufficient for explaining everything about ANN and we are not covering a lot of it too, but hope it will give you a good idea about it and later on being the knights of scala ecosystem we will see its implementation with Scala. Now let us begin with a crash course on the biological neural network learn it’s terminology followed by terminology of ANN.
When our senses gets any feeling, just think it like when you touch something, sensory input gets the data and sends it to the nervous system. The nervous system is densely packed with nervous tissues of cell. This cells are called “neurons”. So these neurons processes the data got from the sensory input and instruct the body to do something, like remove the hand from there. And when the removing of hand part is called the motor output. Now we are definitely not going to talk about the sensory input or the motor output but will go a bit through the neurons and how it works. Neural network is construct with various neurons, in the above image we have network of two neurons. As you can see, there are different terms denoting different parts of the neurons. “Dendrites” are the input points for the neurons. The data transferred to the neurons either from the sensory input points or from the other neurons are received at the dendrites. The “cell body” processes the data and creates the output in the form of electrical pulse or in some sort of chemical and sends it through the “axon”s to the other neurons or to the motor output. Now within the network when neurons are communicating with each other i.e. when axon carries the data in form of electrical or chemical form to the other neuron, it drops the data in a place from where the dendrites receives them. This joining point of Axons and dendrites is called synapse. Basically synapse is one point where the output of one neurons is transformed to a form which can be accept by the next neuron. And that’s it for now, we are ready to drive through the artificial neural network now.
Now when it comes to artificial neural network it looks like the above diagram. The above diagram is basically the comparison between the biological neural network and artificial neural network. This particular ANN is has three layers of network, input layer, middle layer and output layer. We can consider each circle as a neuron, so each neuron accepts input and process it and produces the output. Now when the output produced in the first neuron passed to the next neuron a weight gets multiplied to it and then the new value gets accepted by the next neuron as its input. So the comparison that we can think about is like, the artificial neuron has the input and output in it that is the dendrites and the axon. And when we talk about the weight multiplication that is the synapse part on biological one.
There are around 10 ^ 11 neurons in human brain and each neuron is connected to the approx 10 ^ 4 neurons. Interestingly the biological neurons can switch in 10 ^ -3 seconds which is quite slow in comparison to computer switching of 10 ^ -10, still biological neurons can do take complex decisions pretty quickly. In order to recognize a known person it takes around 10 ^ -1 and you can imagine (or you might not right now) how many neurons have to be fired for it. Even after switching among so many neurons within 10 ^ -1 seconds the performance of the brain is quite fast. Surprising right? Well speculation is that the working of neurons is quite parallel in human brain. New neural network algorithms are improved to be parallel though. On this point just wanted you remind that we are going to use scala and akka in the examples of the future blogs of this series. Which would give us more power to do so and hopefully you are exciting about it as well.
To summarize this blog, we have gone through what biological neurons are how they work, different terms for the biological network. We have also learnt comparison between biological and artificial neural network, which part of the biological neuron could be matched or compared with part of artificial neurons. And finally we have discussed a bit about how human brains can take complex decisions quickly. In my next blog we will be go through an example of neural network in Scala as well as we will get into some insights of artificial neural network as well.
For more information on ML from Knoldus join: https://www.linkedin.com/groups/10342785