- I'm in! How do I begin?
- My suggestions for efficient learning
- What to do after the course
- Thank you for reading
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.
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!
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.
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.
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).
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.
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.
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.
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.
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...
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.
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 😊
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 firstname.lastname@example.org