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

## Метаданные

- **Канал:** Two Minute Papers
- **YouTube:** https://www.youtube.com/watch?v=B70tT4WMyJk
- **Дата:** 31.12.2015
- **Длительность:** 2:42
- **Просмотры:** 12,939
- **Источник:** https://ekstraktznaniy.ru/video/14897

## Описание

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". Or, "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. It can also learn how to rotate images of different cars around to obtain a frontal pose. This technique can learn from someone how to sort a set of 20 numbers and generalize its knowledge to much longer sequences.

______________________

The paper "Neural Programmer-Interpreters" is available here:
http://www-personal.umich.edu/~reedscot/iclr_project.html

The thumbnail image was created by Iwan Gabovitch (CC BY 2.0) - https://flic.kr/p/paxzB9
Subscribe if you would like to see more of these! - http://www.youtube.com/subscription_center?add_user=keeroyz

Splash screen/thumbnail design

## Транскрипт

### Intro []

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

### Recurrent Neural Network [0:40]

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.

### Generalization [1:30]

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

### Conclusion [1:50]

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!
