Let's Talk About Machine Learning and Traditional Programming
Commonly, when we are browsing the web, usually we see a lot of information related to our searches, likes and preferences, and the most common thing we hear or think about is: That's the Artificial Intelligence recommending content for us. Or something like: This is the Machine Learning Process analyzing and learning from us.
Both approaches are partially right, because most of the websites and applications we use today, have at least 1 Machine Learning Based Algorithm, which usually, uses the data we generate to learn about us. But also, although machine learning is not Artificial Intelligence by itself, the truth is that it is part of this branch of Computer Science, and as one of the many applications of Machine Learning, this "Artificial Intelligence" will recommend things and contents to us. But now, let's grasp the matter here.
Machine Learning is a sub-field of Artificial Intelligence, focused on creating and implementing algorithms that enable machines to learn from data in order to gain "Knowledge" and earn "Experience" to solve some specific "Tasks".
This "Knowledge" actually is a group of values used to evaluate the incoming data, process it, and produce outputs (predictions).
The "Experience" it's related to the "Knowledge" because it's based on a process that uses a lot of Try and Fail in order to produce the "Knowledge". For short, "Experience" references all predictions and tests performed by the algorithm on the "Training Data" in order to get the "Knowledge".
The "Training Data" it's the dataset used to train our Machine Learning Algorithm and generate a Model that we can use later to make predictions based on some incoming data.
The "Task" is the goal or objective the algorithm it's trying to accomplish. It could be something like predict the price of an item, recommend a product to a user, detect an emotion from a picture, classify an object in an image, etc.
Now, let's see some short definitions for Machine Learning:
"Is the field of study that gives computers the ability to learn without being explicitly programmed"
-Arthur Samuel, 1959-
"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, 1997-
While in traditional programming we define a set of rules to be applied to input data to produce an output, in machine learning we use a set of sample data and it's expected output to training a model, which infers the corresponding rules, and then we can use that model to get an output corresponding to the not seen before input data.