US 12,260,334 B2
Neural programming
Scott Ellison Reed, Atlanta, GA (US); and Joao Ferdinando Gomes de Freitas, London (GB)
Assigned to DeepMind Technologies Limited, London (GB)
Filed by DeepMind Technologies Limited, London (GB)
Filed on Oct. 30, 2023, as Appl. No. 18/497,924.
Application 18/497,924 is a continuation of application No. 16/859,811, filed on Apr. 27, 2020, granted, now 11,803,746.
Application 16/859,811 is a continuation of application No. 15/349,966, filed on Nov. 11, 2016, granted, now 10,635,974, issued on Apr. 28, 2020.
Claims priority of provisional application 62/285,950, filed on Nov. 12, 2015.
Prior Publication US 2024/0177001 A1, May 30, 2024
This patent is subject to a terminal disclaimer.
Int. Cl. G06N 3/044 (2023.01); G06N 3/08 (2023.01); G06N 20/00 (2019.01)
CPC G06N 3/08 (2013.01) [G06N 3/044 (2023.01); G06N 20/00 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A neural network system for performing a machine learning task by invoking one or more programs selected from a set of programs that, when invoked, cause an environment to transition into a different state, the neural network system comprising:
a core 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 the program is a collection of numeric values that represents the program, wherein the embeddings for the programs in the set of programs have been determined through training on a set of training data, and wherein one or more of the neural network inputs are generated based on an embedding for one of the programs in the set of programs; and
a subsystem configured to, for each neural network output:
determine, from the neural network output, whether or not to call a new program from the set of programs;
in response to determining to call a new 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;
invoke the next program with the contents of the arguments to the next program to cause the environment to transition into a current state;
obtain a representation of the current state of the environment; and
generate a next neural network input from the representation of the current state of the environment.