As I mentioned in an earlier post, I’ve spent the last few weeks working on Google’s Machine Learning Crash Course. After several mornings and weekend hours of work, I managed to finish all the lessons. In Google’s own words, the crash course is “A self-study guide for aspiring machine learning practitioners.” From a workflow perspective, the course is broken up into 25 lessons, each of which has at least one power-point style lecture from Google researchers, as well as a combined 40+ exercises. They also try to use real-world case studies as examples, which helps make the course material feel a bit less abstract.

The website lists an expected completion time of 15 hours, but I’d say 20-30 hours is probably a bit more realistic if you’re not already a Machine Learning expert, not counting studying prerequisites of course. Still, this is probably one of the most compact machine learning resources I’ve seen. It puts almost everything you need in your web browser and gives a good balance between too much information and not enough. It glosses over some of the more technical and involved details, such as detailed mathematical proofs, but makes sure you have enough intuition to work through the logic and understand what you’re doing.

I have an undergraduate level of knowledge about statistics, and I work with Python on a daily basis, so I figured I had the prerequisites covered. The prerequisites for the course specifically are…

### Course prerequisites :

- Mastery of intro-level algebra
- Mostly check, I am not afraid of matrices, vectors, and I’ve even been known to dabble in identities. I got a D the first time I took vector calculus, but that was mostly due to being sick and missing the first couple of weeks of classes–I took it again and got an A at least. I’ve also been working through a great MIT online course Probabilistic Systems Analysis and Applied Probability. That turned out to be a great refresher for a lot of the basic ideas addressed in the crash course.

- Proficiency in programming basics, and some experience coding in Python
- Like I said, I write Python every day for work. I also have a prior post detailing how to get Python Jupyter Notebooks set up to run machine learning environments on a Nvidia GPU. So, I’m already familiar with the Jupyter notebooks environment.

…There’s a lot of good information on the linked prerequisites page and it’s a great place to start if you need to brush up on a few concepts. I especially liked the visual explanation of the back propagation algorithm.

Once you start the actual course, you are presented with a list of lessons covering fields like “Reducing Loss“, “Classification“, and “Training Neural Nets“. Each lesson has a expected completion time. I found that these time estimations are a bit low overall compared to the time it took me to finish them, but it varies a good deal lesson to lesson. Sometimes exercises will require additional time just to train the machine learning models for instance and I felt that extra time wasn’t really factored in.

The video lessons are probably the most unexpectedly well done part of the whole crash course. They do a good job of introducing basic concepts, and they’re paced well to boot. Sometimes I’d need to go back and replay a certain “slide”, but doing so was made easy by the interface. It also has an option to play the slides at 1.5x or 2.0x speed, if that works better for you.

The exercises are very useful and interactive. Each exercise takes the form of a Jupyter notebook, hosted via the Colaboratory Google research project. They hold your hand enough that you don’t get too lost, but also have hidden solution sections you can reveal if you’re stumped or just want to double check your work.

I feel that the course gave me a more thorough understanding of the basic principles of machine learning and gave me a solid foundation to work from. The introductions to Tensorflow, NumPy, and Pandas are probably the most useful gems in the crash course. Together the provided Python tools make for a very powerful and flexible machine learning toolbox.

To wrap everything up, I definitely recommend the Google Machine Learning Crash Course as long as you’re not looking for a single source to teach you everything about the field. And, I suppose, to expect that would be overlooking the “crash course” part. Instead, this is a first step that will point you in the right direction to learn more. But it serves that purpose very well. Well done to the folks at Google!