Online Courses for Studying ML

Hi everyone, I’m glad to meet all of you here again.

If you are looking to start studying ML and have no idea how, especially considering the vast amount of information available on the web (which sometimes makes you feel completely lost), I can try clarifying it for you with today’s blog.

I will recommend some Coursera courses that I personally did during my PhD and provide some insightful comments that can hopefully guide you through if you are looking to start your learning journey and don’t have any idea how. Additionally, I will also suggest some extra content that I personally like and which can help you in the learning process.

First of all, I guess it’s important to clarify that learning ML is a bit different compared to ‘simply’ learning a new framework (like Django or Angular) or a new programming language…things that you probably already did once in your life watching YouTube videos.

Machine learning, in very simplistic terms, essentially involves a mix of linear algebra, calculus and statistical analysis. So, if you feel that there is a lack of knowledge or maybe you haven’t practiced it for a while, I’d highly recommend to make a small review. I know there are some courses online that specifically focus on these topics with ML oriented content, so that could be a nice start indeed. Ideally, if you have time and motivation, doing a Master’s degree or even a PhD in that area might not be a bad idea.?

But if it’s not your case, and you are ready to start, here are my recommendations:

1. The Deep Learning Specialization from deeplearning.ai:

https://www.coursera.org/specializations/deep-learning

Which is also available for free on YouTube (without certificate, of course, and without the programming exercises):

Maybe it wouldn’t be very meaningful if I give details about the course itself, since you can simply have a look at the website with more detailed information, but one important thing that I’d like to emphasize is that this specialization (a set of 5 different courses) perfectly explains every fundamental concept that you need to start understanding ML. Actually, I would recommend this course even if you are looking for ML contents like Reinforcement Learning, GANs, unsupervised learning, etc. Andrew NG, the course tutor, is one of the leading characters in ML community and his approach to teaching is just amazing. The exercises also help a lot. By the way, don’t skip the exercises! It is very important to put the learned concepts into practice. Besides, they are not hard, and you can actually re-use parts of the code (or related ideas) in your own projects.

Another interesting aspect about this specialization is that, at the end of each course, there are special interviews with famous scientists of ML community, for instance, Ian Goodfellow, the creator of GANs. It’s interesting to see their views on ML and future perspectives, both in terms of research and professional opportunities.

If you ever heard about the Pareto’s principle, this course would be your 80% knowledge using 20% of your time.?

2. Reinforcement Learning Specialization from University of Alberta:

https://www.coursera.org/specializations/reinforcement-learning

Personally, I’ve been studying RL since my master’s degree where I proposed solutions for Wi-Fi/LTE coexistence using RL and generated 4 related papers (one conference and two journals as the main author, and another journal as co-author), however I felt more comfortable about ‘knowing/understanding RL’ after I finished this specialization.

Yeah, it might look unusual, but RL is a very tricky area. The RL algorithms are somehow very simple (e.g., Q-Learning, SARSA, double Q-Leaning, etc.), anyone can develop their core idea with less than 25 lines in python (or even less). Even Deep RL, if you have little understanding of Keras/Tensorflow/PyTorch are not that hard.

The tricky part, however, is that the fundamental concepts behind RL can be somehow complex. Just think about that for one second.. problems that are traditionally solved using linear, non-linear, combinatorial, convex/non-convex optimization and even genetic algorithms… are now being solved with 30 lines of Python code? I mean…there must be something behind it.?

And yeah, there are huge things underneath. This specialization starts from the basic concepts of Dynamic programming, value/policy iteration, etc., and goes until policy gradient methods. If you fully learn everything about these fundamental concepts, you certainly won’t have problems understanding state-of-the-art RL algorithms.

Moreover, what I especially liked about this specialization is that it provides you a free e-book of Richard Sutton about RL, and it also motivates you to do the exercises that are in the book. Some of them are not directly programming exercises…they are more analytical ones, but still very important if you really want to thoroughly understand RL concepts.

If anyone is doing or planning research activities on RL domain, I’d highly recommend doing this course. Besides, if you also study control engineering, like me, many concepts of RL can be extended to this area.

After you have finished these courses (at least the first one), here comes my third recommendation:

3. MLOps Machine Learning Engineering for Production

https://www.coursera.org/specializations/machine-learning-engineering-for-production-mlops

Well, if you thought that ML is just about feeding data to the neural network, selecting parameters, evaluating its performance and, Voilà, it’s done, I must unfortunately tell you that this is just the beginning.

I mean…for fun, for small projects or even for some research tasks, ML challenges might be finished after the training phase. However, if you wish to deploy your model in real production, serve clients, make money, etc., you will need much more. And the challenges are huge.

A fair comparison would be with the code development. Today we have all these methodologies/frameworks related concepts, such as Agile, Scrum, DevOps, etc., that tries to optimize many steps of the coding development process, including debugging and error-fixing steps, aiming to deliver the best possible coding in short period of time. In a broad manner, for ML it’s kind of the same.  

And that’s exactly what this specialization aims to bring: understanding the core process of ML models deployment, practical challenges, automation methodologies and tools and, more specifically, show us a data-driven perspective of ML. This is a ‘relatively new topic’ in ML community and this specialization is one of the first of its kind.  

Regarding data-driven ML topic, I’d say it’s one of the most important subjects you will want to learn. Many people, such as Andrew NG himself, advocates that ML will increasingly become more and more data-driven instead of model-driven. It’s a bit controversial topic and requires a long discussion, but, in case of any doubt, you can learn both perspectives during this specialization.?

Well, I guess these 3 suggestions are already a nice start and they will probably take some of part of your time in the near future.?

Additional Content

Well, apart from the courses, here are some blogs, podcasts and ML related content that I like to follow:

Lex Fridman YouTube channel:

https://www.youtube.com/c/lexfridman

This guy was a deep learning professor at MIT, (and jiu-jitsu black belt ?) and now he has a podcast where he talks with lot of interesting people (e.g., Elon Musk) about specific scientific content, including Deep Learning, Artificial General Intelligence, etc.

If you like very deep and technical ML content, this other podcast could be an interesting option for you:

The Gradient Podcast

You will find lot of nice talks about AI state-of-the-art research and also some philosophical ones, such as AI misuse or AI trustworthiness. A very nice podcast for that morning when you wake up inspired.

Well, you can start to have fun with all those suggestions.

But If you wish to talk more about that or want to share something interesting, feel free to contact me.?

Pedro Maia de Sant Ana

I am a PhD student at Robert Bosch GmbH Corporate Research in Renningen, Germany, with focus on Machine Learning solutions for Wireless Network Application.

e-mail: Pedro.MaiadeSantAna@de.bosch.com