Monday, June 11, 2018

How I Started Learning Machine Learning

This is a long post where I would like to share how I started learning ML.

I first learned about machine learning from Andrew Ng's Coursera course. I did not complete the course or the assignments. Just went through the videos. The videos were short and I completed it in 2-3 weeks. I got a good overview of what ML was and where it could be applied.
Then I moved on to Michael Nielsons Deep learning booklet. Another little gem which is easy to understand and requires no prior knowledge of ML. It took me one week to finish it.

I then decide to get into some machine learning projects. I found some interesting competitions in Kaggle. In the beginning, I used Matlab but soon realized it did not have enough support in DL community and Python was more popular (and definitely more intuitive). So, I decided to learn Python. I started using a popular mobile app for learning Python. It was a good app but I found the process slow. Therefore, I started learning code straight from the Kaggle Kernels. I found some amazing people there, who wrote really good tutorials. Especially, exploratory data analysis (EDA) and beat the benchmark (BTB) notebooks from users like Anokas (he's a prodigy) and ZFTurbo were extremely useful. I tried to run their code each line at a time. Whenever I had questions regarding any functions, I read the documentation.

Fortunately, Python and Matlab have a few similarities. For Python, I had to learn how to manipulate some widely used data structure such as list, numpy array, and dictionary. I learned the data structures (series, dataframe) in the pandas library from their website (10 minutes to pandas). Also, I had to get used to the for loop implementation in Python which is quite different but extremely intuitive when you get the hang of it. Another useful concept was list comprehension. Once I got those down, all I had to do was get familiar with different libraries used in ML (e.g., keras, scikit-learn). While using the libraries, I found the tutorials in machine learning mastery website extremely useful.

To know about the current state of AI, I have subscribed to medium, a very popular blogging platform. This is an excellent source to learn about current technological advances. I get notifications through gmail and often find interesting articles to read. One of the most popular bloggers in AI, Andrej Karpathy (Tesla) writes on this platform. His blogs in github and medium are gold-mines. Another wonderful source for the advances in AI is the two-minute paper channel on Youtube. This youtuber gives a non-technical overview of recent papers. I like his enthusiasm :p

Another course that was very interesting was Jeremy Howard's Fast.AI. He takes a top-down approach where he gives an overview of all the state of the art concepts used in DL and shows how to use the tools. But the details exploration are left upon the participants. Which means you will find everything extremely difficult to comprehend in the beginning. Nevertheless, by getting exposed to the applications of such concepts you will understand what might be useful to you and you can focus on that instead of learning everything as a whole. The videos can be found on youtube. When I watched the videos (around 2017) there were seven of them, each were 2 hours long, and he was using keras. But in his updated videos he has included tons of stuff and he is probably using Pytorch.

So, that's the end of this post. I might have forgotten/never seen some great tutorials. Let me know your thoughts. Thanks for reading.

I encourage you to share the story of your journey in ML. It is great to know about people having a different approach to learning ML!

Resources:

Andrew Ng's Course:
https://www.youtube.com/watch?v=qeHZOdmJvFU&list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW

Michael Nielson's book:
http://neuralnetworksanddeeplearning.com/

Anokas:
https://www.kaggle.com/anokas

ZFTurbo:
https://www.kaggle.com/zfturbo

10 minutes to Pandas:
https://pandas.pydata.org/pandas-docs/stable/10min.html

Machine Learning Mastery (Deep Learning part):
https://machinelearningmastery.com/category/deep-learning/

Karpathy blog:
http://karpathy.github.io/
https://medium.com/@karpathy

Two minute papers:
https://www.youtube.com/channel/UCbfYPyITQ-7l4upoX8nvctg

Jeremy Howard's fast.ai:
http://www.fast.ai/
https://www.youtube.com/user/howardjeremyp

* Tahsin Reasat

No comments:

Post a Comment