Most tech-oriented blogs have been largely one-sided in their coverage of machine learning, posting articles almost exclusively skewed towards supervised methods.
That’s not exactly unwarranted since supervised models, and particularly neural nets, have been deployed to great success both in business and academia (CNNs, for example, had been integrated into automated emergency braking systems, which helped reduce collisions by 40%), but it might’ve created the impression that there aren’t other ML subsets worth paying attention to, which is not the case.
It’s important to understand that all the algorithms (models, machines – whatever you want to call them) in supervised learning essentially do one thing – function approximation. They learn to map inputs to outputs after being fed tons of labeled data (e.g. being shown repeatedly what the desired outcome should be). They typically work with high-dimensional inputs such as images and massive arrays of numbers which they try to map to a single value (a class or a category) and that’s why the training process is extremely complex and long. And their performance accuracy (especially in the case of deep learning systems) is only as good as the training dataset.
Reinforcement learning is even more prone to sample inefficiency. For example, Facebook’s Go-playing model has to be trained for two weeks (by playing around 20 million games on 2000 GPU processors simultaneously) before it can perform on a close-to-human level. That’s far more than a person could play in a lifetime.
So far, RL has only shown outstanding performances in simulated environments and it’s been impractical for most real-world applications as we can’t, say, have a robot destroy millions of cars before it learns to drive adequately.
It’s becoming clear now that making algorithms smart isn’t about picking the best language for machine learning or adding layers and architectural complexities to the latest neural net models. It’s about ditching entirely the process of training with labeled data.