# 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!

One caveat, programming is nothing like learning from an expert and then solving the same problem again. Programming is being creative to find a

newsolution a previously (locally)unknownproblem. That's the opposite of what this video shows.Happy new year!

Love your rhetoric 😀 Nice explanation, too.

GitHub or die.

lol @ may knowledge grow ∝ moore's law. Really good video!