Machine Learning (ML) is a branch of Artificial Intelligence (AI) that seeks to learn from known data in order to be able to make predictions (inference) based on previously unseen data.
Traditionally, we have been programming computers using a programming language so that the computer can blindly and religiously follow the instructions developed by a human. In AI, the computer mimics human intelligence without being explicitly programmed in the traditional sense alluded to above.
Today, we talk specifically about how to learn ML. Although there is a vast array of literature on ML on the web, it is not a passport for learning ML. In my experience, there is an arsenal of knowledge or skillset that facilitates learning ML. If you are equipped with them, then learning ML becomes much easier compared to someone without the prior skills.
It is important to first summarize the key steps in ML: i) Gather/collect data, ii) Prepare the data, iii) Choose and define a model, iv) Train the model, v) Evaluate the model, vi) Hyper-parameter tuning, vii) Deployment for prediction.
I find the following skillset really instrumental in the learning process:
- Data skills - if you have generally worked with electronic data in various ways before, right from collection, storage, analysis, reporting of data, then you have a great asset to start with. This means you are likely (or even certainly) familiar with tools such as SQL, Python (or R). And when it comes to Python, then you are likely familiar with the Python fundamentals, Pandas, Numpy, Matplotlib, etc. If you have these under your belt, thank God for putting you on the right path.
- Programming skills - ML has a lot to do with programming. Knowledge of the general programming fundamentals, constructs, data structures, etc can significantly lower the learning curve as you learn ML. Imagine that you are supposed to scrape the web in order to extract some data for ML modelling. Surely, you won't do that without programming knowledge. The ML pipeline alone is a collection of code, full of standard programming constructs, which means there is no short cut without understanding programming.
- Applied Statistics - this goes without saying. To believe what I mean, just try to read through a ML modelling exercise and see for yourself.
Let's assume that you want to learn ML using Python. Then the best way, in my view, is to follow these steps:
- Read about the theory of AI and ML.
- Learn and understand Python, Pandas, Numpy, Matplotlib.
- Learn and understand some basic statistics.
- Learn SQL (even though just basic SQL), especially if you are going to be dealing with structured data from relational databases.
- Install Jupyter Notebooks (or Anaconda as a whole) to allow you play with code for existing ML projects.
- Pick some good sample ML projects using Scikit-learn library for supervised learning (regression and classification) and unsupervised learning (clustering).
- Pick some good sample Deep Learning projects using Tensorflow (Keras) library.
- Every time you pick a project to play with, spend a lot of time and manually run the code step-by-step in Jupyter Notebook. You will realize how much the skillset I listed above matter. As much as possible, try changing the code to see the effects on the model. If you can dwell on this stage for as long as you can, then ML modelling will start making a lot of sense.
If you can go through the above stages, I believe you will be on your way to becoming a ML Engineer, the much coveted job title in the data space today. But just imagine that you already have the prior skillsets of Data skills, Programming skills and Applied Statistics skills, then life could not have been any easier for you. As they say, you have just fallen into things.