Finding a home for learning with Fast.ai
In late 2017, I stumbled across Fast.ai while looking to understand and deploy artificial intelligence. To that point, my interaction with the subject consisted of either reading superficial articles that taught nothing of value or starting & not finishing well-intentioned deep dives into deep learning/neural network theory.
Jeremy has encouraged students of his courses to write about their experiences. Benefits include
- Proving that you truly understand something by writing it down
- Connecting you with a burgeoning community of fast.ai and deep learning practitioners and enthusiasts
- Creating a confidence loop that motivates you to keep learning more
Trending AI Articles:
1. Ten trends of Artificial Intelligence (AI) in 2019
2. Bursting the Jargon bubbles — Deep Learning
3. How Can We Improve the Quality of Our Data?
4. Machine Learning using Logistic Regression in Python with Code
This post is a high-level overview of my ongoing learning to date. I am excited for future posts where I plan to share more detailed work I have done!
Initial Foray and Learning to Code
I jumped into the course in late 2017, excited to learn everything about Deep Learning. I was quickly met with a rude awakening that delivered my first concrete lesson from fast.ai, a lesson Jeremy emphasizes at the beginning.
You need one year of coding experience, ideally in Python, as well as a very basic understanding of terminal commands and cloud computing
I didn’t have any real coding experience (aside from dabbling in SQL and R for data analysis) and also could not make heads or tails about GPUs, cloud platforms, and virtual machines. Given that I was doing this as a personal learning project balanced with work, family, and life, weeks dragged on as I struggled to even get a virtual machine set up on AWS.
At some point, I pulled the plug and decided to do this the right way. Over the next year, I committed to that year of learning to code. I tried many coding classes and honestly didn’t complete all of them. But I found a few that stuck (perhaps due to their teaching style) and I finished them. Those were
- Learn to Program: The Fundamentals by Paul Gries and Jennifer Campbell on Coursera
- Learn to Program: Crafting Quality Code also by by Paul Gries and Jennifer Campbell on Coursera
- The learning tracks at Dataquest.io
- The Python for Data Science courses at Datacamp
- The Learn Python the Hard Way course
First Time Through the Course in the Fall of 2018
The effort was worth it. In the Fall of 2018, I sat down once again to attempt fast.ai. My investment in learning Python made a big difference. Also, the fast.ai team had revamped the course to be that much more user-friendly and approachable. I set up a virtual machine on Paperspace with relative ease and got through the course. However, completing the course led me to my second big lesson, something Jeremy and others also emphasize:
Most people taking the course should plan on listening to the lectures multiple times to really solidify your understanding.
I found it most useful to power through topics and sections that I didn’t initially understand as opposed to getting bogged down in them, This is a hard thing to do; when I found I didn’t understand something, my natural tendency was to figure it out right then. Once I overcame that tendency, I found learning more effective. I would finish a lesson and then go back to the topics I didn’t understand, often leveraging the incredible support of the fast.ai forums. Using this approach, I felt like the core concepts, things like learning rate, stochastic gradient descent, embeddings, data augmentation, and many more, started to come into focus.
Fast.ai — 2019 version
Entering 2019, I felt great about having completed the course. However, as I thought about next steps , including taking the advanced fast.ai course, I still felt unprepared. After some thought, the third core lesson emerged, yet again something Jeremy emphasizes:
Plan on doing a lot, not just listening. Pick a project, or a series of projects, and make them your own and do them from beginning to end. Get into the weeds and build things.
I had definitely done some of this in the 2018 go-around but realized that I didn’t do enough. I have now committed to doing the course a second time here in early 2019. When I logged back in, I was thrilled to discover that Jeremy and the team had completely revamped the course for 2019. They had taken it up several notches in usability and accessibility, including a much more robust guide for setting up your virtual machine with many options. This time I opted for Google Cloud Platform. Again, the prior learning and practice made using a new (for me) cloud service reasonably straightforward. And my comfort level with reading the documentation and looking for answers to things I didn’t know was that much better. For example, using vim to edit my .bash_profile file to ensure that my GCP Zone, Instance Name, and Instance Type were saved for use in my terminal was no longer a foreign concept.
That’s all for a first post on the topic. I expect to go very deep on the subject in the coming weeks and months. My next post will be discussing my first project, an image classifier for Gold, Silver, and Copper coins!