Why is learning neural networks so hard?

6 months, 200 papers, and a bunch of random bookmarked blogposts…

Every software engineer wants to get into AI. It’s the new thing!

Everyone’s curious about it, everyone talks about it — but not that many people actually do it.

But why not? The tensorflow tutorial is detailed and comprehensive, and there are plenty of resources for people who just need a how-to guide.

But a how-to guide doesn’t help. Engineers need to spend months going through the academic literature to know what neural networks are even about and how they might be relevant.

As one HN comment put it:

The problem is not that people don’t know how to build neural networks.
The problem is that people don’t understand what they can do with this technology, or even, in a meaningful sense, what it is.
Given a array of input numbers [i1, i2, i3…] it provides a black box that can map that input to a set of output numbers [o0, o2, …] where the dimension of the input and output are different.
That’s. All. It. Does.

Neural networks are kind of like a mysterious black box magic function whose uses only become apparent after wading through hundreds of academic papers.

And who has the time for that?

What would be really helpful: a broad overview of all the different techniques, tips and tricks in neural networks. So as a software engineer, you can just know which network design you need for your domain problem.

Maybe I have a database of 500k online reviews. How do I even go about making sense of this data using neural networks?

What if I want to create a chatbot AI? What kind of dataset do I need to collect?

Even more so, the field is developing at such a rapid pace it’s hard to keep track of what’s being invented.

Suppose I work in game development. What parts of deep learning are even relevant to me? What am I missing? That answer changes every couple of months.

Neural Networks for Hackers

Questions like these are what motivated me to create Neural Networks for Hackers, a MOOC focused on the practical side of deep learning.

The course covers:

  • what software packages and frameworks to use
  • training models using GPUs, setting up a cluster in the cloud
  • a broad overview of algorithms used in neural networks — in plain English
  • understanding the vocabulary used in deep learning academic papers
  • how to keep up with the deep learning literature
  • interesting project ideas so you can start building right away

The crowdfunding project is below. All the course material is already written, the fundraising is purely for creating more diagrams, audio recordings, screencasts and more.