What Can Machine Learning Do?
When developers and product managers first hear about machine learning, they usually want to know how it can help them. Which kinds of problem can be solved by machine learning, and which can’t?
Luckily, the brilliant Andrew Ng offers this helpful heuristic:
Anything that a typical human can do with at most one second of thought, we can probably now, or soon automate with AI.
That’s a great starting point, but I recommend that you also familiarize yourself with examples of machine learning that are out there today. There are a lot: image classifiers, object detectors, spam detectors, sentiment analyzers, AI that play board games and video games, handwriting recognizers, optical character recognition, face detectors, face matchers…and more.
One way to keep on top of the state of the art is to subscribe to a newsletter like Inside AI, or follow suitable people/hashtags on Twitter.
If you want to go a little deeper into the different use cases, there are three kinds of machine learning: supervised, unsupervised, and reinforcement learning.
Supervised learning requires training data showing example inputs and outputs, e.g.
- An image classifier is trained using images along with an expected text label.
- A spam classifier is trained using example emails along with a label indicating whether it is spam or not.
- A house price estimator is trained using data about a house (number of bedrooms, square footage, ZIP code etc) along with its price.
Unsupervised learning does not need training data. A typical example is performing clustering on data to find similar groups. Movie and product recommendation engines work this way — they don’t need to understand anything about the thing being recommended, they just need to know that people who like X and Y, also like Z.
Reinforcement learning works on anything with a reward function. A reward function basically means anything with a score. A common example is AI for playing computer games — the video frames are provided as input, the model decides which action to take, and the resulting score is used to reinforce the model. If it doesn’t have a score, you can use the length of time that your character stays alive. My favorite example is this cart pole balancer:
There are plenty of video game examples too, like this almost three hour video of reinforcement learning to play Flappy Birds.
However, as Andrew Ng points out in his excellent talk above, supervised learning is driving most of the machine learning applications in production today, so that’s the best place to focus your attention for now. It probably also has more tutorials and examples available online for you to copy. :-)