Zero to Hero: The (Mostly) Free Guide to Getting Started in A.I.
By John Sutor
May 09, 2020 · 9 minute read
Mathematics
Data Science
Computer Science
Statistics
Wherever you look today, artificial intelligence seems to be connected in some way, shape, or form. Education? Artificial intelligence is poised to change the way we learn through personalized teaching systems. Medicine? Artificial intelligence will enable doctors to identify patients' diseases much quicker through medical image analysis and processing patient health records. Cybernetic overlords who will take over the world? Well, let's just hope that the last one doesn't happen. Despite all the opportunities that artificial intelligence offers in helping us to change nearly every field and industry, it's a daunting subject to get started in. Linear Algebra and Advanced Calculus are no walk in the park, and to even begin writing the algorithms, you have to be comfortable coding in an object-oriented manner. Yikes! Well, it would be scarier if we hadn't compiled an awesome list of great resources to kickstart your career as a machine learning/artificial intelligence practitioner!
Coding (The Geeky Stuff)
Before you can begin creating world-changing technologies through artificial intelligence, it is important to have a comfortable background in coding. We're not talking about being able to output "hello world!" from a simple script either; understanding different data types, and having the ability to create functions and objects is a necessity for programming machine learning applications. For starters, we recommend diving into the Python programming language. After all, some of the best deep learning and machine learning frameworks out there are built on top of Python, including Tensorflow, PyTorch, and Scikit-Learn. Furthermore, Python is compiled and executed via a virtual machine and is a dynamically typed language. This is jargon to say that Python is easy to use from the get-go, and you don't have to worry about many of the errors and additional setup required to use other languages such as C++ or Java.
The first source that we recommend for getting started in Python is Corey Schafer's series "Python Programming Beginner Tutorials." With some videos in the series having as many as 1.2 million views, there's no doubt that this series is one of the best-regarded out there to get accustomed to the different data types, data structures, loops, and functions included in the Python language. Once you're done with the intro series, you can dive right into more advanced Python topics such as "Intro to Pandas," a Python library for dealing with tabular data. To get started now, check out the intro series at https://www.youtube.com/watch?v=YYXdXT2l-Gg&list=PL-osiE80TeTskrapNbzXhwoFUiLCjGgY7.
Although we initially set out to create a great list of free resources, this book was too good to pass up. If you're more of a project-based learner, or you prefer to read through tutorials rather than watching videos, we highly recommend you check out Eric Matthes' "Python Crash Course." In this book, Matthes teaches you the fundamentals of Python by walking you through topics such as creating a video game, plotting data, and developing an interactive website. The book is aimed at beginners, so it assumes that you have no previous knowledge of the Python programming language. You can buy it now either in print or as a downloadable e-book at https://www.amazon.com/Python-Crash-Course-Eric-Matthes-ebook/dp/B07J4521M3.
If you're a fan of online courses and want to better understand the basic principles of computer science, we recommend you check out the EdX course "Introduction to Computer Science and Programming" offered by MIT. While learning how to program in Python, this course will also teach you about the fundamentals of computer science such as basic algorithms, algorithmic efficiency, and how to test and debug your code. Furthermore, if you feel that you are motivated by deadlines and having assigned coursework, then this structured online course may be the best way for you to learn Python. You can view the course at https://www.edx.org/course/introduction-to-computer-science-and-programming-7.
Mathematics (The Scary Stuff)
Once you've got the basics down with coding, it's important to have a good understanding of topics such as Linear Algebra, Statistics, and Calculus. Before you run away and regret ever wanting to get involved in the field of artificial intelligence, we highly suggest that you look at these amazing resources that explain these complex subjects in a simple manner.
To kick off your dive into the mathematics powers machine learning, we highly recommend that you view the video series of the YouTube series 3Blue1Brown. The channel is devoted to helping you learn complex topics in a simple to understand way. Furthermore, if you're already comfortable with topics such as basic calculus, we still recommend that you watch the channel's videos so that you may think about topics you have already learned in new, unique ways. To get started, check out 3Blue1Brown's series on Linear Algebra at https://www.youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab, and Calculus at https://www.youtube.com/watch?v=WUvTyaaNkzM&list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr.
Machine learning is also heavily focused on the theories of statistics and random variables. Therefore, having a firm understanding of probability is a necessity for crafting artificially intelligent algorithms. Luckily, Khan Academy has a phenomenal series covering all things statistics. Our top recommendations from the series are the mini-series titled "Probability" and "Random Variables." You can find both at https://www.khanacademy.org/math/statistics-probability, along with a bundle of other mini-series covering a variety of other statistics topics.
If you're interested in learning how to solve problems in the field of calculus, we recommend that you check out the "Paul's Online Notes" website. We know what you're thinking, who the heck is Paul and why should I regard his assortment of notes on advanced calculus problems. Well, you should see it for yourself! The website examines key topics in the courses Calculus I, II, and III while showing step-by-step solutions to common problems in all three levels. Don't take our word for it, check out the Calculus I course now at http://tutorial.math.lamar.edu/Classes/CalcI/CalcI.aspx.
Machine Learning (The Fun Stuff)
Once you're feeling confident with basic coding practices, it's time to hop right into making a superintelligent algorithm, right? Well, not exactly. The breadth of the field of artificial intelligence is huge, and most algorithms today are purpose-built for specific applications such as classifying images, playing video games, and learning how to read and respond to text messages. We won't go too deep into these different subfields of machine learning, but we can steer you in the right direction for how to get started.
If you're interested in learning how and why neural networks fundamentally work, we highly recommend checking out Andrew Ng and his deep learning courses. They're designed to teach you how to get started implementing neural nets from the ground up and will allow you to have a very deep understanding of exactly how they operate. Nothing beats the satisfaction of building a neural network from scratch, believe me. To get started, check out the first course in his series at https://www.youtube.com/watch?v=CS4cs9xVecg&list=PLkDaE6sCZn6Ec-XTbcX1uRg2_u4xOEky0.
If you're more interested in getting quickly involved in working with artificial intelligence without having a deeper understanding of how the algorithms work, we suggest that you explore https://fast.ai. The website is targeted to domain experts that are interested in quickly getting up and running with artificial intelligence in their respective fields. If you come from a non-computer science background, this may be the best option for you.
If you want a very in-depth approach to deep learning, we recommend checking out the Deep Learning Book. The book is free to all and was written by arguably three of the greatest minds of the deep learning revolution (Ian Goodfellow, Yoshua Bengio and Aaron Courville.) You name a topic in deep learning, and this book most likely covers it. However, this book is written in the bare-bones mathematical notation of the algorithms that it presents, so it’s not a great starting point for the faint of heart. You can find it now at https://www.deeplearningbook.org/.
Tools and Resources (The Helpful Stuff)
When it comes to training deep learning and machine learning algorithms, you’re gonna need a LOT of computational power. Fortunately, there are some great tools that will give you instant access to powerful remote computers to train on.
Google Colab is an online Jupyter Notebook environment (we’ll cover what that is more in-depth in a later post) that allows you to quickly gain access to a high-powered GPU to quickly train your algorithms on. If you have a Google account, Colab will allow you to save your Notebook files directly to Google Drive so that you can access them anywhere at any time. The one limitation is the six-hour timeout limit that will result in a loss of data if you hadn’t already saved your algorithm’s training progress before time runs out. If you’re willing to stay on your toes to make sure your algorithm trains to completion, then this is definitely a great option for you. You can get coding away now at https://colab.research.google.com/.
Another great Jupyter Notebook environment that you can easily get started in is Paperspace. They offer free notebooks with GPU and CPU support as well for six-hour time periods. Luckily, Paperspace will save all of your data before the time limit ends, so you can pick up from where you started when you resume training. Although Paperspace can’t directly access your Google Drive, it does offer folders full of data for you to quickly get started training and testing your algorithms. Check out the site now at https://www.paperspace.com/.
Wrapping Up
Although this list could go on and on (and then some,) we wanted to present you with what we found to be the best resources for getting started in machine learning, especially focusing on a deep learning approach. If you find these useful, be sure to let us know and share it with your friends who would benefit as well. If you find these awful, let us know as well! We’re always improving to show you the best resources to benefit you. Speaking of which, if you want to find resources such as STEM programs, mentors, or peers who are as passionate about science as you, we recommend you check out our website and sign up now to get started in sharing your amazing projects. We’re here to help you make the most of the scientific opportunities that are available to you, and we’re always listing more opportunities and events that will help you take your STEM career to the next level. With that, we’ll let you check out these amazing resources, and be sure to check out the rest of this website as well.
Did you enjoy this article?