SlideShare a Scribd company logo
1 of 50
Download to read offline
Neural Programmer-
Interpreters
ICLR 2016
Best Paper Award
Scott Reed & Nando de Freitas

Google DeepMind
citation: 19

London, UK
Katy, 2016/10/14
Motivation
• ML is ultimately about automating tasks, hoping
that machine can do everything for human
• For example, I want the machine to make a cup of
coffee for me
Motivation
• Ancient way: is to write full highly-detailed program
specifications to carry them out
• AI way: come up with a lot of training examples that
capture the variability in the real world, and then
train some general learning machine on this large
data set.
Motivation
• but sometimes the dataset is not big enough! and it
doesn’t generalize well..
• NPI is an attempt to use neural methods to train
machines to carry out simple tasks based on a
small amount of training data.
NPI Goals
• 1. Long-term prediction: Model potentially long sequences
of actions by exploiting compositional structure.
• 2. Continual learning: Learn new programs by composing
previously- learned programs, rather than from scratch.
• 3. Data efficiency: Learn generalizable programs from a
small number of example traces.
• 4. Interpretability: By looking at NPI’s generated
commands, we can understand what it is doing at multiple
levels of temporal abstraction.
Related Work
• Sutskever, Ilya, Oriol Vinyals, and Quoc V. Le.
"Sequence to sequence learning with neural
networks." Advances in neural information
processing systems. 2014.
• Graves, Alex, Greg Wayne, and Ivo Danihelka.
"Neural turing machines." arXiv preprint arXiv:
1410.5401 (2014).
Sequence to sequence
learning with neural networks
Neural turing machines
http://cpmarkchang.logdown.com/posts/279710-neural-
network-neural-turing-machine
Outline
• NPI core module: how it works
• Demos
• Experiment
• Conclusion
Outline
• NPI core module: how it works
• Demos
• Experiment
• Conclusion
NPI core module
• The NPI core is a LSTM network that acts as a
router between programs conditioned on the
current state observation and previous hidden unit
states
• input: a learnable program embedding, program
arguments passed on by the calling program, and
a feature representation of the environment.
• output: a key indicating what program to call next,
arguments for the following program and a flag
indicating whether the program should terminate.
core: an LSTM-based
sequence model
Adding Numbers Together
Bubble Sort
Car Rendering
• Whatever the starting position, the program should generate a
trajectory of actions that delivers the camera to the target view, e.g.
frontal pose at a 15◦ elevation.
NPI Model
How it Works
How it Works
e: environment
a: program argument
p: embedded program vector
r(t): probability to terminate the current program
How it Works
How it Works
Outline
• NPI core module: how it works
• Demos
• Experiment
• Conclusion
Adding Numbers
• Environment:
• Scratch pad with the two numbers to be added, a carry row
and output row.
• 4 read/write pointers location
• Program:
• LEFT, RIGHT programs that can move a carry pointer left or
right, respectively.
• WRITE program that writes a specified value to the location of
a specified pointer
Adding Numbers
Actual trace of addition program
generated by our model on the
problem shown to the left.
Adding Numbers
• all output actions (primitive atomic actions that can
be performed on the environment) are performed
with a single instruction – ACT.
all output actions (primitive atomic actions that can be
performed on the environment) are performed with a single
instruction – ACT.
Adding Numbers Together
Bubble Sort
• environment:
• Scratch pad with the array to
be sorted.
• Read/Write pointers

Bubble Sort
Bubble Sort
Car Rendering
• Environment:
• Rendering of the car
(pixels). (use CNN as feature
encoder)
• The current car pose is NOT
provided
• Target angle and elevation
coordinates. 

Car Rendering
Car Rendering
• Whatever the starting position, the program should generate a
trajectory of actions that delivers the camera to the target view, e.g.
frontal pose at a 15◦ elevation.
GOTO
HGOTO
• horizontal goto
LGOTO
• Left goto
ACT
• rotate 15 degree
give control back to LGOTO
core realized it haven’t done
with horizontal rotation
Control back to GOTO
Outline
• NPI core module: how it works
• Demos
• Experiment
• Conclusion
Experiments
• Data Efficiency
• Generalization
• Learning new programs with a fixed NPI core
Data Efficiency - Sorting
• Seq2Seq LSTM and NPI
used the same number of
layers

and hidden units.
• Trained on length 20 arrays
of single-digit numbers.
• NPI benefits from mining
multiple subprogram
examples per sorting
instance
accuracy v.s. training example
Generalization - Sorting
• For each length 2 up
to 20, we provided 64
example bubble sort
traces, for a total of
1216 examples.
• Then, we evaluated
whether the network
can learn to sort arrays
beyond length 20
Generalization - Adding
only train on sequence length up to 20
Learning New Programs
with a Fixed NPI Core
• example task: find the Max in array
• RJMP: move all pointers to the right by repeatedly
calling RSHIFT program
• MAX: call BUBBLESORT and then RJMP
• Expand program memory by adding 2 slots.
Randomly initialize, then learn by
backpropagation with the NPI core and all other
parameters fixed.
• 1. Randomly initialize new program vectors in
memory
• 2. Freeze core and other program vectors
• 3. Backpropagate gradients to new program
vectors
• + Max: performance after addition of MAX program
to memory. 

• “unseen” uses a test set with disjoint car models
from the training set. 

Outline
• NPI core module: how it works
• Demos
• Experiment
• Conclusion
Conclusion(1/2)
• NPI is a RNN/LSTM-based sequence-to-sequence
translator with the ability to keep track of calling
programs while recurse into sub-program
• NPI generalizes well in comparison to sequence-to-
sequence LSTMs.
• A trained NPI with a fix core can learn new task
while not forgetting about the old task
Conclusion(2/2)
• provide far fewer examples, but where the labels
contains richer information allowing the model to
learn compositional structure(It’s like sending kids
to school)
Further Discussion
• Can each task help each other during training?
• Can we share environment encoder?
• Any comments?
project page: http://www-personal.umich.edu/~reedscot/
iclr_project.html

More Related Content

What's hot

PR-231: A Simple Framework for Contrastive Learning of Visual Representations
PR-231: A Simple Framework for Contrastive Learning of Visual RepresentationsPR-231: A Simple Framework for Contrastive Learning of Visual Representations
PR-231: A Simple Framework for Contrastive Learning of Visual RepresentationsJinwon Lee
 
A Neural Network that Understands Handwriting
A Neural Network that Understands HandwritingA Neural Network that Understands Handwriting
A Neural Network that Understands HandwritingShivam Sawhney
 
PR-217: EfficientDet: Scalable and Efficient Object Detection
PR-217: EfficientDet: Scalable and Efficient Object DetectionPR-217: EfficientDet: Scalable and Efficient Object Detection
PR-217: EfficientDet: Scalable and Efficient Object DetectionJinwon Lee
 
[PR-325] Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Tran...
[PR-325] Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Tran...[PR-325] Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Tran...
[PR-325] Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Tran...Sunghoon Joo
 
Embed, Encode, Attend, Predict – applying the 4 step NLP recipe for text clas...
Embed, Encode, Attend, Predict – applying the 4 step NLP recipe for text clas...Embed, Encode, Attend, Predict – applying the 4 step NLP recipe for text clas...
Embed, Encode, Attend, Predict – applying the 4 step NLP recipe for text clas...Sujit Pal
 
Meta Dropout: Learning to Perturb Latent Features for Generalization
Meta Dropout: Learning to Perturb Latent Features for Generalization Meta Dropout: Learning to Perturb Latent Features for Generalization
Meta Dropout: Learning to Perturb Latent Features for Generalization MLAI2
 
Improving neural question generation using answer separation
Improving neural question generation using answer separationImproving neural question generation using answer separation
Improving neural question generation using answer separationNAVER Engineering
 
Finding the best solution for Image Processing
Finding the best solution for Image ProcessingFinding the best solution for Image Processing
Finding the best solution for Image ProcessingTech Triveni
 
201907 AutoML and Neural Architecture Search
201907 AutoML and Neural Architecture Search201907 AutoML and Neural Architecture Search
201907 AutoML and Neural Architecture SearchDaeJin Kim
 
Learning to compare: relation network for few shot learning
Learning to compare: relation network for few shot learningLearning to compare: relation network for few shot learning
Learning to compare: relation network for few shot learningSimon John
 
Deep learning with keras
Deep learning with kerasDeep learning with keras
Deep learning with kerasMOHITKUMAR1379
 
[2020 CVPR Efficient DET paper review]
[2020 CVPR Efficient DET paper review][2020 CVPR Efficient DET paper review]
[2020 CVPR Efficient DET paper review]taeseon ryu
 
Object classification using CNN & VGG16 Model (Keras and Tensorflow)
Object classification using CNN & VGG16 Model (Keras and Tensorflow) Object classification using CNN & VGG16 Model (Keras and Tensorflow)
Object classification using CNN & VGG16 Model (Keras and Tensorflow) Lalit Jain
 
Coding For Cores - C# Way
Coding For Cores - C# WayCoding For Cores - C# Way
Coding For Cores - C# WayBishnu Rawal
 
Deep Learning Part 1 : Neural Networks
Deep Learning Part 1 : Neural NetworksDeep Learning Part 1 : Neural Networks
Deep Learning Part 1 : Neural NetworksMadhu Sanjeevi (Mady)
 
PR-155: Exploring Randomly Wired Neural Networks for Image Recognition
PR-155: Exploring Randomly Wired Neural Networks for Image RecognitionPR-155: Exploring Randomly Wired Neural Networks for Image Recognition
PR-155: Exploring Randomly Wired Neural Networks for Image RecognitionJinwon Lee
 
Using Optimal Learning to Tune Deep Learning Pipelines
Using Optimal Learning to Tune Deep Learning PipelinesUsing Optimal Learning to Tune Deep Learning Pipelines
Using Optimal Learning to Tune Deep Learning PipelinesScott Clark
 

What's hot (20)

PR-231: A Simple Framework for Contrastive Learning of Visual Representations
PR-231: A Simple Framework for Contrastive Learning of Visual RepresentationsPR-231: A Simple Framework for Contrastive Learning of Visual Representations
PR-231: A Simple Framework for Contrastive Learning of Visual Representations
 
A Neural Network that Understands Handwriting
A Neural Network that Understands HandwritingA Neural Network that Understands Handwriting
A Neural Network that Understands Handwriting
 
PR-217: EfficientDet: Scalable and Efficient Object Detection
PR-217: EfficientDet: Scalable and Efficient Object DetectionPR-217: EfficientDet: Scalable and Efficient Object Detection
PR-217: EfficientDet: Scalable and Efficient Object Detection
 
[PR-325] Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Tran...
[PR-325] Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Tran...[PR-325] Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Tran...
[PR-325] Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Tran...
 
Embed, Encode, Attend, Predict – applying the 4 step NLP recipe for text clas...
Embed, Encode, Attend, Predict – applying the 4 step NLP recipe for text clas...Embed, Encode, Attend, Predict – applying the 4 step NLP recipe for text clas...
Embed, Encode, Attend, Predict – applying the 4 step NLP recipe for text clas...
 
One shot learning
One shot learningOne shot learning
One shot learning
 
CNN Quantization
CNN QuantizationCNN Quantization
CNN Quantization
 
Meta Dropout: Learning to Perturb Latent Features for Generalization
Meta Dropout: Learning to Perturb Latent Features for Generalization Meta Dropout: Learning to Perturb Latent Features for Generalization
Meta Dropout: Learning to Perturb Latent Features for Generalization
 
Improving neural question generation using answer separation
Improving neural question generation using answer separationImproving neural question generation using answer separation
Improving neural question generation using answer separation
 
Finding the best solution for Image Processing
Finding the best solution for Image ProcessingFinding the best solution for Image Processing
Finding the best solution for Image Processing
 
201907 AutoML and Neural Architecture Search
201907 AutoML and Neural Architecture Search201907 AutoML and Neural Architecture Search
201907 AutoML and Neural Architecture Search
 
Learning to compare: relation network for few shot learning
Learning to compare: relation network for few shot learningLearning to compare: relation network for few shot learning
Learning to compare: relation network for few shot learning
 
Deep learning with keras
Deep learning with kerasDeep learning with keras
Deep learning with keras
 
[2020 CVPR Efficient DET paper review]
[2020 CVPR Efficient DET paper review][2020 CVPR Efficient DET paper review]
[2020 CVPR Efficient DET paper review]
 
Object classification using CNN & VGG16 Model (Keras and Tensorflow)
Object classification using CNN & VGG16 Model (Keras and Tensorflow) Object classification using CNN & VGG16 Model (Keras and Tensorflow)
Object classification using CNN & VGG16 Model (Keras and Tensorflow)
 
Coding For Cores - C# Way
Coding For Cores - C# WayCoding For Cores - C# Way
Coding For Cores - C# Way
 
Deep Learning Part 1 : Neural Networks
Deep Learning Part 1 : Neural NetworksDeep Learning Part 1 : Neural Networks
Deep Learning Part 1 : Neural Networks
 
PR-155: Exploring Randomly Wired Neural Networks for Image Recognition
PR-155: Exploring Randomly Wired Neural Networks for Image RecognitionPR-155: Exploring Randomly Wired Neural Networks for Image Recognition
PR-155: Exploring Randomly Wired Neural Networks for Image Recognition
 
Using Optimal Learning to Tune Deep Learning Pipelines
Using Optimal Learning to Tune Deep Learning PipelinesUsing Optimal Learning to Tune Deep Learning Pipelines
Using Optimal Learning to Tune Deep Learning Pipelines
 
Backpropagation algo
Backpropagation  algoBackpropagation  algo
Backpropagation algo
 

Viewers also liked

[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalization[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalizationDeep Learning JP
 
FinalReport
FinalReportFinalReport
FinalReportKaty Lee
 
[DL輪読会] Hybrid computing using a neural network with dynamic external memory
[DL輪読会] Hybrid computing using a neural network with dynamic external memory[DL輪読会] Hybrid computing using a neural network with dynamic external memory
[DL輪読会] Hybrid computing using a neural network with dynamic external memoryYusuke Iwasawa
 
[DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks
[DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks[DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks
[DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural NetworksDeep Learning JP
 
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...Deep Learning JP
 
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)Yusuke Iwasawa
 
Meta learning with memory augmented neural network
Meta learning with memory augmented neural networkMeta learning with memory augmented neural network
Meta learning with memory augmented neural networkKaty Lee
 
Lam it hon kiem tien nhieu hon - ebook
Lam it hon kiem tien nhieu hon - ebookLam it hon kiem tien nhieu hon - ebook
Lam it hon kiem tien nhieu hon - ebookGetfly CRM
 
MYANMAR (written in Khmer)
MYANMAR (written in Khmer)MYANMAR (written in Khmer)
MYANMAR (written in Khmer)Chea SakTikTa
 
Value iteration networks
Value iteration networksValue iteration networks
Value iteration networksSungjoon Choi
 
Real time machine learning visualization with spark -- Hadoop Summit 2016
Real time machine learning visualization with spark -- Hadoop Summit 2016Real time machine learning visualization with spark -- Hadoop Summit 2016
Real time machine learning visualization with spark -- Hadoop Summit 2016Chester Chen
 
SF Big Analytics: Introduction to Succinct by UC Berkeley AmpLab
SF Big Analytics: Introduction to Succinct by UC Berkeley AmpLabSF Big Analytics: Introduction to Succinct by UC Berkeley AmpLab
SF Big Analytics: Introduction to Succinct by UC Berkeley AmpLabChester Chen
 
Alpine Tech Talk: System ML by Berthold Reinwald
Alpine Tech Talk: System ML by Berthold ReinwaldAlpine Tech Talk: System ML by Berthold Reinwald
Alpine Tech Talk: System ML by Berthold ReinwaldChester Chen
 
Real Time Machine Learning Visualization With Spark
Real Time Machine Learning Visualization With SparkReal Time Machine Learning Visualization With Spark
Real Time Machine Learning Visualization With SparkChester Chen
 
Pruning convolutional neural networks for resource efficient inference
Pruning convolutional neural networks for resource efficient inferencePruning convolutional neural networks for resource efficient inference
Pruning convolutional neural networks for resource efficient inferenceKaushalya Madhawa
 
Dl hacks輪読: "Unifying distillation and privileged information"
Dl hacks輪読: "Unifying distillation and privileged information"Dl hacks輪読: "Unifying distillation and privileged information"
Dl hacks輪読: "Unifying distillation and privileged information"Yusuke Iwasawa
 

Viewers also liked (20)

[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalization[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalization
 
FinalReport
FinalReportFinalReport
FinalReport
 
[DL輪読会] Hybrid computing using a neural network with dynamic external memory
[DL輪読会] Hybrid computing using a neural network with dynamic external memory[DL輪読会] Hybrid computing using a neural network with dynamic external memory
[DL輪読会] Hybrid computing using a neural network with dynamic external memory
 
[DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks
[DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks[DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks
[DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks
 
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
 
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
 
Meta learning with memory augmented neural network
Meta learning with memory augmented neural networkMeta learning with memory augmented neural network
Meta learning with memory augmented neural network
 
Lam it hon kiem tien nhieu hon - ebook
Lam it hon kiem tien nhieu hon - ebookLam it hon kiem tien nhieu hon - ebook
Lam it hon kiem tien nhieu hon - ebook
 
MYANMAR (written in Khmer)
MYANMAR (written in Khmer)MYANMAR (written in Khmer)
MYANMAR (written in Khmer)
 
2016 08 om omgaan met agressie (algemeen)
2016 08 om omgaan met agressie (algemeen)2016 08 om omgaan met agressie (algemeen)
2016 08 om omgaan met agressie (algemeen)
 
Value iteration networks
Value iteration networksValue iteration networks
Value iteration networks
 
Halloween
HalloweenHalloween
Halloween
 
Nafase (algemeen)
Nafase (algemeen)Nafase (algemeen)
Nafase (algemeen)
 
Real time machine learning visualization with spark -- Hadoop Summit 2016
Real time machine learning visualization with spark -- Hadoop Summit 2016Real time machine learning visualization with spark -- Hadoop Summit 2016
Real time machine learning visualization with spark -- Hadoop Summit 2016
 
SF Big Analytics: Introduction to Succinct by UC Berkeley AmpLab
SF Big Analytics: Introduction to Succinct by UC Berkeley AmpLabSF Big Analytics: Introduction to Succinct by UC Berkeley AmpLab
SF Big Analytics: Introduction to Succinct by UC Berkeley AmpLab
 
Alpine Tech Talk: System ML by Berthold Reinwald
Alpine Tech Talk: System ML by Berthold ReinwaldAlpine Tech Talk: System ML by Berthold Reinwald
Alpine Tech Talk: System ML by Berthold Reinwald
 
Real Time Machine Learning Visualization With Spark
Real Time Machine Learning Visualization With SparkReal Time Machine Learning Visualization With Spark
Real Time Machine Learning Visualization With Spark
 
2. research 2
2. research 22. research 2
2. research 2
 
Pruning convolutional neural networks for resource efficient inference
Pruning convolutional neural networks for resource efficient inferencePruning convolutional neural networks for resource efficient inference
Pruning convolutional neural networks for resource efficient inference
 
Dl hacks輪読: "Unifying distillation and privileged information"
Dl hacks輪読: "Unifying distillation and privileged information"Dl hacks輪読: "Unifying distillation and privileged information"
Dl hacks輪読: "Unifying distillation and privileged information"
 

Similar to Neural_Programmer_Interpreter

Ml goes fruitful
Ml goes fruitfulMl goes fruitful
Ml goes fruitfulPreeti Negi
 
ICLR 2020 Recap
ICLR 2020 RecapICLR 2020 Recap
ICLR 2020 RecapSri Ambati
 
KaoNet: Face Recognition and Generation App using Deep Learning
KaoNet: Face Recognition and Generation App using Deep LearningKaoNet: Face Recognition and Generation App using Deep Learning
KaoNet: Face Recognition and Generation App using Deep LearningVan Huy
 
Machine Learning Infrastructure
Machine Learning InfrastructureMachine Learning Infrastructure
Machine Learning InfrastructureSigOpt
 
Deep Learning with Apache Spark: an Introduction
Deep Learning with Apache Spark: an IntroductionDeep Learning with Apache Spark: an Introduction
Deep Learning with Apache Spark: an IntroductionEmanuele Bezzi
 
HiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOSHiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOSTulipp. Eu
 
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...Databricks
 
Understanding Android Benchmarks
Understanding Android BenchmarksUnderstanding Android Benchmarks
Understanding Android BenchmarksKoan-Sin Tan
 
DigitRecognition.pptx
DigitRecognition.pptxDigitRecognition.pptx
DigitRecognition.pptxruvex
 
Creating a custom Machine Learning Model for your applications - Java Dev Day...
Creating a custom Machine Learning Model for your applications - Java Dev Day...Creating a custom Machine Learning Model for your applications - Java Dev Day...
Creating a custom Machine Learning Model for your applications - Java Dev Day...Isabel Palomar
 
Unsupervised Feature Learning
Unsupervised Feature LearningUnsupervised Feature Learning
Unsupervised Feature LearningAmgad Muhammad
 
STAMP, or Test Amplification to DevTestOps service, OW2con'18, June 7-8, 2018...
STAMP, or Test Amplification to DevTestOps service, OW2con'18, June 7-8, 2018...STAMP, or Test Amplification to DevTestOps service, OW2con'18, June 7-8, 2018...
STAMP, or Test Amplification to DevTestOps service, OW2con'18, June 7-8, 2018...OW2
 
PDF-Poster- Varun
PDF-Poster- VarunPDF-Poster- Varun
PDF-Poster- VarunVarun Goyal
 
Distributed Tensorflow with Kubernetes - data2day - Jakob Karalus
Distributed Tensorflow with Kubernetes - data2day - Jakob KaralusDistributed Tensorflow with Kubernetes - data2day - Jakob Karalus
Distributed Tensorflow with Kubernetes - data2day - Jakob KaralusJakob Karalus
 
Harnessing OpenCL in Modern Coprocessors
Harnessing OpenCL in Modern CoprocessorsHarnessing OpenCL in Modern Coprocessors
Harnessing OpenCL in Modern CoprocessorsUnai Lopez-Novoa
 
Concurrency Programming in Java - 01 - Introduction to Concurrency Programming
Concurrency Programming in Java - 01 - Introduction to Concurrency ProgrammingConcurrency Programming in Java - 01 - Introduction to Concurrency Programming
Concurrency Programming in Java - 01 - Introduction to Concurrency ProgrammingSachintha Gunasena
 
Multicore_Architecture Book.pdf
Multicore_Architecture Book.pdfMulticore_Architecture Book.pdf
Multicore_Architecture Book.pdfSwatantraPrakash5
 

Similar to Neural_Programmer_Interpreter (20)

ppt for mini project .pptx
ppt for mini project .pptxppt for mini project .pptx
ppt for mini project .pptx
 
Ml goes fruitful
Ml goes fruitfulMl goes fruitful
Ml goes fruitful
 
ICLR 2020 Recap
ICLR 2020 RecapICLR 2020 Recap
ICLR 2020 Recap
 
KaoNet: Face Recognition and Generation App using Deep Learning
KaoNet: Face Recognition and Generation App using Deep LearningKaoNet: Face Recognition and Generation App using Deep Learning
KaoNet: Face Recognition and Generation App using Deep Learning
 
Machine Learning Infrastructure
Machine Learning InfrastructureMachine Learning Infrastructure
Machine Learning Infrastructure
 
Deep Learning with Apache Spark: an Introduction
Deep Learning with Apache Spark: an IntroductionDeep Learning with Apache Spark: an Introduction
Deep Learning with Apache Spark: an Introduction
 
HiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOSHiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOS
 
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...
 
Understanding Android Benchmarks
Understanding Android BenchmarksUnderstanding Android Benchmarks
Understanding Android Benchmarks
 
DigitRecognition.pptx
DigitRecognition.pptxDigitRecognition.pptx
DigitRecognition.pptx
 
Creating a custom Machine Learning Model for your applications - Java Dev Day...
Creating a custom Machine Learning Model for your applications - Java Dev Day...Creating a custom Machine Learning Model for your applications - Java Dev Day...
Creating a custom Machine Learning Model for your applications - Java Dev Day...
 
Callgraph analysis
Callgraph analysisCallgraph analysis
Callgraph analysis
 
Unsupervised Feature Learning
Unsupervised Feature LearningUnsupervised Feature Learning
Unsupervised Feature Learning
 
STAMP, or Test Amplification to DevTestOps service, OW2con'18, June 7-8, 2018...
STAMP, or Test Amplification to DevTestOps service, OW2con'18, June 7-8, 2018...STAMP, or Test Amplification to DevTestOps service, OW2con'18, June 7-8, 2018...
STAMP, or Test Amplification to DevTestOps service, OW2con'18, June 7-8, 2018...
 
PDF-Poster- Varun
PDF-Poster- VarunPDF-Poster- Varun
PDF-Poster- Varun
 
Distributed Tensorflow with Kubernetes - data2day - Jakob Karalus
Distributed Tensorflow with Kubernetes - data2day - Jakob KaralusDistributed Tensorflow with Kubernetes - data2day - Jakob Karalus
Distributed Tensorflow with Kubernetes - data2day - Jakob Karalus
 
Harnessing OpenCL in Modern Coprocessors
Harnessing OpenCL in Modern CoprocessorsHarnessing OpenCL in Modern Coprocessors
Harnessing OpenCL in Modern Coprocessors
 
Concurrency Programming in Java - 01 - Introduction to Concurrency Programming
Concurrency Programming in Java - 01 - Introduction to Concurrency ProgrammingConcurrency Programming in Java - 01 - Introduction to Concurrency Programming
Concurrency Programming in Java - 01 - Introduction to Concurrency Programming
 
Multicore_Architecture Book.pdf
Multicore_Architecture Book.pdfMulticore_Architecture Book.pdf
Multicore_Architecture Book.pdf
 
Python for ML.pptx
Python for ML.pptxPython for ML.pptx
Python for ML.pptx
 

Neural_Programmer_Interpreter

  • 1. Neural Programmer- Interpreters ICLR 2016 Best Paper Award Scott Reed & Nando de Freitas
 Google DeepMind citation: 19
 London, UK Katy, 2016/10/14
  • 2. Motivation • ML is ultimately about automating tasks, hoping that machine can do everything for human • For example, I want the machine to make a cup of coffee for me
  • 3. Motivation • Ancient way: is to write full highly-detailed program specifications to carry them out • AI way: come up with a lot of training examples that capture the variability in the real world, and then train some general learning machine on this large data set.
  • 4. Motivation • but sometimes the dataset is not big enough! and it doesn’t generalize well.. • NPI is an attempt to use neural methods to train machines to carry out simple tasks based on a small amount of training data.
  • 5. NPI Goals • 1. Long-term prediction: Model potentially long sequences of actions by exploiting compositional structure. • 2. Continual learning: Learn new programs by composing previously- learned programs, rather than from scratch. • 3. Data efficiency: Learn generalizable programs from a small number of example traces. • 4. Interpretability: By looking at NPI’s generated commands, we can understand what it is doing at multiple levels of temporal abstraction.
  • 6. Related Work • Sutskever, Ilya, Oriol Vinyals, and Quoc V. Le. "Sequence to sequence learning with neural networks." Advances in neural information processing systems. 2014. • Graves, Alex, Greg Wayne, and Ivo Danihelka. "Neural turing machines." arXiv preprint arXiv: 1410.5401 (2014).
  • 7. Sequence to sequence learning with neural networks
  • 9. Outline • NPI core module: how it works • Demos • Experiment • Conclusion
  • 10. Outline • NPI core module: how it works • Demos • Experiment • Conclusion
  • 11. NPI core module • The NPI core is a LSTM network that acts as a router between programs conditioned on the current state observation and previous hidden unit states • input: a learnable program embedding, program arguments passed on by the calling program, and a feature representation of the environment. • output: a key indicating what program to call next, arguments for the following program and a flag indicating whether the program should terminate. core: an LSTM-based sequence model
  • 14. Car Rendering • Whatever the starting position, the program should generate a trajectory of actions that delivers the camera to the target view, e.g. frontal pose at a 15◦ elevation.
  • 17. How it Works e: environment a: program argument p: embedded program vector r(t): probability to terminate the current program
  • 20. Outline • NPI core module: how it works • Demos • Experiment • Conclusion
  • 21. Adding Numbers • Environment: • Scratch pad with the two numbers to be added, a carry row and output row. • 4 read/write pointers location • Program: • LEFT, RIGHT programs that can move a carry pointer left or right, respectively. • WRITE program that writes a specified value to the location of a specified pointer
  • 22. Adding Numbers Actual trace of addition program generated by our model on the problem shown to the left.
  • 23. Adding Numbers • all output actions (primitive atomic actions that can be performed on the environment) are performed with a single instruction – ACT. all output actions (primitive atomic actions that can be performed on the environment) are performed with a single instruction – ACT.
  • 25. Bubble Sort • environment: • Scratch pad with the array to be sorted. • Read/Write pointers

  • 28. Car Rendering • Environment: • Rendering of the car (pixels). (use CNN as feature encoder) • The current car pose is NOT provided • Target angle and elevation coordinates. 

  • 30. Car Rendering • Whatever the starting position, the program should generate a trajectory of actions that delivers the camera to the target view, e.g. frontal pose at a 15◦ elevation.
  • 31. GOTO
  • 35. give control back to LGOTO
  • 36. core realized it haven’t done with horizontal rotation
  • 38.
  • 39. Outline • NPI core module: how it works • Demos • Experiment • Conclusion
  • 40. Experiments • Data Efficiency • Generalization • Learning new programs with a fixed NPI core
  • 41. Data Efficiency - Sorting • Seq2Seq LSTM and NPI used the same number of layers
 and hidden units. • Trained on length 20 arrays of single-digit numbers. • NPI benefits from mining multiple subprogram examples per sorting instance accuracy v.s. training example
  • 42. Generalization - Sorting • For each length 2 up to 20, we provided 64 example bubble sort traces, for a total of 1216 examples. • Then, we evaluated whether the network can learn to sort arrays beyond length 20
  • 43. Generalization - Adding only train on sequence length up to 20
  • 44. Learning New Programs with a Fixed NPI Core • example task: find the Max in array • RJMP: move all pointers to the right by repeatedly calling RSHIFT program • MAX: call BUBBLESORT and then RJMP • Expand program memory by adding 2 slots. Randomly initialize, then learn by backpropagation with the NPI core and all other parameters fixed.
  • 45. • 1. Randomly initialize new program vectors in memory • 2. Freeze core and other program vectors • 3. Backpropagate gradients to new program vectors
  • 46. • + Max: performance after addition of MAX program to memory. 
 • “unseen” uses a test set with disjoint car models from the training set. 

  • 47. Outline • NPI core module: how it works • Demos • Experiment • Conclusion
  • 48. Conclusion(1/2) • NPI is a RNN/LSTM-based sequence-to-sequence translator with the ability to keep track of calling programs while recurse into sub-program • NPI generalizes well in comparison to sequence-to- sequence LSTMs. • A trained NPI with a fix core can learn new task while not forgetting about the old task
  • 49. Conclusion(2/2) • provide far fewer examples, but where the labels contains richer information allowing the model to learn compositional structure(It’s like sending kids to school)
  • 50. Further Discussion • Can each task help each other during training? • Can we share environment encoder? • Any comments? project page: http://www-personal.umich.edu/~reedscot/ iclr_project.html