The main goal of this article is to cover the most important concepts of machine learning, and lay-out the landscape. The reader will have the vision to understand what kind of solution matches a specific kind of problem, and should be able to find more specific knowledge after diving into a real-life project.
What is Machine Learning?
I’ll start with a 60 years old definition, but still valid today:
Machine Learning is the field of study that gives computers the ability to learn without being explicitly programmed.
Arthur Samuel (1959)
The name is pretty self-explanatory, and the definition reinforces the same concept.
For those with a taste for a more maths-like definition, we can relate to a 1998 definition:
A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
Tom Mitchell (1998)
Let’s use a typical example to clarify these concepts: classifying an email as spam or no spam. What we’ll typically do is:
The task T is classifying emails
Experience E is watching how users manually classify their emails, tagging them as spam.
Measure P is the percentage of emails correctly classified as spam.
We have machine learning if P is improved over time.
We have two main categories of machine learning: supervised and unsupervised learning.
It means that we have a training set: a list of “right values”. We’ll receive an input (typically a vector) and the main goal is to train the algorithm to be able to train its learning mechanisms using these values to finally being able to predict unseen cases.
Some examples could be:
Forecast the price of a real estate based on its size and amenities.
Recognize objects in images
Forecast the score of a student in an exam, based on previous exams results.
Training sets can be huge but for the sake of simplicity, this is what a really simple one could look like.
If your company could use a hand with its technical challenges, we’d be thrilled to talk them over with you either at a high or a technical level. Drop us a line here, or feel free to reach out to firstname.lastname@example.org and he’ll arrange a free consultation with a member of the Rootstrap technical team.