IP Library Granted Patent US 11,188,823
Granted Patent B2
US 11,188,823 · App. 15/168,750 · Granted Nov 30, 2021

Training a neural network using another neural network

Inventors: Uri Merhav (Rehovot, IL); Dan Shacham (Sunnyvale, CA)
Assignee: Microsoft Technology Licensing, LLC
G06N3/084G06N3/0454
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,188,823
App. No.
15/168,750
Granted
Nov 30, 2021
Kind
B2
Abstract

In an example embodiment, a first DCNN is trained to output a value for a first metric by inputting a plurality of sample documents to the first DCNN, with each of the sample documents having been labeled with a value for the first metric. Then a plurality of possible transformations of a first input document are fed to the first DCNN, obtaining a value for the first metric for each of the plurality of possible transformations. A first transformation is selected from the plurality of possible transformations based on the values for the first metric for each of the plurality of possible transformations. Then a second DCNN is trained to output a transformation for a document by inputting the selected first transformation to the second DCNN. The second input document is fed to the second DCNN, obtaining a second transformation of the second input document.

Claims (81)

1. A computerized method of training and utilizing deep convolutional neural networks (DCNNs), the method comprising:

training a first DCNN to output a value for a first metric by inputting a plurality of sample documents to the first DCNN, each of the sample documents having been labeled with a value for the first metric;

feeding a plurality of possible transformations of a first input document to the first DCNN, the first DCNN producing as output a value for the first metric for each of the plurality of possible transformations;

selecting, by an optimization problem solving component separate from the first DCNN, a first transformation from the plurality of possible transformations based on the values for the first metric for each of the plurality of possible transformations output by the first DCNN;

training a second DCNN to perform a transformation of a document by inputting the selected first transformation and the corresponding value for the first metric to the second DCNN; and

feeding the first input document in its entirety, and exactly as it was fed to the first DCNN, to the second DCNN, obtaining a second transformation of the first input document.

2. The method of claim 1 , wherein the sample documents and the first input document are images.

3. The method of claim 1 , wherein the inputting the plurality of sample documents to the first DCNN includes, for each sample document:

passing the sample document to a convolutional layer of the first DCNN, the convolutional layer comprising one or more filters having dynamically adjustable weights, the one or more filters configured to filter the image to produce an output volume for the corresponding sample document, the output volume comprising a different feature map for each of the one or more filters;

passing the output volume from the convolutional layer through a nonlinearity layer, the nonlinearity layer applying a nonlinearity function to the output volume from the convolutional layer;

passing the output volume from the nonlinearity layer through a pooling layer, the pooling layer lowering spatial dimensions of the output volume from the nonlinearity layer;

passing the output volume from the pooling layer through a classification layer, the classification layer comprising a specialized convolutional layer having a filter designed to output a professionalism score for the sample document based on the output volume from the pooling layer; and

passing the image through a loss layer, the loss layer applying a loss function to the sample document, resulting in an indication of a level of error in the professionalism score for the sample document from the classification layer in comparison to the professionalism score from the label of the sample document;

determining whether a combination of the levels of error for the plurality of sample documents transgresses a preset threshold; and

in response to a determination that the combination of the levels of error transgresses a preset threshold, updating weights of the one or more filters in the convolutional layers of the first DCNN to reduce the combination of the levels of error and repeating the training of the first DCNN using a different plurality of sample documents and the updated weights.

4. The method of claim 3 , wherein the feeding a plurality of possible transformations of the first input document to the first DCNN includes, for each of the plurality of possible transformations:

passing the transformation to the convolutional layer, generating output;

passing the output from the convolutional layer to the nonlinearity layer, generating output;

passing the output from the nonlinearity layer to the pooling layer, generating output; and

passing output from the nonlinearity layer to the classification layer, generating a professionalism score for the transformation.

5. The method of claim 1 , wherein the plurality of possible transformations are different croppings of an image.

6. The method of claim 1 , further comprising:

feeding a second plurality of possible transformations of a first input document to the first DCNN, obtaining a value for the first metric for each of the second plurality of possible transformations, the second plurality of possible transformations being of a different transformation type than the plurality of possible transformations;

selecting a third transformation from the second plurality of possible transformations based on the values for the first metric for each of the second plurality of possible transformations;

training a third DCNN to output another transformation for a second input document by inputting the selected third transformation to the second DCNN; and

feeding the second input document to the third DCNN, obtaining a fourth transformation of the second input document.

7. The method of claim 1 , wherein the second DCNN comprises multiple stages, each stage containing a different convolutional layer, nonlinearity layer, and pooling layer.

8. A system comprising:

a non-transitory computer readable medium having instructions stored there on, which, when executed by a processor, cause the system to:

train a first DCNN to output a value for a first metric by inputting a plurality of sample documents to the first DCNN, each of the sample documents having been labeled with a value for the first metric;

feed a plurality of possible transformations of a first input document to the first DCNN, the first DCNN producing as output a value for the first metric for each of the plurality of possible transformations;

select, by an optimization problem solving component separate from the first DCNN, a first transformation from the plurality of possible transformations based on the values for the first metric for each of the plurality of possible transformations output by the first DCNN;

train a second DCNN to perform a transformation of a document by inputting the selected first transformation and the corresponding value for the first metric to the second DCNN; and

feed the first input document in its entirety, and exactly as it was fed to the first DCNN, to the second DCNN, obtaining a second transformation of the first input document.

9. The system of claim 8 , wherein the sample documents and the first input document are images.

10. The system of claim 8 , wherein the inputting the plurality of sample documents to the first DCNN includes, for each sample document:

passing the sample document to a convolutional layer of the first DCNN, the convolutional layer comprising one or more filters having dynamically adjustable weights, the one or more filters configured to filter the image to produce an output volume for the corresponding sample document, the output volume comprising a different feature map for each of the one or more filters;

passing the output volume from the convolutional layer through a nonlinearity layer, the nonlinearity layer applying a nonlinearity function to the output volume from the convolutional layer;

passing the output volume from the nonlinearity layer through a pooling layer, the pooling layer lowering spatial dimensions of the output volume from the nonlinearity layer;

passing the output volume from the pooling layer through a classification layer, the classification layer comprising a specialized convolutional layer having a filter designed to output a professionalism score for the sample document based on the output volume from the pooling layer; and

passing the image through a loss layer, the loss layer applying a loss function to the sample document, resulting in an indication of a level of error in the professionalism score for the sample document from the classification layer in comparison to the professionalism score from the label of the sample document;

determining whether a combination of the levels of error for the plurality of sample documents transgresses a preset threshold; and

in response to a determination that the combination of the levels of error transgresses a preset threshold, updating weights of the one or more filters in the convolutional layers of the first DCNN to reduce the combination of the levels of error and repeating the training of the first DCNN using a different plurality of sample documents and the updated weights.

11. The system of claim 10 , wherein the feeding a plurality of possible transformations of the first input document to the first DCNN includes, for each of the plurality of possible transformations:

passing the transformation to the convolutional layer, generating output;

passing the output from the convolutional layer to the nonlinearity layer, generating output;

passing the output from the nonlinearity layer to the pooling layer, generating output; and

passing output from the nonlinearity layer to the classification layer, generating a professionalism score for the transformation.

12. The system of claim 8 , wherein the plurality of possible transformations are different croppings of an image.

13. The system of claim 8 , wherein the instructions further cause the system to:

feed a second plurality of possible transformations of a first input document to the first DCNN, obtaining a value for the first metric for each of the second plurality of possible transformations, the second plurality of possible transformations being of a different transformation type than the plurality of possible transformations;

select a third transformation from the second plurality of possible transformations based on the values for the first metric for each of the second plurality of possible transformations;

train a third DCNN to output another transformation for a second input document by inputting the selected third transformation to the second DCNN; and

feed the second input document to the third DCNN, obtaining a fourth transformation of the second input document.

14. The system of claim 8 , wherein the second DCNN comprises multiple stages, each stage containing a different convolutional layer, nonlinearity layer, and pooling layer.

15. A non-transitory machine-readable storage medium comprising instructions, which when implemented by one or more machines, cause the one or more machines to perform operations comprising:

training a first DCNN to output a value for a first metric by inputting a plurality of sample documents to the first DCNN, each of the sample documents having been labeled with a value for the first metric;

feeding a plurality of possible transformations of a first input document to the first DCNN, the first DCNN producing as output a value for the first metric for each of the plurality of possible transformations;

selecting, by an optimization problem solving component separate from the first DCNN, a first transformation from the plurality of possible transformations based on the values for the first metric for each of the plurality of possible transformations output by the first DCNN;

training a second DCNN to perform a transformation of a document by inputting the selected first transformation and the corresponding value for the first metric to the second DCNN; and

feeding the first input document in its entirety, and exactly as it was fed to the first DCNN, to the second DCNN, obtaining a second transformation of the first input document.

16. The non-transitory machine-readable storage medium of claim 15 , wherein the sample documents and the first input document are images.

17. The non-transitory machine-readable storage medium of claim 15 , wherein the inputting the plurality of sample documents to the first DCNN includes, for each sample document:

passing the sample document to a convolutional layer of the first DCNN, the convolutional layer comprising one or more filters having dynamically adjustable weights, the one or more filters configured to filter the image to produce an output volume for the corresponding sample document, the output volume comprising a different feature map for each of the one or more filters;

passing the output volume from the convolutional layer through a nonlinearity layer, the nonlinearity layer applying a nonlinearity function to the output volume from the convolutional layer;

passing the output volume from the nonlinearity layer through a pooling layer, the pooling layer lowering spatial dimensions of the output volume from the nonlinearity layer;

passing the output volume from the pooling layer through a classification layer, the classification layer comprising a specialized convolutional layer having a filter designed to output a professionalism score for the sample document based on the output volume from the pooling layer; and

passing the image through a loss layer, the loss layer applying a loss function to the sample document, resulting in an indication of a level of error in the professionalism score for the sample document from the classification layer in comparison to the professionalism score from the label of the sample document;

determining whether a combination of the levels of error for the plurality of sample documents transgresses a preset threshold; and

in response to a determination that the combination of the levels of error transgresses a preset threshold, updating weights of the one or more filters in the convolutional layers of the first DCNN to reduce the combination of the levels of error and repeating the training of the first DCNN using a different plurality of sample documents and the updated weights.

18. The non-transitory machine-readable storage medium of claim 17 , wherein the feeding a plurality of possible transformations of the first input document to the first DCNN includes, for each of the plurality of possible transformations:

passing the transformation to the convolutional layer, generating output;

passing the output from the convolutional layer to the nonlinearity layer, generating output;

passing the output from the nonlinearity layer to the pooling layer, generating output; and

passing output from the nonlinearity layer to the classification layer, generating a professionalism score for the transformation.

19. The non-transitory machine-readable storage medium of claim 15 , wherein the plurality of possible transformations are different croppings of an image.

20. The non-transitory machine-readable storage medium of claim 15 , wherein the instructions further cause the one or more machines to perform operations comprising:

feeding a second plurality of possible transformations of a first input document to the first DCNN, obtaining a value for the first metric for each of the second plurality of possible transformations, the second plurality of possible transformations being of a different transformation type than the plurality of possible transformations;

selecting a third transformation from the second plurality of possible transformations based on the values for the first metric for each of the second plurality of possible transformations;

training a third DCNN to output another transformation for a second input document by inputting the selected third transformation to the second DCNN; and

feeding the second input document to the third DCNN, obtaining a fourth transformation of the second input document.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2016
From: MERHAV, URI; SHACHAM, DAN
To: LINKEDIN CORPORATION
Reel/Frame 038751/0186 →
Continuity (1)
Related Publication 20170344879A1 · Nov 30, 2017