My 2 favorite Machine Learning tutorials for beginners

Getting started in Machine Learning & AI can be overwhelming. Here are 2 free resources to put you on the right path.

Kevin Dewalt
Actionable AI
7 min readMar 29, 2017

--

tl;dr — start with Udacity’s Intro to Machine Learning and then complete Neural Networks and Deep Learning by Michael Nielsen.

The curse of knowledge

Last week I attended my first PyData Meetup in Atlanta. Most of the attendees were developers, business leaders, or data scientists relatively new to Machine Learning. At one point someone asked, “How do I start learning about Deep Learning?” Someone suggested reading the Deep Learning textbook by Goodfellow et al.

I groaned in protest — because that’s the advice I was given a year ago by a Machine Learning expert.

Unfortunately experts in any tech often suffer from the curse of knowledge — they can’t put themselves in the position of a beginner.

Weeks into the book I found myself bogged down theory and decided explore other options. The textbook is a great resource for those already proficient in Machine Learning — but not appropriate for a beginner.

Since then I’ve explored dozens of books, articles, courses, and tutorials on practical applications of Machine Learning. Most are too general or, like Deep Learning, too detailed for results-oriented novices.

In this post I’ll share the 2 resources I recommend to anyone new to the domain.

My 3 criteria for great tech tutorials

Everything should be made as simple as possible, but no simpler.” — Albert Einstein

My goal in learning any new technology is not expertise — it is getting a firm foundation as quickly as possible. Here are the criteria I use in considering any resource:

Criteria 1: principals over tactics. My first objective is learning vocabulary, concepts, and applications. Foundational knowledge is more important than knowing how to solve a specific problem with a library.

Criteria 2: coding without tedious work. Where possible I try to learn by minimizing hands-on work because it takes so much time. Unfortunately this isn’t realistic with Machine Learning. I don’t think anyone can grasp the basics without creating arrays, matrices and running routines. Having said that, I would never recommend a tutorial which requires hours of debugging and troubleshooting.

Criteria 3: rewarding. too many online tutorials feel like an endless slog. If I’m not building on my knowledge with every step I won’t stick with it.

Here is what you should expect

I’d love to offer you a 1-pager or “quick start” guide to Machine Learning. Unfortunately it doesn’t exist. You can read about Google’s latest efforts at beating games but you won’t be able to translate the concepts to your business.

It will take time. With a few hours a day and occasional marathon weekends you should be able to complete these resources in a few months. Of course achieving hands-on proficiency will require many more months of study.

You will need to do some coding. The resources I recommend all rely on Python. I knew no Python at the start and still had no problem doing the exercises. With a bit of Googling I was able to answer every question I encountered.

You will need to know basic stats & linear algebra. You can’t learn about Machine Learning unless you’re comfortable with topics like correlation, vectors, and matrices. I haven’t studied these topics since 1994 and rarely use them in my work — so I had to brush up on the basics as I worked through exercises.

So what can you expect from your investment?

If you are a CXO …

Learning about Machine Learning could make your career. While your peers are playing buzzword bingo with terms like “Deep Learning” you’ll be able to develop strategies for leveraging your data assets for real opportunities.

If you are a product manger or consultant …

You’ll see new opportunities for growing existing business lines or launching new products with data assets. You’ll know the resources required and how to pitch opportunities to executives.

If you are a developer or data scientist …

These resources will give you a good starting point for becoming a Machine Learning engineer. You’ll be ready to try some side projects or compete in Kaggle contests.

Resource #1 — Udacity’s Intro to Machine Learning

Taught by Udacity founder Sebastian Thrun, Intro to Machine Learning is one of Udacity’s flagship courses. The course walks you step-by-step through Machine Learning basics with a combination of videos, quizzes, and hands-on exercises.

Intro to Machine Learning is probably the best technical course I’ve ever taken. Let’s see how it stacks up against my 3 criteria:

Criteria 1: principles over tactics.

The illustrations and examples convey the principles without overwhelming the student with theory or tactics. For instance, take a quick look at the Wikipedia definition of feature scaling and the scikit Python libraries. Nice references but hardly helpful for beginners.

Thrum teaches feature scaling using simple examples of predicting someone’s shirt size from height and weight:

The Udacity course uses simple examples to explain principles like feature scaling

Criteria 2: coding without tedious work.

Coding tests within the Udacity framework.

Thrum’s quizzes require mini coding tests within the browser. These exercises are great for translating the data and math into working solutions.

By using simple print statements you will get an understanding of how the libraries work without spending hours debugging Python.

The more challenging exercises did require running Python on my machine, but these didn’t require much troubleshooting either. I was able to work through a few sticky points by seeking help in the forums.

Criteria 3: rewarding.

This is probably the best part of the course — it takes you through each step with mini tests to ensure you’re grasping the material.

Thanks Sebastian! These little rewards help keep me going.

The step-by-step lessons are also a source of frustration — there is no easy way to skip ahead when things get slow.

I skipped the final project, an analysis of the emails in the Enron fraud investigation.

Resource #2 — Neural Networks and Deep Learning by Michael Nielsen

Most of the exciting work in AI is happening in Deep Learning. I considered taking Udacity’s Deep Learning course but wanted a resource which allowed me to learn at an accelerated pace.

I decided to give Neural Networks and Deep Learning by Michael Nielsen a try. I’m glad I did — this is the best introduction to Deep Learning I’ve encountered. In Nielsen’s words:

It’s rare for a book to aim to be both principle-oriented and hands-on. But I believe you’ll learn best if we build out the fundamental ideas of neural networks. We’ll develop living code, not just abstract theory, code which you can explore and extend. This way you’ll understand the fundamentals, both in theory and practice, and be well set to add further to your knowledge.

Jackpot.

With simple examples and a step-by-step explanation Nielson delivers on his promise.

Criteria 1: principles over tactics.

Nielsen’s book is simple without being simplistic. For instance, to illustrate how a neural network can generalize to learn any function Nielsen built a simple javascript graph which allows you to tweak weights to match complex nonlinear function.

With a simple javascript tool Nielsen explains abstract concepts in Deep Learning

Criteria 2: coding without tedious work

Nielsen provides neural networks built in Numpy and Theano to accompany the each chapter. I quickly got them running on my mac to do handwriting recognition agains the MNIST dataset.

I didn’t do any of the exercises or problems, but did walk through each line of the code to understand how everything works.

The Stochastic Gradient Descent function.

Changing parameters and data was simple and helped me connect the theory to the implementation.

Criteria 3: rewarding.

The best reward was speed — I never got bogged down. Each chapter sits independently and I was able to skip around without getting lost or bored.

Nielsen is also an entertaining writer and kept my interest by relating the topics to larger issues in AI. For instance, at the conclusion of the chapter on Deep Learning he dives into to the topic of intention-driven UI:

This [Google search] is a vision of an intention-driven user interface. In this vision, instead of responding to users’ literal queries, search will use machine learning to take vague user input, discern precisely what was meant, and take action on the basis of those insights.

The idea of intention-driven interfaces can be applied far more broadly than search. Over the next few decades, thousands of companies will build products which use machine learning to make user interfaces that can tolerate imprecision, while discerning and acting on the user’s true intent. We’re already seeing early examples of such intention-driven interfaces: Apple’s Siri; Wolfram Alpha; IBM’s Watson; systems which can annotate photos and videos; and much more.

What’s next? Machine Learning applications

As much as I love the hands-on work, my next goal is developing a solid understanding of how companies are applying Machine Learning in their businesses.

Machine Learning skeptics rightly point out that many of the breakthroughs are still happening in research. But the most innovative companies like Stripe, Netflix, and Facebook are already deploying solutions. Thousands of others are quietly working on them with pilot projects.

I’ll be sharing what I learn in the months ahead. In the meantime, please feel free to suggest other Machine Learning resources in the comments.

I’m currently helping companies leverage their data assets to develop new opportunities using AI. Email me at kevindewalt@kevindewalt.com if you’d like to chat.

--

--

Kevin Dewalt
Actionable AI

Founder of Prolego. Building the next generation of Enterprise AGI.