My 2-year journey into deep learning as a medical student — Part II: Courses

Moein Shariatnia
8 min readMar 25, 2022

--

Deep learning and machine learning courses that I’ve taken along the way in learning deep learning.

Image from Unsplash by Avel Chuklanov

Here is the first part of this series:

Courses

It’s time to introduce the courses that I’ve used along this way that helped me get started and grow in the field. You should also keep in mind that there are probably many more and newer courses out there as the community keeps providing interesting educational material every day. So, keep on searching too. This fact aside, I believe the following list introduces high quality courses for many fields that most of you will be okay to start with and learn lots of new things from.

1. Deep Learning Courses:

Deep Learning Specialization

1. (The one and only!) Deep Learning Specialization at Coursera by Andrew Ng

I think my path would have been much different, and of course much more difficult if I had not chosen this course as my entry to deep learning.

Andrew Ng, who is well known in the field of ML and DL, is an absolutely great teacher skilled at explaining complicated concepts in simple terms and plain English among many other things. You do not need to worry about complicated math stuff if you take his courses (those who have taken the courses know what I mean by this sentence!)

There are 5 courses in this specialization, and I recommend you to take them all. The first one starts with explaining a little bit of the math behind deep learning but don’t worry, it does not get too complicated or boring (you still need a general understanding of math; the concepts you learned in high school should suffice).

There is also hands on practice in Jupyter Notebooks during and in the end of the course where you transform what you learnt into Numpy code and classify cat images from other images with your “AI” model (I still remember clearly how excited and happy I was that my model had learnt to recognize cats in images!).

The next courses in this specialization have roughly the same structure and get more advanced as you go on. By the end of course 4, you should have gained a good understanding of the core ideas in deep learning and computer vision. The last course is on sequence models and NLP (Natural Language Processing) which introduces the models that work on sequential data such as text, audio, … . You can skip this course if you think you only need to know computer vision and come back to the last one later when you needed it.

I’ve seen many other courses on deep learning after this specialization but none was as great and comprehensive as this one!

fastai course

2. Practical Deep Learning for coders by Jeremy Howard

This was the second course that I got familiar with and there are 3 versions of it (2018, 2019, 2020) available on Jeremy’s YouTube channel.

The most prominent point about this course is that it is truly hands on! If you do not care much about ML and DL background in a formal mathematical way and you want to use AI models to solve a problem as soon as possible, this is the course you are looking for.

Most of us are used to the academic system where we have to learn lots of theoretical materials first and only after that we arrive at applying them in real world. This course, changes this path totally and in the very first sessions of the course you will train your SOTA (state-of-the-art) deep learning models in a few lines of codes!

This course uses “fastai” framework which is built upon PyTorch and makes a series of tasks easier for you. I personally do not use fastai these days but the course helped me understand PyTorch and also Python better!

I mostly watched the videos of the 2019 version of the course and in the second and advanced part of the course that year, Jeremy talks about how the fastai library is written. It was a complicated topic at that time for me but it was one of the most important resources that helped me learn Python better and get good at reading other people’s code.

The 2019 version of the course, first part

You will also learn about how to read ML/DL papers as Jeremy walks you through lots of important papers in the field and introduces more valuable ones to study in home.

I learned deep learning foundations from the Deep Learning Specialization but Jeremy courses where the ones that kept me motivated and learned me how to grow in the field and taught me how to learn any topic in general!

Deep Learning course by New York university

3. New York University Deep Learning Course, by the Turing award winner Yann LeCun

Another amazing resource by another great teacher! I haven’t watched the videos fully yet and only watched those that were more interesting for me or needed to know more about.

There are 2 versions of this course: 2020 and 2021. I’ve watched mostly the 2020 version and I liked it more than the newer one!

It is a more mathematically centered course on DL but you don’t need to panic! Yann and Alfredo (the courses’s TA) explain the main ideas very clearly and you can skip most of the math and get to the practical sessions where they teach and use the beloved PyTorch framework to develop the models and techniques introduced in the lectures.

There are also great guest lectures from top research centers in the world and you will learn lots of advanced and SOTA techniques for your DL projects. This is one of those resources that I wish I had more time to put for and update my knowledge in DL.

This course is a great resource for those who want to learn more about unsupervised and self supervised methods in ML/DL. Most of the important research papers in this field are introduced and discussed in the sessions.

2. Mathematic Background Courses:

Linear Algebra by Gilbert Strang

1. Linear Algebra (18.06) on MIT OpenCourseWare, by Prof. Gilbert Strang

Let me introduce some courses that I’ve taken on mathematics. I passed this course very recently to get a better understanding of the math behind ML. It might sound strange for you to know that most of the operations done in a DL model is actually simple matrix multiplication! Getting a better understanding of the real meaning of these operations and transformations in linear algebra helps you to develop more accurate intuitions on how DL models work.

You can also understand the math in papers more easily and do not get confused with all that math symbols cluttering the page!

Single Variable Calculus by David Jerison

2. Single Variable Calculus (18.01) on MIT OpenCouseWare, by Prof. David Jerison

I’m of those who thought that calculus cannot be learned fully and deeply, but it turned out that my entry to calculus has not been ideal and this subject turned out to be really enjoying for me after passing this course.

You do not need most of this course to get a good understanding of how DL works and how the models learn but I still continued it; mostly because it was exciting for me!

This is a great resource to start over on calculus if you want to give it a second chance!

Like the previous course, getting familiar with the concepts in calculus helps you read papers more fluently and understand how the models work with more accurate intuitions.

Statistics and Probability course on Khan Academy

3. Statistics and Probability on Khan Academy

Understanding probability and statistics is at the core of learning machine learning and it helps you a lot in developing intuitions on why and how the models work (it’s all about the intuitions).

It’s rather a brief course on the core ideas in probability and statistics and if you start it along with the book Probability: For the Enthusiastic Beginner from the previous section, it gives you deeper understanding of the concepts.

Here’s the first part of this series:

3. Courses on more advanced/specific topics:

Generative Adversarial Networks Specialization at Coursera

1. Generative Adversarial Networks (GANs) Specialization at Coursera

As you might have known from the previous section, I’m a big fan of GANs and I try to stay up to date to its research in the field. Implementing these models and gaining a deep understanding of how these models work behind the scene feels just great! If you can write a fully functional GAN model from scratch, it signals that you have a good understanding of the details of training DL models and you are good at coding with your DL framework (PyTorch, TensorFlow, …); because writing a GAN model is a really complicated and detailed task!

This specialization has three courses and you will have a good instructor along the way that helps you learn and code these models easier.

AI for Medicine Specialization at Coursera

2. AI for Medicine Specialization at Coursera

For those who want to learn more about the applications of AI in medicine, this can be a good resource. There are three courses in this specialization, one for each of the following: medical diagnosis, prognosis, and treatment.

Honestly, I only passed the first two courses and I didn’t like the second one actually. However, the first one which is about using deep learning models to diagnosis diseases from medical records (such as brain MRI, …) was interesting to me at the time and I learned lots of useful ideas from that course.

You will learn about segmentation and the appropriate model architecture for this task (U-Net like models) along with how to evaluate models to make sure that they are safe enough to be used in clinic.

Get in touch with me

Twitter: @MoeinShariatnia

LinkedIn: https://www.linkedin.com/in/moein-shariatnia/

Email: moein.shariatnia@gmail.com

GitHub: https://github.com/moein-shariatnia

--

--

Moein Shariatnia

Machine learning engineer and Researcher | Also a medical student!