Techniques for correcting prediction errors in neural networks
One or more arithmetic logic circuits to at least partially cause a neural network to be trained by replacing one or more activations generated by one or more layers of the neural network with ground truth data depending on how accurate the one or more activations are predicted to be. The one or more arithmetic logic circuits may be implemented as part of a processor or computer system.
1 . A processor, comprising:
one or more circuits to train one or more neural networks, wherein to train the one or more neural networks the one or more circuits are to:
input training data to the one or more neural networks to cause first activation values to be output from one or more intermediate neural network portions within the one or more neural networks as intermediate predictions based on one or more features of the training data input to the one or more neural networks;
select, based, at least in part, on prediction error magnitudes for the first activation values, one or more of the first activation values to be replaced;
replace the selected one or more first activation values with one or more second activation values, having a greater accuracy than the selected one or more first activation values; and
adjust parameters for the one or more neural networks based, at least in part, on a final prediction based, at least in part, on the one or more second activation values, wherein one or more prediction errors of the intermediate predictions are prevented from propagating to the final prediction by the replacement of the one or more first activation values with the one or more second activation values.
2 . The processor of claim 1 , wherein the one or more neural networks are to be trained to predict market demand for one or more products or services.
3 . The processor of claim 1 , wherein the one or more circuits are to at least partially cause the one or more first activation values to be replaced with ground truth data at a probability that is positively correlated to a prediction error determined based on the one or more first activation values and the ground truth data.
4 . The processor of claim 1 , wherein an accuracy of the one or more first activation values is based on data of past market demand for one or more products or services.
5 . The processor of claim 1 , wherein the processor comprises a graphical processing unit (GPU).
6 . The processor of claim 1 , wherein the one or more neural networks generate a prediction model that generates, from an input time series, a predicted output time series.
7 . The processor of claim 6 , wherein the input time series is a variable-length input and the predicted output time series is a variable-length output.
8 . The processor of claim 1 , wherein the one or more neural networks comprise one or more recurrent neural networks.
9 . The processor of claim 1 , wherein to replace the one or more first activation values, the one or more circuits are to probabilistically replace the one or more first activation values with ground truth data.
10 . The processor of claim 9 , wherein to probabilistically replace the one or more first activation values with the ground truth data, the one or more circuits are to cause the replace according to a probability that is based at least in part on a magnitude of a prediction error associated with the one or more first activation values.
11 . The processor of claim 9 , wherein to probabilistically replace the one or more first activation values with the ground truth data, the one or more circuits are to cause the replace according to a probability that is based at least in part on how many epochs of training have elapsed.
12 . A method, comprising
training one or more neural networks, wherein the training includes;
inputting training data to the one or more neural networks to obtain one or more first activation values as one or more intermediate predictions generated by one or more layers of the one or more neural networks based on one or more features of the training data;
selecting, based, at least in part, on prediction error magnitudes for the first activation values, one or more of the first activation values to be replaced;
replacing the selected one or more first activation values with one or more second activation values, having a greater accuracy than the one or more first activation values; and
adjusting parameters for the one or more neural networks based, at least in part, on a final prediction based, at least in part, on the one or more second activation values, wherein one or more prediction errors of the intermediate predictions are prevented from propagating to the final prediction by the replacement of the one or more first activation values with the one or more second activation values.
13 . The method of claim 12 , wherein the one or more neural networks are to be trained to predict market demand for one or more products or services.
14 . The method of claim 12 , wherein:
the one or more neural networks comprises an encoder neural network and a decoder neural network; and
training the one or more neural network comprises replacing the one or more first activation values of the decoder.
15 . The method of claim 12 , wherein training the one or more neural network comprises:
obtaining training data for a first neural network of the one or more neural networks to generate an encoded state; and
providing the encoded state to a second neural network of the one or more neural networks to generate the one or more first activation values.
16 . The method of claim 15 , wherein the encoded state has a fixed length.
17 . The method of claim 12 , wherein the one or more neural networks are trained with data of a first time-series to generate predicated data for a second time-series.
18 . The method of claim 17 , wherein the first time-series and the second time-series are contiguous.
19 . A system, comprising:
one or more processors to train one or more neural networks, wherein to train the one or more neural networks the one or more processors are to:
input training data to the one or more neural networks to cause first activation values to be output from one or more intermediate neural network portions within the one or more neural networks as intermediate predictions based on one or more features of the training data input to the one or more neural networks;
select, based, at least in part, on prediction error magnitudes for the first activation values, one or more of the first activation values to be replaced;
replace the selected one or more first activation values with one or more second activation values, having a greater accuracy than the selected one or more first activation values; and
adjust parameters for the one or more neural networks based, at least in part, on a final prediction based, at least in part, on the one or more second activation values, wherein one or more prediction errors of the intermediate predictions are prevented from propagating to the final prediction by the replacement of the one or more first activation values with the one or more second activation values.
20 . The system of claim 19 , wherein the one or more neural networks are to be trained to predict market demand for one or more products or services.
21 . The system of claim 20 , wherein the one or more first activation values are to be replaced with ground truth data based, at least in part, on historical price information for the one or more products or services.
22 . The system of claim 20 , wherein the one or more neural networks are to be trained to predict market demand of the one or more products or services in a particular set of countries.
23 . The system of claim 19 , wherein the one or more processors are to be further configured to determine a probability to replace the one or more first activation values with ground truth data by calculating a magnitude of error based on the ground truth data and the one or more first activation values.
24 . The system of claim 23 , wherein the probability to replace the one or more first activation values is further based on how many epochs have elapsed during training of the one or more neural networks.
25 . The system of claim 19 , wherein the one or more neural networks comprises one or more long short-term memory (LSTM) units.
26 . The system of claim 19 , wherein the one or more processors comprise a computer processing unit (CPU).
27 . A system, comprising memory to store instructions that, as a result of execution by one or more processors, causes the system to:
configure one or more a circuits with one or more parameters corresponding to one or more neural networks trained by:
inputting training data to the one or more neural networks to obtain one or more first activation values as one or more intermediate predictions generated by one or more layers of the one or more neural networks based on one or more features of the training data;
selecting, based, at least in part, on prediction error magnitudes for the first activation values, one or more of the first activation values to be replaced;
replacing the selected one or more first activation values with one or more second activation values, having a greater accuracy than the one or more first activation values; and
adjusting parameters for the one or more neural networks based, at least in part, on a final prediction based, at least in part, on the one or more second activation values, wherein one or more prediction errors of the intermediate predictions are prevented from propagating to the final prediction by the replacement of the one or more first activation values with the one or more second activation values.
28 . The processor of claim 27 , wherein the one or more neural networks are to be trained to predict market demand for one or more products or services.
29 . The system of claim 27 , wherein the one or more neural networks comprises one or more gated recurrent units (GRUs).
30 . The system of claim 27 , wherein the system comprises an application-specific integrated circuit (ASIC).
31 . The system of claim 27 , wherein the instructions to replace the one or more first activation values using the one or more second activation values based, at least in part, on ground truth data include instructions that, as a result of execution, cause the system to use the ground truth data to generate a linear interpolation value based at least in part the ground truth data and the one or more first activation values.
32 . The system of claim 31 , wherein the linear interpolation value is generated further based at least in part on an output sequence length being generated by the one or more layers.
33 . The system of claim 31 , wherein the linear interpolation value is a different value from the ground truth data.