IP Library Granted Patent US 10,127,497
Granted Patent B2
US 10,127,497 · App. 14/514,162 · Granted Nov 13, 2018

Interface engine for efficient machine learning

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,127,497
App. No.
14/514,162
Granted
Nov 13, 2018
Kind
B2
Abstract

An inference engine is described for efficient machine learning. For example, an inference engine executes a plurality of ordered steps to carry out inference on the basis of observed data. For each step, a plurality of inputs to the step are received. A predictor predicts an output of the step and computes uncertainty of the prediction. Either the predicted output or a known output is selected on the basis of the uncertainty. If the known output is selected, the known output is computed, (for example, using a resource intensive, accurate process). The predictor is retrained using the known output and the plurality of inputs of the step as training data. For example, computing the prediction is fast and efficient as compared with computing the known output.

Claims (42)

1. A system comprising:

one or more processors; and

memory storing computer executable instructions that, when executed by the one or more processors, cause the system to:

for each process step of the plurality of ordered process steps:

receive a plurality of inputs to the process step;

obtain a predicted output and an uncertainty of the predicted output using a predictor, wherein the predictor is trained to learn associations between one or more inputs to the process step and an output of the process step;

determine that the uncertainty of the predicted output is less than a threshold uncertainty;

select the predicted output instead of a known output based at least in part on the uncertainty of the predicted output being less than the threshold uncertainty, wherein the known output is generated using a first process that is more resource-intensive than a second process used to generate the predicted output; and

control a computing system using the predicted output.

2. The system of claim 1 wherein the plurality of inputs to the process step comprise image data from a frame of an image capture device.

3. The system of claim 1 wherein the plurality of inputs to the process step comprise parameters of one or more probability distributions representing a probabilistically defined variable.

4. The system of claim 2 wherein the predicted output comprises a pose of an object depicted in the image data.

5. The system of claim 3 wherein the predicted output comprises a factor to variable node message of a message passing algorithm.

6. The system of claim 1 wherein each step of the plurality of ordered steps comprises a message computation, and each input of the plurality of inputs comprises a message.

7. The system of claim 1 wherein the predictor comprises a first predictor and a second predictor, the first predictor having been trained to learn the associations between the one or more inputs to the process step and the output of the process step, and the second predictor having been trained to predict uncertainty associated with predictions of the first predictor.

8. A method comprising:

executing, by one or more processors, a plurality of ordered steps to carry out inference on the basis of observed data;

for each step of the plurality of ordered steps:

receiving a plurality of inputs to the step;

computing a predicted output and an uncertainty of the predicted output using a predictor;

determining that the uncertainty of the predicted output is less than a threshold uncertainty;

selecting the predicted output instead of a known output based at least in part on the uncertainty of the predicted output being less than the threshold uncertainty, wherein the known output is generated using a first process that is more resource-intensive than a second process used to generate the predicted output;

and-controlling a computing system using the predicted output.

9. The method of claim 8 wherein each step of the plurality of ordered steps comprises a message computation, and each input of the plurality of inputs comprises a message.

10. The method of claim 8 wherein each step of the plurality of ordered steps is a model fitting algorithm for tracking pose of an entity depicted in captured image data.

11. The method of claim 8 wherein the predictor is at least one of a random decision forest, a discriminative fern ensemble, a jungle of directed acyclic graphs, or a support vector machine.

12. The method of claim 8 wherein the predictor is a random decision forest having been trained using an objective function which splits training data at split nodes of trees of the random decision forest in a way that a relationship between inputs to the step and an output is captured by a polynomial regression fitted to training examples reaching each child of a split node.

13. The method of claim 8 wherein computing the predicted output comprises inputting parameters of the plurality of inputs to the step to a random decision forest and aggregating results from a plurality of trees of the random decision forest using a moment average.

14. The method of claim 8 wherein the threshold uncertainty is pre-configured using training data.

15. The method of claim 14 further comprising dynamically adjusting the threshold uncertainty based at least in part on a frequency of selection of the known output.

16. One or more computer storage media storing device-executable instructions that, when executed by a computing system, direct the computing system to perform steps comprising:

executing a plurality of ordered steps to carry out inference on the basis of observed data;

for an individual step of the plurality of ordered steps:

receiving a plurality of inputs to the step;

computing a predicted output and an uncertainty of the predicted output using a predictor;

determining that the uncertainty of the predicted output is less than a threshold uncertainty;

selecting the predicted output instead of a known output based at least in part on the uncertainty of the predicted output being less than the threshold uncertainty, wherein computing the known output is computationally resource-intensive as compared with computing the predicted output;

and controlling a particular computing system using the predicted output.

17. The one or more computer storage media of claim 16 wherein the plurality of inputs to the process step comprise image data from a frame of an image capture device.

18. The one or more computer storage media of claim 16 wherein each step of the plurality of ordered steps comprises a message computation, and each input of the plurality of inputs comprises a message.

19. The one or more computer storage media of claim 16 wherein each step of the plurality of ordered steps is a model fitting algorithm for tracking pose of an entity depicted in captured image data.

20. The one or more computer storage media of claim 16 wherein the particular computing system comprises at least one of an augmented reality system or a game system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034819/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2014
From: ESLAMI, SEYED MOHAMMADALI; KOHLI, PUSHMEET; TARLOW, DANIEL STEFAN; WINN, JOHN
To: MICROSOFT CORPORATION
Reel/Frame 033947/0963 →