# Path Loss Prediction Based on Machine Learning: Principle, Method, and Data Expansion
## 3 Methods for Path Loss Prediction
### Ann  
ANN can be used to solve nonlinear regression problems and has low prediction errors when the sample size is large enough, making it a popular algorithm for path loss prediction [3; 5; 6; 10]. ANNs are networks formed by interconnections between neurons. Based on the neuron model, the feed-forward ANN of multi-layer perceptron structure usually contains an input layer, one or more hidden layers, and an output layer. Neurons are fully connected to those in the next layer by different weights, whereas there is no connection between neurons in the same layer and no cross-layer connection.  
The number of hidden layers and the number of neurons determine the network size and have a great impact on the model complexity and accuracy. Unfortunately, how to find a suitable ANN structure for the path loss prediction is still an open problem. In [3], it is shown that a non-complex ANN, such as a feed-forward ANN with one hidden layer and only a few neurons, would probably provide sufficient path loss prediction accuracy for a typical rural macrocell radio network planning scenario. ANNs with several hidden layers and numerous neurons may lead to inferior generalization properties compared with the non-complex structures. This phenomenon is probably caused by overtraining, that is, the model performs very well on data similar to the training dataset but is not flexible enough to favorably adapt to data different from the training data.  
Back propagation algorithm is a low-complexity method usually used in training ANNs. This type of network is often referred to as BPNN. The subsequent analysis in this paper is based on a 3-layer BPNN structure with fully-connection between layers. Given a set of training samples as \(\left\{\left(\mathbf{x}_{1},y_{1}\right),\left(\mathbf{x}_{2},y_{2}\right), \ldots,\left(\mathbf{x}_{N},y_{N}\right)\right\}\), where \(\mathbf{x}_{i}=\left\{x_{1}^{i},x_{2}^{i},\ldots,x_{L}^{i}\right\}\in\mathbf{ R}^{L}\) is a feature vector and \(y_{i}\in\mathbf{R}^{1}\) is the target output, measured value of path loss. In the forward propagation phase, the predicted value of path loss \(y_{i}{}^{\prime}\) can be expressed as  
\[y_{i}{}^{\prime}=f_{o}\left(\mathbf{\omega}_{om}\left(f_{m}\left(\mathbf{\omega}_{ml} \mathbf{x}_{i}\right)+\mathbf{\theta}_{m}\right)\right)+\mathbf{\theta}_{o} \tag{2}\]  
where \(\mathbf{\omega}_{ml}\) represents the connection weights between the neurons of the hidden layer and inputs, \(\mathbf{\omega}_{om}\) represents the connection weights between the neurons of the output layer and the hidden layer, \(\mathbf{\theta}_{m}\) and \(\mathbf{\theta}_{o}\) are thresholds of the neurons of hidden layer and the neuron of output layer, respectively. \(f_{m}\left(\cdot\right)\) and \(f_{o}\left(\cdot\right)\) are transfer functions for the neurons in hidden layer and the neuron in output layer, respectively.  
The error originating at the output neuron propagates backward. The learning phase of the network proceeds by adaptively adjusting the weights based on the loss function, which is expressed as  
\[E=\frac{1}{N}\sum_{i=1}^{N}\left(y_{i}-y_{i}{}^{\prime}\right)^{2} \tag{3}\]  
where \(E\) is the mean squared error.  
The back propagation algorithm is based on the gradient descent strategy. Standard gradient descent has some drawbacks, such as slow convergence speed and local poles. Thus, other training methods may also be taken into account, such as Levenberg-Marquardt method, Fletcher-Reeves update method, and Powell-Beale restart method. Among them, the Levenberg-Marquardt algorithm is commonly used for path loss prediction because it has a fast convergence speed at the expense of memory consumption [3; 6].