Tuesday, May 15, 2018

A Machine Learning Guide for Average Humans

Posted by alexis-sanders

Machine learning (ML) has grown consistently in worldwide prevalence. Its implications have stretched from small, seemingly inconsequential victories to groundbreaking discoveries. The SEO community is no exception. An understanding and intuition of machine learning can support our understanding of the challenges and solutions Google's engineers are facing, while also opening our minds to ML's broader implications.

The advantages of gaining an general understanding of machine learning include:

  • Gaining empathy for engineers, who are ultimately trying to establish the best results for users
  • Understanding what problems machines are solving for, their current capabilities and scientists' goals
  • Understanding the competitive ecosystem and how companies are using machine learning to drive results
  • Preparing oneself for for what many industry leaders call a major shift in our society (Andrew Ng refers to AI as a "new electricity")
  • Understanding basic concepts that often appear within research (it's helped me with understanding certain concepts that appear within Google Brain's Research)
  • Growing as an individual and expanding your horizons (you might really enjoy machine learning!)
  • When code works and data is produced, it's a very fulfilling, empowering feeling (even if it's a very humble result)

I spent a year taking online courses, reading books, and learning about learning (...as a machine). This post is the fruit borne of that labor -- it covers 17 machine learning resources (including online courses, books, guides, conference presentations, etc.) comprising the most affordable and popular machine learning resources on the web (through the lens of a complete beginner). I've also added a summary of "If I were to start over again, how I would approach it."

This article isn't about credit or degrees. It's about regular Joes and Joannas with an interest in machine learning, and who want to spend their learning time efficiently. Most of these resources will consume over 50 hours of commitment. Ain't nobody got time for a painful waste of a work week (especially when this is probably completed during your personal time). The goal here is for you to find the resource that best suits your learning style. I genuinely hope you find this research useful, and I encourage comments on which materials prove most helpful (especially ones not included)! #HumanLearningMachineLearning


Executive summary:

Here's everything you need to know in a chart:

Machine Learning Resource

Time (hours)

Cost ($)

Year

Credibility

Code

Math

Enjoyability

Jason Maye's Machine Learning 101 slidedeck: 2 years of headbanging, so you don't have to

2

$0

'17

Credibility level 3

Code level 1

Math level 1

Enjoyability level 5

{ML} Recipes with Josh Gordon Playlist

2

$0

'16

Credibility level 3

Code level 3

Math level 1

Enjoyability level 4

Machine Learning Crash Course

15

$0

'18

Credibility level 4

Code level 4

Math level 2

Enjoyability level 4

OCDevel Machine Learning Guide Podcast

30

$0

'17-

Credibility level 1

Code level 1

Math level 1

Enjoyability level 5

Kaggle's Machine Learning Track (part 1)

6

$0

'17

Credibility level 3

Code level 5

Math level 1

Enjoyability level 4

Fast.ai (part 1)

70

$70*

'16

Credibility level 4

Code level 5

Math level 3

Enjoyability level 5

Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems

20

$25

'17

Credibility level 4

Code level 4

Math level 2

Enjoyability level 3

Udacity's Intro to Machine Learning (Kate/Sebastian)

60

$0

'15

Credibility level 4

Code level 4

Math level 3

Enjoyability level 3

Andrew Ng's Coursera Machine Learning

55

$0

'11

Credibility level 5

Code level 2

Math level 4

Enjoyability level 1

iPullRank Machine Learning Guide

3

$0

'17

Credibility level 1

Code level 1

Math level 1

Enjoyability level 3

Review Google PhD

2

$0

'17

Credibility level 5

Code level 4

Math level 2

Enjoyability level 2

Caltech Machine Learning on iTunes

27

$0

'12

Credibility level 5

Code level 2

Math level 5

Enjoyability level 2

Pattern Recognition & Machine Learning by Christopher Bishop

150

$75

'06

Credibility level 5

Code level 2

Math level 5

N/A

Machine Learning: Hands-on for Developers and Technical Professionals

15

$50

'15

Credibility level 2

Code level 3

Math level 2

Enjoyability level 3

Introduction to Machine Learning with Python: A Guide for Data Scientists

15

$25

'16

Credibility level 3

Code level 3

Math level 3

Enjoyability level 2

Udacity's Machine Learning by Georgia Tech

96

$0

'15

Credibility level 5

Code level 1

Math level 5

Enjoyability level 1

Machine Learning Stanford iTunes by Andrew Ng

25

$0

'08

Credibility level 5

Code level 1

Math level 5

N/A

*Free, but there is the cost of running an AWS EC2 instance (~$70 when I finished, but I did tinker a ton and made a Rick and Morty script generator, which I ran many epochs [rounds] of...)


Here's my suggested program:

1. Starting out (estimated 60 hours)

Start with shorter content targeting beginners. This will allow you to get the gist of what's going on with minimal time commitment.

2. Ready to commit (estimated 80 hours)

By this point, learners would understand their interest levels. Continue with content focused on applying relevant knowledge as fast as possible.

3. Broadening your horizons (estimated 115 hours)

If you've made it through the last section and are still hungry for more knowledge, move on to broadening your horizons. Read content focused on teaching the breadth of machine learning -- building an intuition for what the algorithms are trying to accomplish (whether visual or mathematically).

Your next steps

By this point, you will already have AWS running instances, a mathematical foundation, and an overarching view of machine learning. This is your jumping-off point to determine what you want to do.

You should be able to determine your next step based on your interest, whether it's entering Kaggle competitions; doing Fast.ai part two; diving deep into the mathematics with Pattern Recognition & Machine Learning by Christopher Bishop; giving Andrew Ng's newer Deeplearning.ai course on Coursera; learning more about specific tech stacks (TensorFlow, Scikit-Learn, Keras, Pandas, Numpy, etc.); or applying machine learning to your own problems.


Why am I recommending these steps and resources?

I am not qualified to write an article on machine learning. I don't have a PhD. I took one statistics class in college, which marked the first moment I truly understood "fight or flight" reactions. And to top it off, my coding skills are lackluster (at their best, they're chunks of reverse-engineered code from Stack Overflow). Despite my many shortcomings, this piece had to be written by someone like me, an average person.

Statistically speaking, most of us are average (ah, the bell curve/Gaussian distribution always catches up to us). Since I'm not tied to any elitist sentiments, I can be real with you. Below contains a high-level summary of my reviews on all of the classes I took, along with a plan for how I would approach learning machine learning if I could start over. Click to expand each course for the full version with notes.


In-depth reviews of machine learning courses:

Starting out

Jason Maye's Machine Learning 101 slidedeck: 2 years of head-banging, so you don't have to ↓

{ML} Recipes with Josh Gordon ↓

Google's Machine Learning Crash Course with TensorFlow APIs ↓

OCDevel's Machine Learning Guide Podcast ↓

Kaggle Machine Learning Track (Lesson 1) ↓


Ready to commit

Fast.ai (part 1 of 2) ↓

Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems ↓


Broadening your horizons

Udacity: Intro to Machine Learning (Kate/Sebastian) ↓

Andrew Ng's Coursera Machine Learning Course ↓


Additional machine learning opportunities

iPullRank Machine Learning Guide ↓

Review Google PhD ↓

Caltech Machine Learning iTunes ↓

"Pattern Recognition & Machine Learning" by Christopher Bishop ↓

Machine Learning: Hands-on for Developers and Technical Professionals ↓

Introduction to Machine Learning with Python: A Guide for Data Scientists ↓

Udacity: Machine Learning by Georgia Tech ↓

Andrew Ng's Stanford's Machine Learning iTunes ↓


Motivations and inspiration

If you're wondering why I spent a year doing this, then I'm with you. I'm genuinely not sure why I set my sights on this project, much less why I followed through with it. I saw Mike King give a session on Machine Learning. I was caught off guard, since I knew nothing on the topic. It gave me a pesky, insatiable curiosity itch. It started with one course and then spiraled out of control. Eventually it transformed into an idea: a review guide on the most affordable and popular machine learning resources on the web (through the lens of a complete beginner). Hopefully you found it useful, or at least somewhat interesting. Be sure to share your thoughts or questions in the comments!


Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!