My 2-year journey into deep learning as a medical student — Part I: Initial Steps and the Books

The resources that I used and the steps that I have taken to become a deep learning developer and land a job without a math background

Moein Shariatnia
13 min readMar 18, 2022
Image from Unsplash by Mantas Hesthaven

In this article, I’m going to introduce the resources that I’ve used and the steps that I’ve taken along my journey into deep learning which helped me get a job as AI and Machine Learning developer, win a few data science competitions, and write peer-reviewed medical-AI research papers.

As the article became much longer that I first anticipated, I will publish this guide in 3 successive parts: Books, Courses, and Other resources and skills. This post is on the first one: The Books that I read along the way!

It could be interesting for you to know that I am a medical student without mathematics or programming background. I hope that this article helps people out there especially those who are thinking to start their journey to enter the world of machine learning but are kind of confused about how to start and what resources to use along their way.

Please keep this in mind that you do not have to follow every step that I’ve taken; these steps have worked out for me but it does not have to work for every one; it is very likely that you are smarter than me or have some related background to the field of ML and DL which makes some of my steps unnecessary for you. So, keep an open mind and only pick those parts that you think will be helpful for you.

I want to thank my dear friend and mentor, Dr. Pouria Rouzrokh who led me through this journey; actually, many of the below recommendations are his words to me when I got started to learn DL (Deep Learning). I do appreciate all that he has done for me: Thank you Pouria, you made a big impact on my whole life!

The first crucial steps at the beginning of my journey

Get ready! (Image from Unsplash by Lindsay Henwood)

This is the rough timeline of the steps that I’ve taken to enter the world of ML and DL; You absolutely do not have to stick to it but I brought here to give you an idea of how my journey started!

  1. Learning Python 🐍 (It does not matter which course/book you start with, just pick one and you are good to go)
  2. Python for data analysis book → helped me get started with Numpy and Pandas
  3. Deep Learning Specialization at Coursera
  4. Deep Learning with Python (1st edition at that time, 2nd edition is available now) book
  5. Kaggling and personal projects → I trained many many models and learned the needed intuitions on how to process data and tune models
  6. Fastai Courses and the accompanying book
  7. Getting in love with PyTorch :)) and reading two books on it → Deep Learning with PyTorch and PyTorch Computer Vision Cookbook
  8. Learning about classical machine learning models, data visualizations, and data analysis in general with Hands on Machine Learning with Scikit-Learn and Tensorflow 2nd edition book
  9. Miscellaneous resources which will be introduced in depth.
It’s on! (Image from Unsplash by Clemens van Lay)

📚 1. Books

Impact vs Difficulty of the books that I’ve studied along my way, Image by me

The above chart gives you a rough idea on the difficulty and impact of the books that I’ve read in these 2 years. I will go through them all in the following section and talk a little bit about their pros and cons and the base requirements of each of them.

Best books to start with: Beginner friendly and high gain books!

I read the 1st edition of this book after passing Deep Learning Specialization at Coursera and it was a perfect resource to get more hands-on experience and get ready for my personal projects. There are many nuances that get ignored in online courses like loading and preprocessing data properly and building efficient data and model training pipelines which are well taken into consideration in this book.

Beside Python, you need to have a basic understanding of math to fully grasp the ideas in the book.

You will learn about how deep learning works in general and go through many hands-on projects along the chapters. You will also learn about best practices of coding, training, and evaluating your DL models in this book by implementing lots of state-of-the-art models.

The books are written by François Chollet, creator of Keras and a great researcher. He provides very intuitive explanations on how machine learning and deep learning work and on how to evaluate the results of DL models.

At the time of writing this article, I’m studying the 2nd edition which is released recently and it is just as wonderful!

This is an amazing and precious resource! I’m still shocked by the high quality of this book and how it makes complicated ML and DL concepts seem easy to understand for everyone.

The book covers lots of topics in data science, machine learning, and deep learning. To name a few that I’ve learned a lot from, I will list the following:

  • Classical machine learning methods (before DL era), especially for tabular data
  • Unsupervised learning methods (when you want to find patterns in your data but you do not have explicit labels for them)
  • Data wrangling and pre-processing
  • Mathematical background of the ML and DL models and methods
  • Data visualization

As mentioned above, this book is about much more than just deep learning and unlike others that mostly focus on processing images and texts, you will have a good idea how to process and learn from “ANY” kind of data after reading this book.

Actually, I skipped some of the TF/Keras implementations in this book as I was (still am!) a PyTorch fan at the time and did not need to learn another framework. I mentioned this to tell you that it’s okay not to read every page of a book in depth and skim some chapters or skip it completely, even in a great book like this. However, I still studied the theory chapters in deep learning sections and they were great.

This is a great resource to learn about NumPy and Pandas; two libraries that you will always use in almost every project if you start your journey in ML and DL. I studied this book before starting Deep Learning Specialization and it helped me very much as those courses use NumPy a lot.

I need to mention that NumPy is a huge library which provides a whole lot of functionalities; you do not have to memorize all the functionalities and methods of NumPy explained in this book! It’s enough to get a general idea on how this library works, what can and cannot be done with it, and where you can find and learn more about each method in the book. Then, you can always come back to those pages in the book explaining a specific function when you know you need it. So, use it like a dictionary (come back to it when you need a specific part of it — don’t try to memorize the whole thing!).

There is one thing that I want you to learn really well in this book: HOW TO INDEX ARRAYS! It is very common in ML/DL practice to work with N dimensional arrays (tensors) and it is crucial that you can index them easily to get the data you want out of them or apply some form of mathematical function (e.x. softmax on last dimension) to those data sitting on the dimension that you want!

This is a really straight forward book for someone who wants to read only one book which covers a lot of things (Like the book hands on machine learning … introduced earlier)!

This book is very easy to understand and makes deep learning and machine learning ideas seem really intuitive for anyone, even those without a math degree. In contrast to the previously introduced books, this book uses PyTorch framework for deep learning (which is my favorite one); so, you can start learning PyTorch with this book and you will be fine. The book also uses fastai; a higher level framework to make it easier to work with PyTorch.

I read this book after passing a lot of fastai courses by Jeremy Howard so I was already familiar with this new framework (the courses will be introduced in the next part of this article which is specifically on Courses).

You will implement and experiment with many modern deep learning models in this book that achieve world-level performance on a lot of tasks: from vision to NLP to tabular data. The chapters on RNNs (Recurrent Neural Networks) are a really great resource for those (like me) who find these types of models intimidating: this book once and for all cleared the ideas behind them for me as the reader will easily implement all types of them with simple lines of codes.

The best thing about this book is that it helps you implement the most difficult models and concepts in deep learning with simple lines of codes! When you implement something in this way, it sticks in your mind forever!

The requirements to start this book is just knowing how to code in Python and also a basic (high school level) understanding of math!

This is not a well-known book in contrast to the previous ones that I’ve already introduced. However, it was one of the most impactful books on my learning and I found it really joyful to study.

One interesting and unexpected point about this book is that most of its hands-on examples use medical datasets and they are closer to real world scenarios compared to all other books that I introduced here.

As the name suggests, the book is on Computer Vision applications of Deep Learning with PyTorch framework; so, unlike the previous ones, it is not a general book on all applications of deep learning. But, you will dive much deeper to vision applications which was the thing that I needed at the time I started it.

The code templates of this book are very useful if you are new to PyTorch. I still use many of the code structures in this book to train and evaluate my models!

To start this book, you need to already have a good understanding of deep learning and how it works on images as the book assumes you know these stuff. You also need to know Python, of course!

More advanced books for the enthusiastic learner

From this part on, I will introduce each book more concisely.

Written by the creators of PyTorch, this is definitely one of the best resources to learn PyTorch. However, I was good enough at PyTorch when this book came out so I skimmed most of it and did not go through it in-depth.

This is one of the best books in providing stunning visualizations of rather complicated concepts in DL that makes it really easy to grasp the core ideas behind them. It also provides well written explanations for the techniques and methods that we use in DL and why they work!

One downside about this book is that its main project is on a big dataset (60 GBs) which needs a modern GPU to process that someone who has just started their journey in DL might not have access to.

Working with such a big dataset makes it difficult for learning by trial and error (my favorite way of learning in coding!) and that was the reason why I did not make it to finish this book!

I’m a big fan of GANs and they always surprise me both in the theory and how they learn and when they finally work and start generating interesting stuff. An introduction of GANs is not related to this article but for those of you who are interested in GANs or need them in their jobs and projects, I highly recommend this great book. If you are a TF/Keras user, there is another book named “Generative Deep Learning: Teaching Machines to Paint, Write, Compose, and Play” which is also a good resource to learn about GANs and how to implement them.

I started this book when I was good enough at deep learning and wanted to explore the world of machine learning a little bit further. Considering that I was a total newbie in Reinforcement Learning (RL), this book did a great job at explaining the core ideas of RL and how the agents and models are trained. There was also advanced material in this book on the new methods which was amazing. With the help of this book and random blog posts out there I was able to code an RL agent to play Pong (Atari game) which processed raw pixels of the game and was able to win all the time!

It’s not a book on deep learning! The book focuses on using whatever statistical learning method that there is out there to get patterns and insights out of data at hand! It’s on data science in general.

A cool point about this book is that every code example is written in both Python and R and you can compare their syntax and complexity.

It’s a good book if you want to learn more about classical ML models and data science.

Another really interesting and useful book in the list! I read it right before starting my job which is about 8 months ago but I remember most of it clearly right now because of the catchy and real world examples it provides. The book takes you through the challenges and decisions you need to make when developing and deploying ML-powered apps.

It helps ML developers to get out of their code-only world and think a little more about what the customer actually wants and how their models are going to make money in the real and cruel world of business!

This has been one of the most helpful books that I’ve read in these 2 years and I see its effect in my job everyday.

Let’s shift gears a little bit and enter the world of learning Python!

Brief but absolutely helpful book. You need to be familiar with python before beginning this book. There are lots of amazing code examples in this book that make your life as a Python developer much easier and your codes much more beautiful. You will be introduced to the power of Python in this book and the idea that you can achieve lots of functionality in a few lines of code.

I read this book after I was pretty comfortable with python. There are both basic and advanced tips in this book that I believe a wide range of people could benefit from.

Finally it’s time to introduce a book which encompasses both of my favorite fields: ML and Medicine! When I started to read it, I thought it won’t be an advanced book on the ML side but I was wrong. There were many new technical ideas and terms in the book that I had no idea about!

The book is a good overview on the practical use cases of DL models in medicine and how far we have come in deploying these models to the real world. I definitely encourage those who are interested in ML and medicine to read this book.

Books on the mathematics background needed for ML and DL

This is a well known book on DL theory and mathematics written by a great researcher (creator of GANs!). I started it about a year ago with a study group that I had formed and hosted. I met really nice people there and it was a great experience.

You need to know that this is a really math intensive book and if you are like me and do not have a rigorous mathematical background, you may not understand it fully (I can claim that I only understood around 30% of it, best case scenario!). However, I still encourage you to read this book as it gives you very good mathematical intuitions on why DL works at all and what you should care about when training and evaluating models. It will also help you study the research papers of the field easier as you will get used to see and understand the mathematical symbols and equations!

Understanding the core ideas in probability is a fundamental skill that everyone who wants to get started and thrive in the field of ML and DL needs. After researching a lot on the resources to learn about probability, I picked this book (along with a course that will be introduced in the next part of this article) and it was an absolutely great resource to get familiar with the basic ideas in probability. This book along with the deep learning textbook (introduced earlier) helped me a lot in understanding the mathematical equations and theories in ML/DL papers.

The End of Part I

The next parts are already written and will be released in the next two weeks after some editing and proofreading :)

Part II of this series can be found here:

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!