How I learnt a bit of Machine Learning

2 minute read

Published:

Machine Learning (ML) is something really hot these days and thousands are learning it. Day by day it’s becoming easier to run implementations using APIs with little knowledge. Learning ML includes three things: understanding the mathematics behind algorithms & optimizations, coding out simple, efficient implementations, and getting familiar with the most common ML libraries and platforms.

I started off following the Machine Learning MOOC by Andrew Ng on Coursera. This gives a good introduction to machine learning (https://www.coursera.org/learn/machine-learning/home/welcome). This doesn’t really require a lot of mathematical knowledge. It is a beginner’s course. It uses MATLAB. I suggest running through this course as fast as you can. Just get an overall understanding about the stuff. Try to apply these in some projects you’re working on.

At the same time, I set up Python with Spyder (my favourite IDE on Windows) along with Tensorflow, Keras, and a few other ML libraries (this can be time-consuming if you’re not familiar). However, I started off running most of the algorithms I learnt using Numpy in Python (so I had to code everything from scratch). This gives a good grasp over the basic concepts. I also looked at a few implementations on this site: http://deeplearning.net/tutorial/. I tried implementing them from scratch (mostly non-deep learning algorithms: the traditional ML ones).

Afterwards I looked at the Deep Learning Specialization on Coursera offered by the same Professor (https://www.coursera.org/specializations/deep-learning). This explores Deep Learning, which is one of the hottest areas in ML these days. It gives you a good understanding of how to implement the work you do in both Numpy, and Tensorflow.  This will take some time, and you should definitely begin a project on your own while doing this where you will apply these things.

Also I read up on a bit of Linear Algebra: about Eigen Values, Matrix Decompositions, Subspaces, etc. This helps us get a good understanding of some of the concepts behind these areas.

You will need to decide what you want to work on: pure research or innovating applications. For pure ML research, a strong mathematical understanding of concepts will be essential. Even for applications, this will be useful, but familiarity with implementations and optimizations will be a lot more useful.  Also, after you’re familiar with ML, you can spend some time every week reading a few top research papers in the area.