Everyone is pretty hyped up about machine learning these days and I was pretty intimidated by these magical systems. Mr Clarke puts this succinctly “Any sufficiently advanced technology is indistinguishable from magic”. Let’s try to get a high-level understanding of ML systems.
AI vs ML vs DL
First off, there are a few terms being thrown around interchangeably but in reality, they have very specific meanings. The following is maybe over-simplification but here it goes.
- Artificial intelligence – The umbrella term for machines replicating human intelligence
- Machine learning – Making machines learn to perform specific tasks
- Deep learning – A sub-class of ML helping solve problems better
I use the term Machine Learning in this blog because it’s general enough for our needs. We can divide ML into 2 main areas.
Let’s assume you have an Excel sheet that contains the prices of the houses sold in your area with their covered area, number of bedrooms and bathrooms. Now you want to build a system that estimates the price of future sales given the other factors. This is a good time to learn some new ML terminology.
- Features (input) – Covered area, number of bedrooms, number of bathrooms
- Label (outputs) – Selling price
The first step is to feed a good chunk of the historical data (usually 70%) to the supervised learning machine. The system then figures out the relationship between the features and label based on this training set.
The next step is to validate if the system has learned correctly. We take the remaining 30% of the data and feed it to the system. The system has not seen this test set before so now it can evaluate the accuracy of the model.
If the system performs well, it will estimate and label the test set reasonably well. The more data you provide, the better the predictions would be.
Broadly speaking, there are 2 types of supervised learning systems (more terminology for you).
- Regression – problems where we are dealing with numerical values, quantities etc
- Classification – allocating things to the right buckets/categories
To summarise, supervised learning systems are useful when you have a lot of historical data and you want the system to come up with a relationship function between the inputs and outputs. You will most likely be spending most of your time with these type of systems.
Unlike supervised learning, this type of system helps discover hidden relationships and patterns. Basically, you don’t have historical data with labels already. Clustering is a major use-case for these type of systems where you are dividing the data into buckets based on similarity. For instance, allocating news articles to the right categories.
You could also use this type of system to also find associations. For instance, you run a large online store and want to offer recommended products to the users browsing your store. The input for this type of system is the data from all of your existing users, the system will then discover what your current user is likely to be interested in.
2 main areas, supervised and unsupervised learning, that’s it.