# Application of Neural Networks to Explore Manufacturing Sales Prediction
## 3 Methodology
### Back-Propagation Network Algorithm  
Back-propagation networks were widely used in ANN architectures ([PERSON] et al., 2017), providing supervised learning ([PERSON] et al., 2017). BPN architecture uses input layers to represent network input variables, where the number of processing units depends on problems by using a linear transfer function, a number of hidden layers, and a single output layer. Propagation in a neural network can be forward or backward. Through these two processes, output errors can be reduced, and the network can be set to learn how to solve a given problem. Forward propagation starts from the input layer and produces computations at each layer until it reaches the final layer. Reverse propagation starts from the output layer and computes weights and errors for each previous layer until it reaches the input layer. Back-propagation compares the gaps between the targeted output and the actual computed output values. The synapse values are re-adjusted to minimize errors ([PERSON] et al., 2017). The propagation rule is the basis of the architecture shown in Figure 1.  
Hidden layers represent interactions between input units. There is no specified method to decide upon the appropriate or correct number of processing units or hidden layers, hence most studies used accumulated experience to determine these. Generally, the number of hidden layer processing units increases with increasing problem complexity. However, too many processing units causes memorization of the network and poor inductive power; and too few means the network will be unable to obtain the correct mapping relationship between the input and output. The number of outer layer processing units also depends on problem complexity. If the output is a single real value, the number of output layer processing units = 1, whereas the number of processing units for classification problems depends on the number of classifications. To refrain the processing of a big sample set of data, an ANN tool including a particular training-validation-test procedure for small datasets has been developed some years ago and recently refined in order to obtain realistic and reliable regression laws [39; 40; 41]. The basic BPN is to minimize the error function using the gradient steepest descent. For a given training paradigm, the network slightly adjusts link weighting values proportional to the error function's sensitivity to the weighting values. Thus, error functions are proportional to the magnitude of the partial differential values of weightings [12]. Typically, the error (or energy) function representing learning quality has the form:  
\[\Delta W=-\eta\frac{\partial E}{\partial W}, \tag{4}\]  
where \(\eta\) is the learning rate, which controls the magnitude for every change of weighting value; \(\eta\) is learning rate; and \(E\) is the error, hence larger \(E\) implies poorer network quality:  
\[E-\frac{1}{2}\sum(T_{j}-Y_{j})^{2} \tag{5}\]  
where \(T_{j}\) is the target output value for the \(j\) output unit in the output layer, and \(T_{j}\) is the inference output value of the \(j\) output unit in an output layer. Substituting Equation (5) into Equation (4) and applying the chain rule:  
\[\frac{\partial E}{\partial W_{ij}}=\frac{\partial E}{\partial Y_{j}}\frac{ \partial Y_{j}}{net_{j}}\frac{\partial net_{j}}{\partial W_{ij}}=-(T_{j}-Y_{j })\cdot f^{\prime}(net_{j}), \tag{6}\]  
Figure 1: Propagation network architecture.