22
Nov

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

Dear Fellow Scholars, this is Two Minute Papers
with Károly Zsolnai-Fehér. 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 is an image, please tell
me what is seen on it. Here is 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 carrying digits, and goes on to the next digit. On
the right, you can see the individual commands 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 the 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, 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!

• Thomas Gandalf says:

One caveat, programming is nothing like learning from an expert and then solving the same problem again. Programming is being creative to find a new solution a previously (locally) unknown problem. That's the opposite of what this video shows.

• Harsh Hemani says:

Happy new year!

• Anthony Proschka says:

Love your rhetoric 😀 Nice explanation, too.

• ochgottnochma says:

GitHub or die.