Monthly Archives: March 2017

Deep Learning Demystified

“Deep Learning” is one of the buzz words we’ve all heard of but have no idea what it actually means. I’ve spent the past couple weeks learning more about deep learning to figure out what it actually is, and below is a quick digest that’s hopefully simple enough for anyone to understand.

At it’s core, deep learning is simply pattern recognition. Think of it as pattern recognition on steroids.

Neural networks are a set of algorithms, modeled loosely after the human brain, that are designed to recognize patterns. They interpret sensory data through a kind of machine perception, labeling or clustering raw input”.

^^ What on earth does that mean? Below is an example that should break everything down for you.

With a neural network, we are trying to solve – in essence – a classification problem. So let’s say you had a million images of dogs in a database of 3 million pictures (the numbers are just random). If you label each picture as “Dog” or “Not Dog” a neural network (as well as other possible algorithms) will try to extract the features from all the dog images as well as all the non dog images so that if you give it a new image, it can try to figure out what whether or not it is a dog. This is what we call a “feature extraction” problem. For example, with dog images, we might quantify features such as color, # of pixels, # of triangles making up the middle of the face, and any other thing we can think of. The algorithm will look for patterns in these features in your new image. Of course, the more exact our features and the better we clean our data, the better our neural network will work.

 

Input is a pixel, hidden layers are the progressions (ears, noses, triangles), output layer is a dog

Deep learning tends to layer neural networks on top of neural networks in order to better grasp patterns in the data. This can have issues such as model overfitting. Deep learning tends to function in an unsupervised environment. For example, in our dog picture example, we would not have captions for the pictures. The computer would be essentially trained to recognize features and group them. The computer doesn’t know what a dog is, all it is doing is grouping sets of features together. If our data is clean and we have a large enough data set, it will group a new image of a dog differently than a new image of a car and we will have achieved the same result.)

The biggest challenge with deep learning is teaching the set of algorithms to find and expose the data you want it to. In the example we used above with dog recognition, the model would not be able to efficiently find dogs in the images unless it has “learned” all of the features of a cat. What that means is you need to expose your model to a ton of data in order for the model to work properly.

Now here’s why I think deep learning is so cool (and freaky at the same time). We’re eventually going to live in a world where everything you do is completely personalized to your likes / interests. We’re already seeing some of that today (Spotify recommending music, Facebook recommending friends), but as we continue to feed these algo’s with more data, and as the engineers behind the scenes continue to get smarter, the possibilities are endless.

There’s A LOT more I could get into, but this post will essentially allow you to answer the question “what is deep learning” at a high level.