People worry that computers will get too smart and take over the world, but the real problem is that they're too stupid and they've already taken over the world. — Pedro Domingos
It feels like Google or Facebook releases a new AI technology every week to speed up or improve user experience. In this article, we'll cover what Machine Learning is, and cover the types of Machine Learning.
Machine Learning(ML) is a method of data analysis that allows a system to learn without being explicitly programmed. Or in the words of Tom Mitchell, "A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E".
Machine Learning is based on the idea that analytic systems can learn to identify patterns and make decisions with minimal human involvement using statistics, linear algebra, and numerical optimization.
I like to think of Machine Learning as a way of writing programs whose business logic is generated from input data. We feed data to the algorithm and the result of the program execution will be the logic for processing new data. It is a new way of writing software, a step away from the traditional development process.
To illustrate this even better, let's move on to the more familiar action of preparing dinner. Let's imagine that we want to make a pepperoni pizza. Pizza... the ultimate open-faced sandwich.
We have the ingredients and the recipe — these will be our inputs. We follow the recipe and by following the correct sequence of steps, we end up with a ready-to-eat pizza. This is traditional programming. To get the right result we need the recipe. We can write it ourselves or ask mom to write it for us.
With Machine Learning, it's a little bit different — we don't know the recipe, we don't want to write or don't know it, but we want the pizza nonetheless. We have a bunch of ingredients and some idea of pizza. In our case, of course, it's an ad from Papa Johns — epic crust pizza with cheese and pepperoni topics. Yammy. We have no idea how to make it, but we can invite our friends over and see from their feedback that what we've made is close to the kind of pizza we want, and maybe even delicious pizza!
A few angry reviews later, we realize that the dough on top is not really pizza. As we continue to analyze pizza "metrics" over a period of months or even years to determine what factors influenced the look, taste, and quality of the end result. At some point, we eventually come to what our friends mean by real pepperoni pizza. We write down the sequence of steps into the recipe. Our algorithm is ready!
It is important to emphasize the data-driven nature of the ML. This seems trivial, but it is surprising how often ML engineers forget this. They focus on building a better model rather than improving the data on which the model is built. This makes the task of collecting representative data crucial for machine learning to be successful.
We should train our models on data that correctly represents the conditions under which the model will work in the real world. If we want to identify spam, we need examples of spam messages. If we want to predict stock prices, we need a history of prices. If we want to know the user's interests, we need the user's click history. The data is collected in any way possible. Some people do it manually, it takes longer, usually results in less data, but with fewer errors. There is a real hunt for good data sets. Big companies sometimes reveal their algorithms, but very rarely the data.
- Machine Learning Design Patterns
- Machine Learning Engineering
- The Hundred-Page Machine Learning Book
Thank you for reading!
Any questions? Leave your comment below to start fantastic discussions!