IP Library Granted Patent US 11,687,761
Granted Patent B2
US 11,687,761 · App. 16/216,485 · Granted Jun 27, 2023

Improper neural network input detection and handling

Inventors: Randy Renfu Huang (Morgan Hill, CA); Richard John Heaton (San Jose, CA); Andrea Olgiati (Gilroy, CA); Ron Diamant (Albany, CA)
Assignee: Amazon Technologies, Inc.
G06N3/045G06F18/214G06N3/04G06N3/08
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,687,761
App. No.
16/216,485
Granted
Jun 27, 2023
Kind
B2
Abstract

Systems and methods for performing improper input data detection are described. In one example, a system comprises: hardware circuits configured to receive input data and to perform computations of a neural network based on the input data to generate computation outputs; and an improper input detection circuit configured to: determine a relationship between the computation outputs of the hardware circuits and reference outputs; determine that the input data are improper based on the relationship; and perform an action based on determining that the input data are improper.

Claims (58)

1. A method comprising:

performing computations based on input data received from an application to generate intermediate outputs of a neural network layer;

generating outputs of the neural network layer based on applying activation function processing on the intermediate outputs;

receiving a mean and a standard deviation of reference outputs of the neural network layer;

for each of the outputs of the neural network layer:

determining a difference between the each output and the mean;

comparing the difference against one or more thresholds, the one or more thresholds determined based on a pre-determined multiplier of the standard deviations; and

determining, based on a result of the comparison, whether the each output is an outlier output;

determining a total count of the outlier outputs;

determining that the input data are improper based on a comparison between the total count and a second threshold; and

based on determining that the input data are improper, performing at least one of: transmitting a notification to the application, or suspending computations of a subsequent neural network layer at arithmetic circuits.

2. The method of claim 1 , further comprising: receiving configuration data indicating the pre-determined multiplier from the application.

3. The method of claim 1 , wherein the reference outputs of the neural network layer are obtained from processing of a set of training data set by a neural network including the neural network layer.

4. The method of claim 1 , further comprising: determining that the input data are improper based on the totals of the outlier outputs of a plurality of neural network layers.

5. A system comprising:

hardware circuits configured to receive input data and to perform computations of a neural network based on the input data to generate computation outputs, the neural network having been trained using a set of training data, wherein the hardware circuits comprise:

activation function circuits configured to apply activation function processing to generate the computation outputs; and

an improper input detection circuit configured to:

determine a relationship between the computation outputs generated by the activation function circuits and reference outputs, wherein the reference outputs are generated based on processing the set of training data using the neural network;

determine that the input data are improper based on the relationship; and

perform an action based on determining that the input data are improper.

6. The system of claim 5 , wherein the input data deviate from the set of training data used to train the neural network by at least a pre-determined margin.

7. The system of claim 5 , wherein the hardware circuits further comprise:

arithmetic circuits configured to perform arithmetic operations to generate intermediate outputs, and wherein the activation function circuits are configured to apply the activation function processing on the intermediate outputs to generate the computation outputs.

8. The system of claim 5 , wherein the improper input detection module is configured to determine the relationship between the computation outputs and the reference outputs based on comparing the computation outputs against one or more thresholds related to a mean and a standard deviation of the reference outputs.

9. The system of claim 8 , wherein the improper input detection module is configured to:

for each of the computation outputs:

determine a difference between the each of the computation outputs and the mean; and

determine whether the each of the computation outputs is an outlier output based on comparing the difference with a first threshold based on a pre-determined multiples of the standard deviation;

determine a count of the outlier outputs; and

determine that the input data are improper based on comparing the count against a second threshold.

10. The system of claim 9 , wherein the improper input detection module is configured to receive detection configuration information from an application that provides the input data; and

wherein the detection configuration information include definitions of the first threshold and the second threshold.

11. The system of claim 10 , wherein the neural network comprises multiple neural network layers; and

wherein the improper input detection module is configured, based on the detection configuration information, to determine that the input data are improper based on the count of the outlier outputs in the computation outputs for one neural network layer of the multiple neural network layers.

12. The system of claim 11 , wherein the improper input detection module is configured, based on the detection configuration information, to determine that the input data are improper based on a location of the one neural network layer within the neural network.

13. The system of claim 5 , wherein the improper input detection module is configured to:

determine first statistical parameters of the computation outputs;

receive second statistical parameters of the reference outputs; and

determine the relationship between the computation outputs and reference outputs based on comparing the first statistical parameters and the second statistical parameters.

14. The system of claim 13 , wherein the neural network comprises multiple neural network layers; and

wherein the improper input detection module is configured to:

determine a mean and a standard deviation of the computation outputs of each neural network layer of the multiple neural network layers; and

generate a record of the means and the standard deviations of the computation outputs of the each neural network layer.

15. The system of claim 5 , wherein the improper input detection module is configured to perform the action, the action comprising at least one of: transmitting an error notification to an application that uses the computation outputs, or suspending computations of the neural network at the hardware circuits.

16. The system of claim 5 , wherein the hardware circuits are part of a neural network processor; and

wherein the improper input detection module is part of an application that interfaces with the neural network processor.

17. A method, comprising:

receiving, from hardware circuits, computation outputs of a neural network based on input data provided by an application, the neural network having been trained using a set of training data, wherein the hardware circuits comprise activation function circuits that apply activation function processing to generate the computation outputs;

determining a relationship between the computation outputs generated by the activation function circuits and reference outputs, wherein the reference outputs are generated based on processing the set of training data using the neural network;

determining that the input data are improper based on the relationship; and

performing an action based on determining that input data are improper.

18. The method of claim 17 , further comprising:

receiving a mean and a standard deviation of a distribution of the reference outputs; and

wherein determining the relationship between the computation outputs and the reference outputs comprises:

determining a difference between each of the computation outputs and the mean; and

determining that the input data are improper based on comparing the difference against a threshold derived from the standard deviation.

19. The method of claim 18 , wherein the action comprises at least one of: transmitting an error notification to the application, or suspending computations of the neural network at the hardware circuits.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2019
From: HUANG, RANDY RENFU; HEATON, RICHARD JOHN; OLGIATI, ANDREA; DIAMANT, RON
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 051232/0575 →
Continuity (1)
Related Publication 20200184245A1 · Jun 11, 2020