Robotics has been and still is an enormous fascination for us humans. Even when we did not have computers, we were fascinated with Mary Shelley's Frankenstein because the concept of creating life out of nothing so resonates with us.
Fast forward to the modern word, making a humanoid was and to a certain extent is still a ubiquitous dream. When computer scientists first had a shot at making Robots, they encountered some huge problems. The problem is if you endeavor to program a robot by defining all the moves etcetera its going to make, then your strategy is flawed to begin with. How can you anticipate and program every action of a robot, and even if you could do that, what about any new functionality you want to put in the Robot. You have to reprogram the computer for that.
The second problem is computational complexity. Real time vision which humans are a master at is an extremely hard problem for computers. All they see is zeros and ones and they have to recognize pattern out of those numbers. Just to give this some context, let’s do a small experiment. Bring the palm of your hand in front of your face and change the side of your hand to see the back of your hand. Simple isn’t it?
This simple exercise in vision for us is problem of epic proportions for computers. What we see simply is millions of of zeros and ones for a computer because every slight change in position of our hand is a different set of zeros and ones,, and even a small movement involves thousands of iterations of computer.
It can enormously. Machine Learning, the poster boy of data science is here to help. What machine learning does is to make a computer or robot learn by providing it labeled examples of any kind of behavior like recognizing human hand writing recognition. What it does is that it takes thousands of ways in which alphabet “a” is written by humans, then label them as “a”, and ultimately train the computers on that data. Once the computer is trained, it is tested on new unseen data to get an idea of how accurate it is, and accuracy numbers are going through the roof because of two reasons.
First is the universal availability of data in the data deluge era plus the mammoth computational power we have to compute the most computationally intensive problems like the computer vision problem I talked about. Google has just announced Tensor Processing Units which are much more powerful than GPUs for training Deep Learning Algorithms.
Last but not the least, a branch of Machine Learning called Reinforcement Learning is the closest it can get to the way humans learn. In Reinforcement Learning, the rewards and penalties are set and a system learns by making mistakes. If it makes a mistake, it is penalized so that it remembers, and is rewarded on required behavior. Isn’t this how we learn? This is a facile explanation of Reinforcement Learning to explain the concept of it.
There are gazillions of real world applications of Reinforcement learning but my personal favorite if teaching your computer to play Super Mario Bros using Reinforcement Learning.
Machine Learning is helping humans unfold their greatest fascination and much more.