IP Library Granted Patent US 11,017,317
Granted Patent B2
US 11,017,317 · App. 15/855,299 · Granted May 25, 2021

Evaluating robot learning

Inventors: Nareshkumar Rajkumar (Cupertino, CA); Patrick Leger (Belmont, CA)
Assignee: X Development LLC
G06N20/00B25J9/163B25J9/1653G06F16/285G06N5/027Y10S901/01Y10S901/03
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 11,017,317
App. No.
15/855,299
Granted
May 25, 2021
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media for evaluating robot learning. In some implementations, one or more computers receive object classification examples from a plurality of robots. Each object classification example includes (i) an embedding that a robot generated using a machine learning model, and (ii) an object classification corresponding to the embedding. The object classification examples are evaluated based on a similarity of the received embeddings with respect to other embeddings. A subset of the object classification examples is selected based on the evaluation of the quality of the embeddings. The subset of the object classification examples is distributed to the robots in the plurality of robots.

Claims (54)

1. A method performed by one or more computers, the method comprising:

receiving, by the one or more computers, object classification examples from a plurality of robots, wherein each object classification example includes (i) an embedding that a robot generated using a machine learning model, and (ii) an object classification corresponding to the embedding;

evaluating, by the one or more computers, quality of the object classification examples based on a similarity of the embeddings of the received object classification examples with other embeddings;

selecting, by the one or more computers, a subset of the object classification examples based on the evaluation of the quality of the object classification examples using the embeddings of the object classification examples; and

distributing, by the one or more computers, the subset of the object classification examples to the robots in the plurality of robots.

2. The method of claim 1 , wherein, for each of the object classification examples, the embedding is generated by a robot based on sensor data generated by the robot describing an object detected by sensors of the robot, and the corresponding object classification for the embedding indicates a classification for the detected object;

wherein the embeddings of the respective classification examples include embeddings generated by different robots that each use a particular machine learning model having a particular training state to generate the embeddings; and

wherein distributing the subset of the classification examples comprises distributing the classifications to multiple robots in the plurality of robots that each store a copy of the same particular machine learning model having the particular training state.

3. The method of claim 1 , wherein distributing the subset of the classification examples comprises transmitting, to each of the robots in the plurality of robots, the classification examples in the subset and designating the transmitted classification examples to be stored in a local cache of each of the robots.

4. The method of claim 1 , wherein distributing the subset of the classification examples comprises synchronizing local caches of the robots in the plurality of robots so that each of the plurality of robots stores each of the classification examples in the selected subset in a local cache of the robot.

5. The method of claim 1 , further comprising:

training a second machine learning model using the selected subset of the classification examples; and

distributing the trained machine learning model to the robots in the plurality of robots.

6. The method of claim 5 , wherein training the second machine learning model comprises generating an updated version of the machine learning model used to generate the embeddings; and

wherein distributing the trained machine learning model comprises distributing the updated version of the machine learning model as a replacement to a machine learning model stored at each of the robots in the plurality of robots.

7. The method of claim 6 , further comprising providing, to each robot in the plurality of robots, an instruction to remove the distributed classification examples from a local cache of the robot.

8. The method of claim 5 , further comprising receiving, for each of the object classification examples, sensor data that describes the object corresponding to the object classification example;

wherein training the second machine learning model comprises training the second machine learning model based on the received sensor data received for the object classification examples.

9. The method of claim 1 , further comprising receiving, for each of the object classification examples, sensor data, generated by a robot, that describes the object corresponding to the object classification example;

wherein evaluating the object classification examples comprises evaluating the quality of a classification example based on the received sensor data.

10. The method of claim 1 , wherein evaluating the object classification examples comprises determining, for a particular embedding of a particular object classification example, a level of similarity of the particular embedding with respect to one or more other embeddings having a same object classification as the particular object classification example; and

wherein selecting the subset of the object classification examples comprises selecting the particular object classification example to be included in the subset based on determining that the level of similarity satisfies a threshold.

11. The method of claim 1 , wherein evaluating the object classification examples comprises determining, for a particular embedding of a particular object classification example, a level of similarity of the particular embedding with respect to one or more other embeddings having a different object classification from the particular object classification example; and

wherein selecting the subset of the object classification examples comprises excluding the particular object classification example from subset based on determining that the level of similarity satisfies a threshold.

12. The method of claim 1 , wherein evaluating the object classification examples comprises determining, for a particular embedding of a particular object classification example, a level of similarity of the particular embedding with respect to one or more other embeddings, wherein the level of similarity indicates a distance between the particular embedding and the one or more other embeddings in a vector space.

13. The method of claim 1 , wherein evaluating the object classification examples comprises determining, for a particular embedding of a particular object classification example, a quality score representing a likelihood that the object classification matches the object corresponding to the particular object classification example;

wherein selecting the subset of the object classification examples comprises selecting the particular object classification example to include in the subset based on the quality score satisfying a threshold.

14. The method of claim 1 , evaluating the object classification examples comprises determining, for a particular embedding of a particular object classification example, a quality score based on:

analyzing a level quality of sensor data provided by the plurality of robots;

analyzing how the object classification examples adjust an overall accuracy of the machine learning model; and

analyzing previous levels of quality of other object classification examples provided by the plurality of robots.

15. The method of claim 14 , wherein analyzing the level of quality of the sensor data provided by the plurality of robots further comprises:

determining a match between the sensor data and the embedding by providing the sensor data to the machine learning model;

comparing an output embedding from the machine learning model to the embedding;

comparing an output classification label from the machine learning model to the object classification corresponding to the embedding; and

in response to determining that the output classification label from the machine learning model does not match the object classification corresponding to the embedding, retraining the machine learning model to detect the embedding and produce a correct classification label that matches the object classification.

16. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving, by the one or more computers, object classification examples from a plurality of robots, wherein each object classification example includes (i) an embedding that a robot generated using a machine learning model, and (ii) an object classification corresponding to the embedding;

evaluating, by the one or more computers, quality of the object classification examples based on a similarity of the embeddings of the received object classification examples with other embeddings;

selecting, by the one or more computers, a subset of the object classification examples based on the evaluation of the quality of the object classification examples using the embeddings of the object classification examples; and

distributing, by the one or more computers, the subset of the object classification examples to the robots in the plurality of robots.

17. The system of claim 16 , wherein, for each of the object classification examples, the embedding is generated by a robot based on sensor data generated by the robot describing an object detected by sensors of the robot, and the corresponding object classification for the embedding indicates a classification for the detected object;

wherein the embeddings of the respective classification examples include embeddings generated by different robots that each use a particular machine learning model having a particular training state to generate the embeddings; and

wherein distributing the subset of the classification examples comprises distributing the classifications to multiple robots in the plurality of robots that each store a copy of the same particular machine learning model having the particular training state.

18. One or more non-transitory computer-readable media storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:

receiving, by the one or more computers, object classification examples from a plurality of robots, wherein each object classification example includes (i) an embedding that a robot generated using a machine learning model, and (ii) an object classification corresponding to the embedding;

evaluating, by the one or more computers, quality of the object classification examples based on a similarity of the embeddings of the received object classification examples with other embeddings;

selecting, by the one or more computers, a subset of the object classification examples based on the evaluation of the quality of the object classification examples using the embeddings of the object classification examples; and

distributing, by the one or more computers, the subset of the object classification examples to the robots in the plurality of robots.

19. The one or more non-transitory computer-readable media of claim 18 , wherein, for each of the object classification examples, the embedding is generated by a robot based on sensor data generated by the robot describing an object detected by sensors of the robot, and the corresponding object classification for the embedding indicates a classification for the detected object;

wherein the embeddings of the respective classification examples include embeddings generated by different robots that each use a particular machine learning model having a particular training state to generate the embeddings; and

wherein distributing the subset of the classification examples comprises distributing the classifications to multiple robots in the plurality of robots that each store a copy of the same particular machine learning model having the particular training state.

20. The one or more non-transitory computer-readable media of claim 18 , wherein distributing the subset of the classification examples comprises transmitting, to each of the robots in the plurality of robots, the classification examples in the subset and designating the transmitted classification examples to be stored in a local cache of each of the robots.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: GOOGLE LLC
To: GDM HOLDING LLC
Reel/Frame 071109/0342 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2023
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 064658/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2018
From: RAJKUMAR, NARESHKUMAR; LEGER, PATRICK
To: X DEVELOPMENT LLC
Reel/Frame 044725/0234 →