IP Library Granted Patent US 10,599,975
Granted Patent B2
US 10,599,975 · App. 16/220,525 · Granted Mar 24, 2020

Scalable parameter encoding of artificial neural networks obtained via an evolutionary process

Inventors: Felipe Petroski Such (San Francisco, CA); Jeffrey Michael Clune (San Francisco, CA); Kenneth Owen Stanley (San Francisco, CA); Edoardo Conti (San Francisco, CA); Vashisht Madhavan (San Francisco, CA); Joel Anthony Lehman (San Francisco, CA)
Assignee: Uber Technologies, Inc.
G06N3/04G06N3/008G06N3/08G06N3/082G06N3/084G06N3/086G06N3/126
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,599,975
App. No.
16/220,525
Granted
Mar 24, 2020
Kind
B2
Abstract

A source system initializes, using an initialization seed, a first parameter vector representing weights of a neural network. The source system determines a second parameter vector by performing a sequence of mutations on the first parameter vector, the mutations each being based on a perturbation seed. The source system generates, and stores to memory, an encoded representation of the second parameter vector that comprises the initialization seed and a sequence of perturbation seeds corresponding to the sequence of mutations. The source system transmits the data structure to a target system, which processes a neural network based on the data structure.

Claims (66)

1. A computer-implemented method comprising:

initializing, by a source system, using an initialization seed, a first parameter vector representing weights of a neural network;

determining, by the source system, a second parameter vector by performing a sequence of mutations on the first parameter vector, each mutation based on a perturbation seed, the sequence of mutations being in an order;

generating, by the source system, an encoded representation of the second parameter vector, the encoded representation comprising the initialization seed and a sequence of perturbation seeds, each perturbation seed of the sequence corresponding to a mutation from the sequence of mutations performed to obtain the second parameter vector, the sequence of perturbation seeds being in the order;

storing the encoded representation to a data structure in memory; and

transmitting, by the source system, the data structure to a target system.

2. The computer-implemented method of claim 1 , further comprising:

receiving, by the target system, the data structure; and

processing, by the target system, a neural network based on the data structure by:

extracting, by the target system, the initialization seed from the data structure; and

decoding, by the target system, the first parameter vector using the extracted initialization seed.

3. The computer-implemented method of claim 2 , wherein processing, by the target system, the neural network based on the data structure further comprises:

extracting the sequence of perturbation seeds from the data structure; and

decoding, by the target system, the second parameter vector by performing the sequence of mutations to the decoded first parameter vector using the extracted sequence of perturbation seeds, the sequence of mutations being in the order.

4. The computer-implemented method of claim 1 , wherein generating, by the source system, the encoded representation of the second parameter vector comprises:

assigning a respective unique identifier to each mutation of the sequence of mutations; and

denoting the sequence of perturbation seeds by listing a sequence of the respective unique identifiers in a manner corresponding to the order.

5. The computer-implemented method of claim 4 , wherein assigning the unique identifier to each mutation of the sequence of mutations further comprises mapping each unique identifier to a corresponding perturbation seed in an index.

6. The computer-implemented method of claim 1 , wherein generating, by the source system, the encoded representation of the second parameter vector comprises:

assigning a unique identifier to each generation that fed into, or resulted from, a mutation;

storing each respective perturbation seed as a respective array that indicates a respective unique identifier for a respective parent generation and a respective unique identifier for a respective child generation of a mutation caused by the respective perturbation seed; and

generating the sequence of perturbation seeds using each respective array.

7. The computer-implemented method of claim 6 , wherein processing, by the target system, the neural network based on the data structure comprises decoding, by the target system, the second parameter vector by determining what mutation is necessary to reach each respective unique identifier for a respective child generation from each respective unique identifier for a respective parent generation.

8. A computer-implemented method comprising:

initializing, by a source system, using an initialization seed, a first parameter vector representing weights of a neural network; and

determining, by the source system, a second parameter vector by performing a sequence of mutations on the first parameter vector, each mutation based on a perturbation seed, the sequence of mutations being in an order;

generating, by the source system, an encoded representation of the second parameter vector, the encoded representation comprising the initialization seed and a sequence of perturbation seeds, each perturbation seed of the sequence corresponding to a mutation from the sequence of mutations performed to obtain the second parameter vector, the sequence of perturbation seeds being in the order;

storing, by the source system, the encoded representation to a data structure in memory; and

transmitting, by the source system, to the target system, the data structure; wherein the target system processes a neural network based on the data structure.

9. The computer-implemented method of claim 8 , wherein the target system processes the neural network by:

extracting the initialization seed from the data structure; and

decoding the first parameter vector using the extracted initialization seed.

10. The computer-implemented method of claim 9 , wherein the target system processes the neural network by:

extracting the sequence of perturbation seeds from the data structure; and

decoding the second parameter vector by performing the sequence of mutations to the decoded first parameter vector using the extracted sequence of perturbation seeds, the sequence of mutations being in the order.

11. The computer-implemented method of claim 8 , wherein generating, by the source system, the encoded representation of the second parameter vector comprises:

assigning, by the source system, a respective unique identifier to each mutation of the sequence of mutations; and

denoting, by the source system, the sequence of perturbation seeds by listing a sequence of the respective unique identifiers in a manner corresponding to the order.

12. The computer-implemented method of claim 11 , wherein assigning the unique identifier to each mutation of the sequence of mutations further comprises mapping each unique identifier to a corresponding perturbation seed in an index.

13. The computer-implemented method of claim 8 , wherein generating, by the source system, the encoded representation of the second parameter vector comprises:

assigning, by the source system, a unique identifier to each generation that fed into, or resulted from, a mutation;

storing, by the source system, each respective perturbation seed as a respective array that indicates a respective unique identifier for a respective parent generation and a respective unique identifier for a respective child generation of a mutation caused by the respective perturbation seed; and

generating, by the source system, the sequence of perturbation seeds using each respective array.

14. The computer-implemented method of claim 13 , wherein processing, by the target system, the neural network based on the data structure comprises decoding, by the target system, the second parameter vector by determining what mutation is necessary to reach each respective unique identifier for a respective child generation from each respective unique identifier for a respective parent generation.

15. A non-transitory computer-readable storage medium storing executable computer program code that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

initializing, by a source system, using an initialization seed, a first parameter vector representing weights of a neural network;

determining, by the source system, a second parameter vector by performing a sequence of mutations on the first parameter vector, each mutation based on a perturbation seed, the sequence of mutations being in an order;

generating, by the source system, an encoded representation of the second parameter vector, the encoded representation comprising the initialization seed and a sequence of perturbation seeds, each perturbation seed of the sequence corresponding to a mutation from the sequence of mutations performed to obtain the second parameter vector, the sequence of perturbation seeds being in the order;

storing the encoded representation to a data structure in memory; and

transmitting, by the source system, the data structure to a target system.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the executable program code, when executed by the one or more processors, further causes the one or more processors to perform operations comprising:

receiving, by the target system, the data structure; and

processing, by the target system, a neural network based on the data structure by:

extracting, by the target system, the initialization seed from the data structure; and

decoding, by the target system, the first parameter vector using the extracted initialization seed.

17. The non-transitory computer-readable storage medium of claim 16 , wherein processing, by the target system, the neural network based on the data structure further comprises:

extracting the sequence of perturbation seeds from the data structure; and

decoding, by the target system, the second parameter vector by performing the sequence of mutations to the decoded first parameter vector using the extracted sequence of perturbation seeds, the sequence of mutations being in the order.

18. The non-transitory computer-readable storage medium of claim 15 , wherein generating, by the source system, the encoded representation of the second parameter vector comprises:

assigning a respective unique identifier to each mutation of the sequence of mutations; and

denoting the sequence of perturbation seeds by listing a sequence of the respective unique identifiers in a manner corresponding to the order.

19. The non-transitory computer-readable storage medium of claim 18 , wherein assigning the unique identifier to each mutation of the sequence of mutations further comprises mapping each unique identifier to a corresponding perturbation seed in an index.

20. The non-transitory computer-readable storage medium of claim 15 , wherein generating, by the source system, the encoded representation of the second parameter vector comprises:

assigning a unique identifier to each generation that fed into, or resulted from, a mutation;

storing each respective perturbation seed as a respective array that indicates a respective unique identifier for a respective parent generation and a respective unique identifier for a respective child generation of a mutation caused by the respective perturbation seed; and

generating the sequence of perturbation seeds using each respective array.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Oct 3, 2024
From: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
To: UBER TECHNOLOGIES, INC.
Reel/Frame 069110/0508 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT (TERM LOAN) AT REEL 050767, FRAME 0076 Recorded Sep 11, 2024
From: MORGAN STANLEY SENIOR FUNDING, INC. AS ADMINISTRATIVE AGENT
To: UBER TECHNOLOGIES, INC.
Reel/Frame 069133/0167 →
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2021
From: CORTLAND CAPITAL MARKET SERVICES LLC, AS ADMINISTRATIVE AGENT
To: UBER TECHNOLOGIES, INC.
Reel/Frame 055547/0404 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Oct 24, 2019
From: UBER TECHNOLOGIES, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC
Reel/Frame 050817/0600 →
SECURITY INTEREST Recorded Oct 18, 2019
From: UBER TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 050767/0109 →
SECURITY INTEREST Recorded Oct 18, 2019
From: UBER TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 050767/0076 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2019
From: PETROSKI SUCH, FELIPE; CLUNE, JEFFREY MICHAEL; STANLEY, KENNETH OWEN; CONTI, EDOARDO; MADHAVAN, VASHISHT; LEHMAN, JOEL ANTHONY
To: UBER TECHNOLOGIES, INC.
Reel/Frame 048428/0817 →
Continuity (2)
Provisional Application 62599600 · Dec 15, 2017
Related Publication 20190188553A1 · Jun 20, 2019