Welcome!

Summary: I cover some questions you might have regarding the fast.ai course. Then, I offer some advice that would have helped me in the beginning.

Who is this article for?

If you're reading this article, I assume you have heard about the terms deep learning, machine learning, or artificial intelligence. Maybe you are not too sure what they mean specifically, but you want to know more. Maybe you've been searching for a while to finally learn about these concepts, but are overwhelmed by the magnitude of courses, books and software available.

Whether you are a software developer planning to add a new skillset, a student wanting to broaden your horizon, or an expert in a completely different field and you want to apply AI in your company or project: The fast.ai online course can be great for you to get started, and it's completely free!

Fastbook

About fast.ai

fast.ai is an organization committed to making deep learning more accessible. It was founded by Jeremy Howard and Rachel Thomas, both distinguished data scientists.

They offer four major elements that can help you get into deep learning.

  • fastai (notice the missing dot), a software library that allows creating powerful deep learning models with few lines of code, while nonetheless being very customizable.
  • A free online course based on the library.
  • A book that is designed to go hand in hand with the course. It's available as a paper book, as an e-book or even for free on Github.
  • A forum with a very helpful community.

For me, what really sets fast.ai apart from other online courses, is their practical approach:

We [are] always teaching through examples. We ensure that there is a context and a purpose that you can understand intuitively, rather than starting with algebraic symbol manipulation.

This does not mean that the foundations are not covered (they are!), but the order is different than in other books or courses, where you start with basic tools and only get to usable applications at the end of the course - if ever.

What is covered in the course?

Classify pet breeds, Predict bulldozer prizes, Recommend movies, Identify moview review sentiment

The course covers major applications of deep learning. There is a certain focus on computer vision, but the other topics like tabular data, natural language processing (NLP), and recommender systems are explained as well. You will be able to create very well performing models in all of these areas, and as early as lecture 2 you can create a working web app that can recognize grizzly bears and brown bears (or anything else you choose).

Later in the course, you will learn the foundations of deep learning. You'll write code for stochastic gradient descent and activation functions from scratch. Don't worry if you never have heard about these, it's explained very well. You will dig deeper into PyTorch, the underlying software of fastai.

Also, there is a lecture (and a chapter) on Data Ethics. It is taught by Rachel Thomas and will give you a lot of food for thought. I think it's great that fastai encourages you to think about the possible implications of your work early on.

Should I get the book?

Since the book is freely available online in the form of notebooks, you might be wondering if you should get the printed book anyway. My opinion: If you can afford it - yes, you absolutely should get it! Its layout is beautiful, which makes it easier to read than the online version. Also, I personally just like to read a physical copy: my attention span is longer and I tend to take it more seriously.

That being said, you certainly can work with the free online version. It has the added benefit that you will always have the latest version, which is up to date and where bugs are fixed (and there are a few in the book).

Fastbook open

Do I need to know Python?

Yes - or any other language. The book is called "Deep Learning for Coders", so it will not explain every line of code in detail or teach Python from scratch. In fact, the course website states:

The only prerequisite is that you know how to code (a year of experience is enough), preferably in Python, and that you have at least followed a high school math course.

However, you don't have to be an expert. When I first started with the course, I only had a few weeks of experience with Python. I did however have some (very basic) experience with web languages like JavaScript and PHP, that helped me pick up Python pretty quickly. If you know any programming language, you won't have a problem, since Python is rather accessible and has an easy syntax. If you don't have any programming experience, I recommend investing a few weeks to learn the basics of Python before you tackle fastai. There are wonderful tutorials available for free.

Python

I'm in! How do I begin?

With lesson 1! 😊 You really can get started right away, the interactive content runs on ready-to-use and free platforms like Google Colab, so you don't have to spend time setting up your own machine.

The course website gives you an overview of the course (you can read it in addition to this article), then you can start with lesson 1.

I enjoyed combining the videos and the book. After every lesson, I ran the associated notebooks on Colab and then read the chapters in the book. The chapters are very similar to the video lessons, but I think it helps consuming the content in a different medium and being able to go back a few pages if you want to read something again.

My suggestions for efficient learning

Watch the videos twice

I recommend watching the videos twice. On the first view, don't focus on the details too much, just get an overview of the topics covered and take some notes while doing so. This is especially relevant for the later lessons that contain much more code. On the second view, you can take more detailed notes and try to get all the details.

Take notes!

Taking notes was a gamechanger for me. I think it's the best way to stay active during the videos, and over time the notes will serve as a central knowledge repository. Also, it's great to have a place to jot down your questions, so you can try and answer them later!

I keep notes in Microsoft OneNote, you can of course use any other application or paper. I created a template based on this awesome forum post. The template contains following points:

  • Key Points from the lecture
  • Advice from Jeremy
  • To-Do challenges from the further research section of the chapter, ideas for projects
  • Reading & Exploring papers that are mentioned, stuff you find on the web but don't have time for at the moment
  • Questions that arise during the lecture
  • as the last point, I copy & paste the questionnaire.

Please read the above-mentioned forum post for details on each section, it's a really good system.

These notes are meant to be used not just once, but you should refine them and work with them continuously. They can serve you as your go-to resource every time you study. All your open questions, your project ideas, and of course lots of knowledge can live there.

Coffee & Notebook

Don't get stuck on one thing that you don't understand

This is an important point and I think Jeremy mentions it as well. You don't have to understand every detail right away. It's often better to move on and revisit the part you didn't quite get later.

Run the code

Jeremy will ask you to do this, and you really should run the notebooks for yourself. I recommend the clean versions, where there is no text, just code. Predict what the output of a cell will be, and if you were wrong, go back and understand why. Just reading the code in the book is not enough, it can give you the illusion that you understood it, when in reality you could not reproduce it. I fell into this trap more than once...

Do the questionnaire

Take the time and answer every question in the questionnaire. This might take a while, but it makes sure that you really understood all important concepts. You can find answers to most questions in the forum.

Additionally, I can recommend aiquizzes.com, where many questions and their answers are made available together with the relevant part of the lecture. You can use this for spaced repetition learning, the website will remind you when older questions need reviewing, it's great.

Use other sources

Fastai, while being excellent, is not the only source of wisdom. I often google for concepts I don't quite get. More often than not I find a blog post, a stack overflow answer or a video explaining it very well or with a different approach than Jeremy.

What to do after the course

The course covers only around half the book. There will be a part 2 that covers the more advanced chapters, but as of now (December 2020) there is no release date announced. If you want to dig deeper into the material, you should not wait for the course but work through the book on your own.

In addition, I'd suggest picking a project and make it as good as you can. Go on the forums and see if you can help others, or ask for advice. Write about your journey in your own blog - like the one whose first post you are reading here 😊

Thank you for reading

Since you made it this far, I hope you found this article interesting and I could get you excited for fast.ai! I really can recommend taking the course and reading the book, and if you put in the time you will see amazing results soon. Let me know if you have any questions or found this article helpful. I'm on Twitter, I'd be happy to hear from you there or via mail at hannes@deeplearning.berlin