I can tell you that the Machine Learning hype is exactly like Big Data hype version 2.0. It is everywhere! Since the introduction of Watson with claims that it can do everything, to newest technology from Google like the AutoML, an AI that can help us build another AI. While people feared the so called new-industrial revolution and Skynet apocalypse, most of them didn’t really know what Machine Learning is.
By the way, you can read the top Machine Learning projects here.
So, what is Machine Learning?
Simply, Machine Learning is a computer program. It is a computer program. But, it can be better at doing its task when exposed to relevant experiences. What? How?
Let’s take an example.
You want to be able to ride a bike. What do you need to do? Expose yourself to experiences. You need to start riding the bike to be able to ride it skillfully. That is also the same way how the program should do. But, of course, the way they learn is not same with how we learn a bike. They learn it in a mathematical way.
The mathematical way
There is an interesting piece of technology in mathematic space. It is called the optimization problem. In layman’s term, it is a way of finding the best solution from all feasible solution. How?
Minimizing errors is the keyword. The program will try to do a task, and compute the differences between how the result should be and what the program outputted, this is what we call “errors”.
There are many ways of how the program can minimize the errors, the most popular and simple way is called Gradient Descent. You can learn about it in the link I provide, it is a good place to start.
So, can I solve every business problem with Machine Learning?
Well, that could be good if it can happen. Most importantly, you need to have the “experiences” that can be used by the program. In our term, it is called data. Other than data, you need several more things.
So, without further ado, these are the things needed to create a Machine Learning program:
- The problem you want to solve. Why do you want to create one if you don’t have any problem.
- The solution can be better if you solve it the Machine Learning way.
- Data. (lots of them, like in thousands or tens of thousands)
- You have relevance experience in processing the data.
- Like statistics and mathematics
- You don’t like statistics and mathematics but have a lot more data. You can use Deep Learning technique. A lot more data here means in the millions.
You need to check all the requirements needed to get started using it. If not, maybe the usual way of problem solving is enough for you.
So, maybe you fulfilled all the requirements above. What is the technique on creating the program?
Types of Machine Learning programs
There are two most common algorithms used by many people. Classification and Regression.
By definition, Classification means you group data based on a shared characteristic. In example, you probably want to group the customers of your e-commerce by gender to do some segmented marketing. But, you didn’t asked your customers their gender while using the site.
So, how you can do it?
Simply, you can just do classification based on their historical actions on your site and group them into two, based on the fact data you have (Maybe you have classified some of them manually before).
Maybe you have predicted stocks prices before. Or predict how much your website will grow in the next six months. Predicting something with continuous value is called Regression. Simply, it is like classification but without clear boundary between class.
Let me tell you an example. AAPL stock is 210.24 today. You create a program to predict the closing price tomorrow. And it predicts that it will close at 212.00 tomorrow, or 212.01, or 212.02. There is no clear boundary between the values.
You can learn about this two technique to get started. And you are good to go.
Okay, I understand about both of them. But, what is Deep Learning. I think you mentioned it along the way?
Deep Learning is a sub-branch of Machine Learning which utilized Artificial Neural Network. It is creating a machine using human brain as an analogy. It is called “deep” because basically it stacks machine learning on top of each other, to make them can learn intermediate features.
Each of the circle thingy is a Machine Learning program, it is stacked on top of each other with the hope that every layer of depth will help the next layer to output the correct prediction.
This technique is really powerful given a lot of data. By leveraging this technique, in 2012, it won ImageNet Image Classification competition by a very large margin (15.3% vs 26.2%-second place- error rates). And the progress on Machine Learning also growing rapidly with the new innovation in Deep Learning. With it, the program even can win a match of Go against a grandmaster, Lee Sedol in 2016.
This is terrifying, but also have a limited impact. I have said before, it needs a lot of data to be relevant. And you may not have sufficient data to train it. For the reference, ImageNet has 1 million images as training data. And AlphaGo who won against Lee Sedol, do 30 millions of moves to get that good.
So, if you don’t have access to such huge amount of data, you can just learn about statistics and math, and then implement the old-school Machine Learning for your business. As it will always relevant for you.
Skynet apocalypse is still far away, and maybe will not happen at all. But still, Machine Learning is a good way to improve your business experience. And it could give you enormous benefit in other aspects.
Any technology is not bad. It is always the people who decides whether it is helpful or harmful.
Please share it if you like it! And of course, read my other articles here.