Artificial Intelligence: Neural Networks
AI has long been a subject of many sci-fi fantasy novels and movies. It was always a fascinating topic and a subject of interest but no one really believed that practical AI could be achieved in near future. People thought of it as an invention of far far future. To most of regular tech guys, AI was another name for if-then based algorithms. We used to implement clever programming based on if-then statements and made it look like AI. But it was not.
However quite recently AI has become more popular and more practice. We now have equipment to develop AI and utilize the same. We now do not require expensive super computers or servers to perform AI operations. That is why AI is now becoming part of most of applications. China is using AI for security. You must have seen facial and voice recognition systems. Their CCTV’s can recognize a person from behind based on his walking style.
AI used in computers is a tiny depiction of human brain. It is called Artificial Neural Networks (ANN), just like neural networks of our brain. A simple ANN can have a few neurons and one or two hidden layers. Neurons, in computers, are variables that store random values. Layers are groups of neurons linked with each other like neural pathways.
Now simply put, an ANN taken input and gives you output. First time, it is always wrong. For example if you input .25 and expect .75, it will never give you 0.75. But then you enter few more inputs with expected outputs, like I=0.25, O=0.75 – I=0.35, O=0.65 – I=0.45, O=0.55 and so on. It is called training. With the passage of time, ANN will start understanding the pattern and now it will start giving you closer and closer results until finally it will reach your desired “trained” level. It is highly unlikely that an ANN will ever give you 100% accurate result. Error is always there and by training it can be reduced to 0.00001. Each iteration (each time ANN is trained) reduced the error.
In the background, those neurons are changing values. Lets suppose that 0.25 * variable1 * variable2 * variable3 * variable4 * variable5 * variable6 = 0.86 but 0.86 should be 0.75. Those variables will keep changing till .86 is .75+/- error. This process is called back-propagation. Of-course it is not that simple. They are not simply being multiplied. Various methods such as RELU and Sigmoid etc. are used as link between each neuron.
ANN’s are very good at pattern recognition, information classification, identification of complex relationship between data and solving complex problems. We are using ANN for forecasting profits based on sales and they are almost perfect. But they can not predict future (they can forecast profits, if sales are provided). You can not predict even a week worth of data based on ten years stock prices. Because ANNs do not have memory. They are good at pattern recognition but they can not remember this information and apply it to predict future. For that LSTM’s are used, and we will discuss them another time.