IP Library Granted Patent US 10,635,974
Granted Patent B2
US 10,635,974 · App. 15/349,966 · Granted Apr 28, 2020

Neural programming

Inventors: Scott Ellison Reed (Ann Arbor, MI); Joao Ferdinando Gomes de Freitas (London, GB)
Assignee: DeepMind Technologies Limited
G06N3/08G06N3/0445
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,635,974
App. No.
15/349,966
Granted
Apr 28, 2020
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for neural programming. One of the methods includes processing a current neural network input using a core recurrent neural network to generate a neural network output; determining, from the neural network output, whether or not to end a currently invoked program and to return to a calling program from the set of programs; determining, from the neural network output, a next program to be called; determining, from the neural network output, contents of arguments to the next program to be called; receiving a representation of a current state of the environment; and generating a next neural network input from an embedding for the next program to be called and the representation of the current state of the environment.

Claims (69)

1. A neural network system for invoking a sequence of programs selected from a set of programs to cause an environment to transition into a different state, the neural network system comprising:

a core recurrent neural network configured to receive a sequence of neural network inputs and to generate a sequence of neural network outputs;

a memory storing, for each program in the set of programs, a key identifying the program and an embedding for the program, wherein:

the embedding for a program is a collection of numeric values that represents the program, and

the embeddings for the program have been determined through training on a set of training data; and

a subsystem configured to, for each neural network output:

determine, from the neural network output, whether or not to end a currently invoked program and to return to a calling program;

determine, from the neural network output, a next program to be called;

determine, from the neural network output, contents of arguments to the next program to be called;

receive a representation of a current state of the environment; and

generate a next neural network input from an embedding for the next program to be called and the representation of the current state of the environment.

2. The neural network system of claim 1 , wherein, in response to determining to end a currently invoked program and to return to a calling program, the subsystem is configured to return a hidden state of the core recurrent neural network to a hidden state of the core recurrent neural network when the calling program was selected and provide an embedding for the calling program as part of the next neural network input.

3. The neural network system of claim 1 , wherein determining the next program to be called comprises:

determining, from the neural network output, a program key; and

selecting a program from the set of programs having a key that is most similar to the program key.

4. The neural network system of claim 1 , wherein generating the next neural network input comprises:

extracting a fixed-length state encoding from the representation of the current state of the environment using a domain-specific encoder; and

combining the fixed-length state encoding and the embedding for the next program to be called to generate the next neural network input.

5. The neural network system of claim 1 , wherein the core recurrent neural network is an LSTM neural network.

6. The neural network system of claim 1 , wherein the subsystem and the core recurrent neural network have been trained using execution traces as training data.

7. One or more non-transitory computer storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to implement a neural network system for invoking a sequence of programs selected from a set of programs to cause an environment to transition into a different state, the neural network system comprising:

a core recurrent neural network configured to receive a sequence of neural network inputs and to generate a sequence of neural network outputs;

a memory storing, for each program in the set of programs, a key identifying the program and an embedding for the program, wherein:

the embedding for a program is a collection of numeric values that represents the program, and

the embeddings for the programs have been determined through training on a set of training data; and

a subsystem configured to, for each neural network output:

determine, from the neural network output, whether or not to end a currently invoked program and to return to a calling program;

determine, from the neural network output, a next program to be called;

determine, from the neural network output, contents of arguments to the next program to be called;

receive a representation of a current state of the environment; and

generate a next neural network input from an embedding for the next program to be called and the representation of the current state of the environment.

8. The computer storage media of claim 7 , wherein, in response to determining to end a currently invoked program and to return to a calling program, the subsystem is configured to return a hidden state of the core recurrent neural network to a hidden state of the core recurrent neural network when the calling program was selected and provide an embedding for the calling program as part of the next neural network input.

9. The computer storage media of claim 7 , wherein determining the next program to be called comprises:

determining, from the neural network output, a program key; and

selecting a program from the set of programs having a key that is most similar to the program key.

10. The computer storage media of claim 7 , wherein generating the next neural network input comprises:

extracting a fixed-length state encoding from the representation of the current state of the environment using a domain-specific encoder; and

combining the fixed-length state encoding and the embedding for the next program to be called to generate the next neural network input.

11. The computer storage media of claim 7 , wherein the core recurrent neural network is an LSTM neural network.

12. The computer storage media of claim 7 , wherein the subsystem and the core recurrent neural network have been trained using execution traces as training data.

13. A method of invoking a sequence of programs selected from a set of programs to cause an environment to transition into a different state, the method comprising:

processing a current neural network input using a core recurrent neural network to generate a neural network output;

determining, from the neural network output, whether or not to end a currently invoked program and to return to a calling program from the set of programs;

determining, from the neural network output, a next program to be called;

determining, from the neural network output, contents of arguments to the next program to be called;

receiving a representation of a current state of the environment; and

generating a next neural network input from an embedding for the next program to be called and the representation of the current state of the environment, wherein:

the embedding for a program is a collection of numeric values that represents the program, and

the embeddings for the programs have been determined through training on a set of training data.

14. The method of claim 13 , further comprising:

in response to determining to end a currently invoked program and to return to a calling program:

returning a hidden state of the core recurrent neural network to a hidden state of the core recurrent neural network when the calling program was selected and providing an embedding for the calling program as part of the next neural network input.

15. The method of claim 13 , wherein determining the next program to be called comprises:

determining, from the neural network output, a program key; and

selecting a program from the set of programs having a key that is most similar to the program key.

16. The method of claim 13 , wherein generating the next neural network input comprises:

extracting a fixed-length state encoding from the representation of the current state of the environment using a domain-specific encoder; and

combining the fixed-length state encoding and the embedding for the next program to be called to generate the next neural network input.

17. The method of claim 13 , wherein the core recurrent neural network is an LSTM neural network.

18. The method of claim 13 , wherein the subsystem and the core recurrent neural network have been trained using execution traces as training data.

19. The neural network system of claim 1 , wherein:

the neural network output comprises a first portion that is a probability with which the currently invoked program should be ended, and

the subsystem determines whether or not to end the currently invoked program based on the probability.

20. The neural network system of claim 1 , wherein, for each neural network input, the core recurrent neural network is configured to perform operations comprising:

processing the neural network input to update a current hidden state of the core neural network; and

applying functions to the updated hidden state to generate the respective neural network output, the applying comprising:

applying a first function to the updated hidden state to generate a probability that the currently invoked program should be ended;

applying a second function to the updated hidden state to generate a key that identifies the next program to be invoked; and

applying a third function to the updated hidden state to generate arguments for the next program.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: DEEPMIND TECHNOLOGIES LIMITED
To: GDM HOLDING LLC
Reel/Frame 071109/0414 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DECLARATION PREVIOUSLY RECORDED AT REEL: 044129 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE DECLARATION . Recorded Jan 13, 2022
From: DEEPMIND TECHNOLOGIES LIMITED
To: DEEPMIND TECHNOLOGIES LIMITED
Reel/Frame 058721/0308 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2017
From: GOOGLE INC.
To: DEEPMIND TECHNOLOGIES LIMITED
Reel/Frame 044242/0116 →
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2016
From: REED, SCOTT ELLISON; GOMES DE FREITAS, JOAO FERDINANDO
To: GOOGLE INC.
Reel/Frame 040293/0072 →
Continuity (2)
Provisional Application 62285950 · Nov 12, 2015
Related Publication 20170140271A1 · May 18, 2017
Cited By (1)
US 12,572,793