Neural Programmer-Interpreters Learn To Write Programs | Two Minute Papers #34

Google DeepMind trained neural networks that learn to write programs by watching examples. They can add numbers digit-by-digit, rotate images, and sort data, then apply those learned algorithms to longer sequences than they ever saw during training.
Chapters
Dear fellow scholars, this is two minute papers with what could be a more delightful way to celebrate New Year's Eve than reading about new breakthroughs in machine learning research. Let's talk about an excellent new paper from the Google DeepMind guys. In machine learning, we usually have a set of problems for which we are looking for solutions. For instance, here's an image. Please tell me what is seen on it. Here's a computer game. Please beat level three. One problem, one solution in this case, we are not looking for one solution. We are looking for a computer program, an algorithm that can solve any number of problems of the same kind. This work is based on a recurrent neural network which we discussed in a previous episode. In short, it means that it tries to learn not one something, but a sequence of things. And in this example, it learns to add two large numbers together as a big number can be imagined as a sequence of digits. This can be done through a sequence of operations. It first reads the two input numbers and then carries out the addition, keeps track of the carrying digits and goes on to the next digit on the right. You can see the individual comments executed in the computer program it came up with. It can also learn how to rotate images of different cars around to obtain a frontal pose. This is also a sequence of rotation actions until the desired output is reached. Learning more rudimentary sorting algorithms to put numbers in ascending order is also possible. One key difference between recurrent neural networks and this is that these neural programmer interpreters are able to generalize better. What does this mean? This means that if the technique can learn from someone how to sort a set of 20 numbers in, it can generalize its knowledge to much longer sequences. So it essentially tries to learn the algorithm behind sorting from a few examples. Previous techniques were unable to achieve this, and as we can see, it can deal with a variety of problems. I am absolutely spellbound by this kind of learning because it really behaves like a novice human user would, looking at what experts do and trying to learn and understand the logic behind their actions. Happy New Year to all of you fellow scholars. May it be ample in joy and beautiful papers. May our knowledge grow according to Moore's Law, and of course, may the Force be with you. Thanks for watching and for your generous support and I'll see you next year.










