Learn “Machine Learning”

source: elitedatascience.com

In this blog you’ll learn how to get started with Machine learning and the common tools and techniques which will help you practice and build your own machine learning application…

Note: if you want to directly know the learning resources, jump on to section 3.

1. Why this blog?

Many a times people ask me on various social media platforms or emails:

  • How can I learn ML (Machine Learning)?”,
  • What are the sources or online courses where I can learn ML?”,
  • What are the best tools which are cost effective and easy to work with?

If you also have these questions on your mind, then you are at the right place.

I chose to write this blog to share the learning resources I used to learn ML and the path through which you can get started with ML so that everyone can benefit and not struggle the way I did at the beginning.

2. Is it hard to get started with ML?

No, It is not!!

ML is a field of active research and because of this there are a lot of learning resources and buzz around it. This may make you feel intimidated and lost and you might end up looking at 50 courses, making it hard for you to choose where to start from.

This is where I come into picture, I’ll tell you the courses and the sequence in which I went about learning through them.

There are mainly2 aspects of ML:

  1. Theoretical
  2. Practical

The part of doing the theoretical side of ML may make you uneasy initially because it needs you to know some math concepts such as calculus and other optimization techniques such as gradient descent.

Unfortunately, there is no easy way out of it. You’ll have to at least understand some major concepts if you want to really practice ML techniques and solve real life problems. If your objective is to just simply create some ML application, you may be able to get away without learning this stuff.

That being said, the practical aspect is what really matters at the end of the day for your project or problem. There are a plethora of ML frameworks, (TensorFlow, PyTorch, Keras, MxNet), you name it. These frameworks allow you to implement your ideas without getting into the low level implementation details if you don’t want to.

So, without further ado,

3. Let’s get started

I am going to tell you the list of courses/resources and what are their pros and cons:

3.a) Courses (MOOC’s):

It is important to be able to implement the learnings and make ML applications/softwares, for this you need to learn some programming language. Python (3.x) is currently the most popular programming language for Machine learning and other stuff due to it’s huge community support and ease of use.

Sentdex is one of those Youtube channel’s that posts great stuff about Python applications and even ML (more about that later). His videos are easy to go along.

I will suggest watching till video 36. Sys Module and then just watch Matplotlib tutorials if you want to.

This is one of those courses which every ML enthusiast will recommend to a ML newbie. Prof. Andrew Ng is one of the pillars of Machine Learning and is right at the forefront of the AI movement. The course covers the theoretical aspect of ML and hence is a must to get started. The examples are easy to understand.

I’ll recommend taking notes while watching videos (This will help you revise or look up the equations or formula fast). Even though the course exercises are in Octave/Matlab, try implementing them in the language of your choice (Python, R, JavaScript). I’ll recommend going till week 5–6 in the curriculum and then move forward with other courses and continue this in parallel if you like.

This course dives into the practical aspect of ML teaching you ML algorithms along with the coding exercises and videos to implement and learn. It will also teach you the basics of TensorFlow to get you started.

You may skip the playlist when later in the series you need GPU’s to perform tasks or you may try to build applications on the cloud (later in the post).

This is a specialization comprises of 5 courses, each targeting a specific field of Deep Learning in depth. It is also taught by Prof. Andrew Ng and is more of a advanced version of ml-org course. The programming exercises are in Python 3. The specialization itself is paid but the individual courses could be audited for free (you won’t get a certification if you audit the courses).

It’s more of a personal choice how far and what all courses you want to do out of these 5 courses. So choose and dive deep. ;)

This is the course I have really enjoyed doing. It has a top-down teaching approach rather than the conventional bottom-up where you don’t have any idea why you are learning the stuff you learn until later in the course.

It has 2 courses: Practical Deep Learning for Coders is the one you need to start with and then later on work your way towards advanced couse (Cutting Edge Deep Learning For Coders).

3.b) Resources:

You also need to implement the things you learn to really get the concepts hard wired in your brain. Not all of us have GPUs or TPUs to train large ML models specially when we are talking about Deep Learning.

Fortunately, there are many online resources and cloud services that will help you get things done easily and cost effectively.

You may use cloud services such as Google Cloud Services, Paperspace, Azure, AWS, etc. to train your models and even deploy them for others to use.

Google Cloud Services is what I currently use because it provides $300 free credits for your Google account and also gives you access to GPUs such as K80 at very cheap rates.

There are plenty blogs written on how to setup machines on cloud for ML:

  1. Blog by Amulya Aankul
  2. Blog by How Khang

3.c) Competitions & Datasets:

For practicing and honing your skills it is advised to participate in ML challenges online. These are mostly real world problems which a startup may be trying to solve or some other reason.

It is a great way to interact with the community and even get a job in Machine Learning if you have a great profile.

There are many platforms which host machine learning competitions mainly Kaggle.com and HackerEarth.

Kaggle also provides you Datasets to try out for fun or make new findings, experiment with them.

Another great resource for Datasets is UCI Machine Learning Repository.

I’ll keep on updating this blog whenever I find new resources/courses related to ML.

You can also get in touch with me on Twitter at @ShrimalAnubhav, look at my portfolio, or find me on LinkedIn and Facebook. I’d love to hear from you.