IP Library Granted Patent US 10,445,641
Granted Patent B2
US 10,445,641 · App. 15/016,173 · Granted Oct 15, 2019

Distributed training of reinforcement learning systems

Inventors: Praveen Deepak Srinivasan (London, GB); Rory Fearon (London, GB); Cagdas Alcicek (London, GB); Arun Sarath Nair (London, GB); Samuel Blackwell (London, GB); Vedavyas Panneershelvam (London, GB); Alessandro De Maria (Bromley, GB); Volodymyr Mnih (London, GB); Koray Kavukcuoglu (London, GB); David Silver (Hitchin, GB); Mustafa Suleyman (London, GB)
Assignee: Deepmind Technologies Limited
G06N3/08G06N3/0454G06N3/0472
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,445,641
App. No.
15/016,173
Granted
Oct 15, 2019
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for distributed training of reinforcement learning systems. One of the methods includes receiving, by a learner, current values of the parameters of the Q network from a parameter server, wherein each learner maintains a respective learner Q network replica and a respective target Q network replica; updating, by the learner, the parameters of the learner Q network replica maintained by the learner using the current values; selecting, by the learner, an experience tuple from a respective replay memory; computing, by the learner, a gradient from the experience tuple using the learner Q network replica maintained by the learner and the target Q network replica maintained by the learner; and providing, by the learner, the computed gradient to the parameter server.

Claims (74)

1. A system for training a reinforcement learning system, the reinforcement learning system comprising an agent that interacts with an environment by receiving observations characterizing a current state of the environment and selecting an action to be performed from a predetermined set of actions, wherein the agent selects an action to be performed using a Q network, wherein the Q network is a deep neural network that is configured to receive as input an observation and an action and to generate a neural network output from the input in accordance with a set of parameters, wherein training the reinforcement learning system comprises adjusting the values of the set of parameters of the Q network, and wherein the system comprises:

a plurality of computers configured to implement a plurality of learners, wherein each learner executes on a respective computing unit, wherein each learner is configured to operate independently of each other learner, wherein each learner maintains a respective learner Q network replica and a respective target Q network replica, and wherein each learner is further configured to repeatedly perform operations comprising:

receiving, from a parameter server, current values of the parameters of the Q network;

updating the parameters of the learner Q network replica maintained by the learner using the current values;

selecting an experience tuple from a respective replay memory;

computing a gradient from the experience tuple using the learner Q network replica maintained by the learner and the target Q network replica maintained by the learner; and

providing the computed gradient to the parameter server.

2. The system of claim 1 ,

wherein the one or more computers are further configured to implement one or more actors, wherein each actor executes on a respective computing unit, wherein each actor is configured to operate independently of each other actor, wherein each actor interacts with a respective replica of the environment, wherein each actor maintains a respective actor Q network replica, and wherein each actor is further configured to repeatedly perform operations comprising:

receiving, from the parameter server, current values of the parameters of the Q network;

updating the values of the parameters of the actor Q network replica maintained by the actor using the current values;

receiving an observation characterizing a current state of the environment replica interacted with by the actor:

selecting an action to be performed in response to the observation using the actor Q network replica maintained by the actor;

receiving a reward in response to the action being performed and a next observation characterizing a next state of the environment replica interacted with by the actor;

generating an experience tuple that comprises the current observation, the action selected, the reward, and the next observation; and

storing the experience tuple in a respective replay memory.

3. The system of claim 2 , further comprising:

the parameter server, wherein the parameter server is configured to repeatedly perform operations comprising:

receiving a succession of gradients from the plurality of learners;

computing updates to the values of the parameters of the Q network using the gradients;

updating the values of the parameters of the Q network using the computed updates; and

providing the updated values of the parameters to the one or more actors and the plurality of learners.

4. The system of claim 3 , wherein the parameter server comprises a plurality of parameter server shards, wherein each shard is configured to maintain values of a respective disjoint partition of the parameters of the Q network, and wherein each shard is configured to operate asynchronously with respect to every other shard.

5. The system of claim 3 , wherein the operations that the parameter server is configured to perform further comprise:

determining whether criteria are satisfied for updating the parameters of the target Q network replicas maintained by the learners; and

when the criteria are satisfied, providing data to the learners indicating that the updated parameter values are to be used to update the parameters of the target Q network replicas.

6. The system of claim 5 , wherein the operations that each of the learners is configured to perform further comprise:

receiving data indicating that the updated parameter values are to be used to update the parameters of the target Q network replica maintained by the learner; and

updating the parameters of the target Q network replica maintained by the learner using the updated parameter values.

7. The system of claim 2 , wherein each of the learners is bundled with a respective one of the actors and a respective replay memory, wherein each bundle of an actor, a learner, and a replay memory is implemented on a respective computing unit, wherein each bundle is configured to operate independently from each other bundle, and wherein, for each bundle, the learner in the bundle selects from among experience tuples generated by the actor in the bundle.

8. The system of claim 7 , wherein, for each bundle, the current values of the parameters of the actor Q network replica maintained by the actor in the bundle are synchronized with the current values of the parameters of the learner Q network replica maintained by the learner in the bundle.

9. The system of claim 2 , wherein selecting an action to be performed in response to the observation using the actor Q network replica maintained by the actor comprises:

determining an action from the predetermined set of actions that, when provided as input to the actor Q network replica maintained by the actor with the current observation, generates a largest actor Q network replica output.

10. The system of claim 9 , wherein selecting an action to be performed in response to the observation using the actor Q network replica maintained by the actor further comprises:

selecting a random action from the set of predetermined actions with probability c and selecting the determined action with probability 1−ε.

11. The system of claim 1 , wherein computing a gradient from the experience tuple using the learner Q network replica maintained by the learner and the target Q network replica maintained by the learner comprises:

processing the action from experience tuple and the current observation from the experience tuple using the learner Q network replica maintained by the learner to determine a learner Q network replica output;

determining a largest target Q network replica output that is generated by processing any of the actions in the predetermined set of actions with the next observation from the experience tuple using the target Q network replica maintained by the learner; and

computing the gradient using the learner Q network replica output, the largest target Q network replica output, and the reward from the experience tuple.

12. A method for training a reinforcement learning system, the reinforcement learning system comprising an agent that interacts with an environment by receiving observations characterizing a current state of the environment and selecting an action to be performed from a predetermined set of actions, wherein the agent selects an action to be performed using a Q network, wherein the Q network is a deep neural network that is configured to receive as input an observation and an action and to generate a neural network output from the input in accordance with a set of parameters, wherein training the reinforcement learning system comprises adjusting the values of the set of parameters of the Q network, wherein the method comprises:

receiving, by a learner of a plurality learners, current values of the parameters of the Q network from a parameter server, wherein each learner executes on a respective computing unit, wherein each learner is configured to operate independently of each other learner, and wherein each learner maintains a respective learner Q network replica and a respective target Q network replica;

updating, by the learner, the parameters of the learner Q network replica maintained by the learner using the current values;

selecting, by the learner, an experience tuple from a respective replay memory;

computing, by the learner, a gradient from the experience tuple using the learner Q network replica maintained by the learner and the target Q network replica maintained by the learner; and

providing, by the learner, the computed gradient to the parameter server.

13. The method of claim 12 , further comprising:

receiving, by one of one or more actors and from the parameter server, current values of the parameters of the Q network, wherein each actor is configured to operate independently of each other actor, and wherein each actor interacts with a respective replica of the environment, wherein each actor maintains a respective actor Q network replica;

updating, by the actor, the values of the parameters of the actor Q network replica maintained by the actor using the current values;

receiving, by the actor, an observation characterizing a current state of the environment replica interacted with by the actor:

selecting, by the actor, an action to be performed in response to the observation using the actor Q network replica maintained by the actor;

receiving, by the actor, a reward in response to the action being performed and a next observation characterizing a next state of the environment replica interacted with by the actor;

generating, by the actor, an experience tuple that comprises the current observation, the action selected, the reward, and the next observation; and

storing, by the actor, the experience tuple in a respective replay memory.

14. The method of claim 13 , further comprising:

receiving, by the parameter server, a succession of gradients from the plurality of learners;

computing, by the parameter server, updates to the values of the parameters of the Q network using the gradients;

updating, by the parameter server, the values of the parameters of the Q network using the computed updates; and

providing, by the parameter server, the updated values of the parameters to the one or more actors and the plurality of learners.

15. The method of claim 14 , wherein the parameter server comprises a plurality of parameter server shards, wherein each shard is configured to maintain values of a respective disjoint partition of the parameters of the Q network, and wherein each shard is configured to operate asynchronously with respect to every other shard.

16. The method of claim 14 , further comprising:

determining, by the parameter server, whether criteria are satisfied for updating the parameters of the target Q network replicas maintained by the learners; and

when the criteria are satisfied, providing, by the parameter server, data to the learners indicating that the updated parameter values are to be used to update the parameters of the target Q network replicas.

17. The method of claim 16 , further comprising:

receiving, by the learner, data indicating that the updated parameter values are to be used to update the parameters of the target Q network replica maintained by the learner; and

updating, by the learner, the parameters of the target Q network replica maintained by the learner using the updated parameter values.

18. The method of claim 13 , wherein each of the learners is bundled with a respective one of the actors and a respective replay memory, wherein each bundle of an actor, a learner, and a replay memory is implemented on a respective computing unit, wherein each bundle is configured to operate independently from each other bundle, and wherein, for each bundle, the learner in the bundle selects from among experience tuples generated by the actor in the bundle.

19. The method of claim 18 , wherein, for each bundle, the current values of the parameters of the actor Q network replica maintained by the actor in the bundle are synchronized with the current values of the parameters of the learner Q network replica maintained by the learner in the bundle.

20. One or more non-transitory computer-readable storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to implement a system for training a reinforcement learning system, the reinforcement learning system comprising an agent that interacts with an environment by receiving observations characterizing a current state of the environment and selecting an action to be performed from a predetermined set of actions, wherein the agent selects an action to be performed using a Q network, wherein the Q network is a deep neural network that is configured to receive as input an observation and an action and to generate a neural network output from the input in accordance with a set of parameters, wherein training the reinforcement learning system comprises adjusting the values of the set of parameters of the Q network, and wherein the system comprises:

a plurality of learners, wherein each learner executes on a respective computing unit, wherein each learner is configured to operate independently of each other learner, wherein each learner maintains a respective learner Q network replica and a respective target Q network replica, and wherein each learner is further configured to repeatedly perform operations comprising:

receiving, from a parameter server, current values of the parameters of the Q network;

updating the parameters of the learner Q network replica maintained by the learner using the current values;

selecting an experience tuple from a respective replay memory;

computing a gradient from the experience tuple using the learner Q network replica maintained by the learner and the target Q network replica maintained by the learner; and

providing the computed gradient to the parameter server.

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/0136 →
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 Feb 12, 2016
From: SRINIVASAN, PRAVEEN DEEPAK; FEARON, RORY; ALCICEK, CAGDAS; NAIR, ARUN SARATH; BLACKWELL, SAMUEL; PANNEERSHELVAM, VEDAVYAS; DE MARIA, ALESSANDRO; MNIH, VOLODYMYR; KAVUKCUOGLU, KORAY; SILVER, DAVID; SULEYMAN, MUSTAFA
To: GOOGLE INC.
Reel/Frame 037730/0402 →
Cited By (3)
US 12,299,574 US 12,367,394 US 12,711,389