Sunday, February 28, 2016

Deep learning in simple words

I wanted to try out the Up-Goer Five text editor, which lets you use only the 1,000 most commonly used english words (compiled by Randall Munroe), and I settled on trying to explain deep learning. Here's what I ended up with:
Sometimes, we want a computer to answer some kind of question, like who is in a picture or what the best move is in a game. To do this, we tell the computer to pretend it has a lot of little parts; each of the parts will look at the question, do a very easy bit of work, and then give its work to the next parts of the computer. At first, the computer doesn't know what each part should do, so it just picks any bit of work without thinking about it. The last parts of the computer will give us the answer.
At first, the parts don't know what to do in order to answer the questions. To help the computer learn, we write down many questions and the right answers. Then, we show the questions to the computer one at a time. The computer uses its parts to guess the answer and checks if it got it right.
Then comes the most important step: if it guessed the answer wrong, the computer changes all of its parts just a little so that it gets a little closer to the right answer. If it does this enough times, it will start to guess the right answers to new questions more and more often.
In some old learning computers, not very many parts worked on a question one after the other. Since one part can't do very much, and the parts couldn't share their little bits of work with each other, the old computers couldn't learn to answer very hard questions. Deep learning is when many parts of the computer work on the question one after the other, so that each part can build on the work of the other parts to answer hard questions.
When lots of parts work on questions one after the other, it's harder to figure out how to change the parts to make the guesses better, and sometimes the parts never figure out the right things to do. But now, some people figured out how the computer should change its parts, and computers are much better at learning to do lots of things.
I'm pretty happy with this. An interesting effect of using the text editor was the sense of focus it gave me; it pushed me to prioritize the most critical aspects (in my mind) of deep learning, instead of more tangential connections between deep learning and other things. I think the result accurately represents my understanding, and that someone who understands DL better could use it to diagnose holes in my picture of how DL works, which is nice.

This leaves something to be desired; for example, I love Chris Olah's explanation of DL as differentiable functional programming, and my description didn't really explain anything about backpropagation or the importance of differentiability. Still fun!

No comments:

Post a Comment