IP Library Granted Patent US 12688414
Granted Patent B1
US 12688414 · App. 17/850,351 · Granted Jul 21, 2026

Deep neural network training data generation

Inventors: Bharathan Balaji (Seattle, WA); Venkatesh Rao (Bellevue, WA); Krzysztof Marcin Walczak (Sammamish, WA); Sujan Kumar Gonugondla (Bridgewater, NJ)
Assignee: Amazon Technologies, Inc.
G06N3/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 12688414
App. No.
17/850,351
Granted
Jul 21, 2026
Kind
B1
Abstract

Disclosed implementations improve data that is used to train a deep neural network to determine a device type or a device operational state at a location based on voltage data at the location. For example, labeled training data for a location may be up-sampled to increase the amount of labeled training data that is available for use in training the DNN by obtaining labeled data from other known locations that are determined to be similar to the location. Likewise, the up-sampled training data may be subsampled during training to remove potentially noisy data from the training data, thereby improving the accuracy of the trained DNN.

Claims (89)

1 . A computing system, comprising:

one or more processors; and

a memory storing program instructions that, when executed by the one or more processors, cause the one or more processors to, at least:

receive voltage measurement data from a plug-in sensor installed at a location;

determine, in response to receipt of the voltage measurement data, a deep neural network (“DNN”) that is to be trained to detect at least one of a device type or a device state from voltage data measured at the location;

obtain a first location embedding vector for the location, wherein the first location embedding vector is representative of a first voltage measured at the location;

determine, based at least in part on a first comparison between the first location embedding vector and a plurality of known embedding vectors for each of a plurality of known locations, a first sub-plurality of known locations of the plurality of known locations;

obtain a second location embedding vector for the location, wherein the second location embedding vector is representative of a second voltage measured at the location;

determine, based at least in part on a second comparison between the second location embedding vector and the plurality of known embedding vectors, a second sub-plurality of known locations of the plurality of known locations;

identify, from the plurality of known locations, a third plurality of known locations that appear in both the first sub-plurality of known locations and the second sub-plurality of known locations;

include at least a portion of labeled data associated with the third plurality of known locations in a training data for the DNN to generate up-sampled training data for the location;

process, as a part of a first epoch of a training of the DNN, a data sample of the up-sampled training data to produce an output generated by the DNN;

determine, based at least in part on the output and a label associated with the data sample, that the data sample of the up-sampled training data is to be discarded;

discard the data sample from the up-sampled training data;

complete the training of the DNN based at least in part on the up-sampled training data without further processing of the data sample of the up-sampled training data that was discarded to produce a trained DNN;

deploy the trained DNN to process the voltage data measured from the plug-in sensor; and

determine, using the trained DNN and based at least in part on the processed voltage data, at least one of the device type or the device state at the location.

2 . The computing system of claim 1 , wherein the first comparison indicates a disagreement between the output and the label.

3 . The computing system of claim 1 , wherein the program instructions, that when executed by the one or more processors, further include instruction that cause the one or more processors to, at least:

compare the first location embedding vector with the known embedding vectors for each of the plurality of known locations, wherein the first comparison is based at least in part on a distance in a multidimensional space between the first location embedding vector and each of the plurality of known embedding vectors.

4 . The computing system of claim 1 , wherein the labeled data includes a signal representative of at least one of the device type or the device state.

5 . The computing system of claim 1 , wherein:

the program instruction that, when executed by the one or more processors to cause the one or more processors to determine, based at least in part on the first comparison between the first location embedding vector and the plurality of known embedding vectors for each of a plurality of known locations, further include instructions that cause the one or more processors to determine at least a first known location and a second known location; and

at least a portion of labeled data associated with the first known location is included in the up-sampled training data and at least a portion of labeled data associated with the second known location is included in the up-sampled training data.

6 . A method, comprising:

receiving voltage measurement data from a plug-in sensor installed at a location;

determining, in response to receiving the voltage measurement data, a deep neural network (“DNN”) that is to be trained to detect at least one of a device type or a device state from voltage data measured at the location;

comparing a first location embedding vector representative of a first voltage signal at the location with at least some of a plurality of known embedding vectors to determine a first sub-plurality of known locations of a plurality of known locations, each known embedding vector representative of a voltage signal at a known location of the plurality of known locations;

comparing a second location embedding vector representative of a second voltage signal at the location with at least some of the plurality of known embedding vectors to determine a second sub-plurality of known locations of the plurality of known locations;

identifying, from the plurality of known locations, a third plurality of known locations that appear in both the first sub-plurality of known locations and the second sub-plurality of known locations;

generating an up-sampled training data that includes:

first labeled data corresponding to a first known location selected from the third plurality of known locations; and

second labeled data corresponding to a second known location selected from the third plurality of known locations;

training the DNN based at least in part on the up-sampled training data to generate a trained DNN;

deploying the trained DNN to process the voltage data measured from the plug-in sensor; and

determining, using the trained DNN and based at least in part on the processed voltage data, at least one of the device type or the device state at the location.

7 . The method of claim 6 , wherein training the DNN further includes:

processing, as a part of a first epoch of the training, a data sample of the up-sampled training data to produce an output generated by the DNN;

determining, based at least in part on the output and a label associated with the data sample, that the data sample of the up-sampled training data is to be discarded;

discarding the data sample from the up-sampled training data; and

completing the training of the DNN based at least in part on the up-sampled training data without further processing of the data sample of the up-sampled training data that was discarded.

8 . The method of claim 7 , wherein training the DNN further includes:

processing, as a part of the first epoch of the training, a second data sample of the up-sampled training data to produce a second output generated by the DNN;

determining, based at least in part on the second output and a second label associated with the second data sample, that the second data sample of the up-sampled training data is to be retained; and

completing the training of the DNN based at least in part on the up-sampled training data without further processing of the data sample of the up-sampled training data that was discarded and considering the second data sample of the up-sampled training data.

9 . The method of claim 7 , wherein completing the training further includes:

completing a first epoch of a processing of the up-sampled training data; and

completing a second epoch of the processing of the up-sampled training data without considering the data sample, wherein the second epoch is completed subsequent to completing the first epoch.

10 . The method of claim 7 , wherein determining that the data sample of the up-sampled training data is to be discarded further includes:

determining a difference between the output of the DNN and the label associated with the data sample;

determining that the difference exceeds a threshold; and

in response to determining that the difference exceeds the threshold, determining that the data sample of the up-sampled training data is to be discarded.

11 . The method of claim 6 , further comprising:

detecting an addition of the plug-in sensor at the location; and

wherein determining the at least one of the device type or the device state for which the DNN is to be trained is in response to determining the addition of the plug-in sensor.

12 . The method of claim 6 , wherein:

comparing the first location embedding vector with at least some of the plurality of known embedding vectors, further includes determining, for each comparison of the first location embedding vector with a known embedding vector of the at least some of the plurality of known embedding vectors, a similarity score indicative of a similarity between the first location embedding vector and the known embedding vector; and

the first known location is determined to have a highest similarity score.

13 . The method of claim 6 , wherein the first voltage signal corresponds to a first voltage measured at the location during a first period of time and the second voltage signal corresponds to a second voltage measured at the location during a second period of time.

14 . The method of claim 6 , wherein:

the first sub-plurality of known locations are indicative of known locations having highest similarities with the first location embedding vector; and

the second sub-plurality of known locations are indicative of known locations having highest similarities with the second location embedding vector.

15 . A computer-implemented method, comprising:

receiving voltage measurement data from a plug-in-sensor installed at a location;

determining, in response to receiving the voltage measurement data, a deep neural network (“DNN”) that is to be trained to determine at least one of a device type or a device state from voltage data measured at the location;

comparing a first location embedding vector representative of a first voltage signal at the location with at least some of a plurality of known embedding vectors to determine a first sub-plurality of known locations of a plurality of known locations, each known embedding vector representative of a voltage signal at a known location of the plurality of known locations;

comparing a second location embedding vector representative of a second voltage signal at the location with at least some of the plurality of known embedding vectors to determine a second sub-plurality of known locations of the plurality of known locations;

identifying, from the plurality of known locations, a third plurality of known locations that appear in both the first sub-plurality of known locations and the second sub-plurality of known locations;

generating training data that includes labeled data corresponding to known locations selected from the third plurality of known locations;

processing, as a part of a first epoch of a training of the DNN with the training data:

a first data sample of the training data to produce a first output generated by the DNN; and

a second data sample of the training data to produce a second output generated by the DNN;

determining, based at least in part on the first output and a first label associated with the first data sample, that the first data sample is to be discarded;

excluding the first data sample from a subsampled training data;

determining, based at least in part on the second output and a second label associated with the second data sample, that the second data sample is to be retained;

retaining the second data sample as part of the subsampled training data; and

completing the training of the DNN based at least in part on the subsampled training data and without further considering the first data sample to generate a trained DNN;

deploying the trained DNN to process the voltage data measured from the plug-in sensor; and

determining, using the DNN and based at least in part on processed voltage data, at least one of the device type of the device state at the location.

16 . The computer-implemented method of claim 15 , further comprising:

determining a threshold for the first epoch; and

wherein determining that the first data sample is to be discarded further includes:

determining that a difference between the first output and the first label exceeds the threshold.

17 . The computer-implemented method of claim 15 , wherein completing the training of the DNN further includes:

completing a second epoch of training with the subsampled training data without considering the first epoch.

18 . The computer-implemented method of claim 15 , wherein the training data includes data collected from a second location that is determined to have a similarity with the location.

19 . The computer-implemented method of claim 15 , wherein:

determining that the first data sample is to be discarded is based at least in part on a threshold; and

determining that the second data sample is to be retained is based at least in part on the threshold.