Machine learning can achieve some pretty impressive feats in AI such as autonomous vehicles or teaching robots to autonomously interact with the world around them, but it’s also responsible for simpler, but still incredibly useful applications.
One good illustration of machine learning in action is the so-called “spam” filter that your email system most likely uses to distinguish between useful emails and unsolicited junk mail. To do this, such filters will include rules entered by the programmer, to which it can add numbers that — when added up — will give a good indication of whether or not the software thinks the email is good to show you.
The problem is that rules are subjective. A rule that filters out emails with a low ratio of image to text isn’t so useful if you’re a graphic designer, who is likely to receive lots of useful emails that meet these parameters. As a result, machine learning allows the software to adapt to each user based on his or her own requirements. When the system flags some emails as spam, the user’s response to these emails (either reading or deleting them) will help train the AI agent to better deal with this kind of email in the future.
It’s simplistic compared to how we learn as humans, but it nonetheless achieves the result of creating an algorithm that improves its performance the more knowledge it receives.
The major way of dividing up machine learning is to focus on how the machine learns. There are four main approaches: supervised learning, unsupervised learning, semi-supervised learning, and reinforcement learning.
Supervised learning involves training data in which there is a desired output. (This is the category our spam filter algorithm falls into.) Next up is unsupervised learning, in which training data doesn’t have clear outputs. Then there’s semi-supervised learning, in which there are few desired outputs.
The other type of machine learning — which is increasingly popular these days — is reinforcement learning. This ambitious approach to machine learning involves rewarding an artificial agent based on what it does. Reinforcement learning can help machines achieve feats like figuring out how to play video games through trial-and-error, based on working out what increases its score.
Due to its simplicity, and the availability of deep learning libraries such as TensorFlow and PyTorch, Python is currently the number one language programmers use for machine learning. If you’re thinking about delving into machine learning for the first time, it’s also one of the most accessible languages — and there are loads of online resources available.
Java is a good option, too, and comes with a great community of its own, while C++ and R are also worth checking out.