## 2 Materials and Methods
### Artificial Neural Networks  
ANNs are supervised machine learning techniques, which determine associations between a known set of observations (i.e., training points) and different environmental variables to classify new and unknown data (test set). ANNs can approximate non-linear relationships and generalize complex systems from relatively imprecise information, and are robust in handling noise, overfittings, and outliers [35].  
In an ANN system, the nodes are connected by means of synapses, this connection structure determines the behavior of the network. The most used structure is the multilayer perceptron [36], as presented in Figure 1, where \(x_{i}\) represents the inputs, oi the outputs and \(\sigma\) the activation function. The neurons in the input layer depend on the information available to be classified, which is given by the variables: compression speed, \(\rho_{sat}\) and \(n\), while the output layer is given by the uniaxial compression resistance.  
The mathematical expression that describes the output of each neuron is given by the activation function \(\sigma\), where \(\omega_{i}\), are the synaptic weights that weight the \(x_{i}\) inputs, \(\omega_{0}\) is the threshold and \(n\) is the total number of synaptic weights connected to the input of the neuron. Each neuron has its respective threshold level, and the hyperbolic tangent was used as a trigger function on all neurons in the network [37]. The learning method used was backpropagation, which follows the following stages: it starts when a sample of the process is captured by the input layer, then the activation value of each of the neurons is calculated progressively through each neuron or node through all the layers, from the input layer to the output one. Then, in the check stage, the activation value of the output neurons is compared with the expected output data and, if this error differs too much, the error is corrected in a distributed way by updating the weights of the neural network in a return stage, from the output layer to the input one. The whole process is repeated until the network adjusts the synaptic weights and the error value of the outputs is permissible [35].  
The implementation of neural network models was developed by generating a model using the Keras neural network library. Keras models are defined as a sequence of layers, for which  
Figure 1: Structure of an artificial neural network.  
a \"Sequential\" model is created, adding layers one after another, until the requirements are met. Then, due to the limited number of samples, the models to be generated are 1 hidden layer, with variations in the number of neurons, which are completely connected by using the dense class. For the hidden layer, the \"relu\" activation function will be defined, and for the output layer, a \"sigmoid\" function. Each ANN will be trained for a total of 1000 epochs, the number of neurons in the hidden layer will be defined in the next section, while that median absolute deviation (MAD), mean squared error (MSE), coefficient of determination (R\({}^{2}\)) and accuracy (ACC) were used to evaluate the fit of the modeled networks. Accuracy is a performance measure defined how the ratio of correctly predicted observation over the total observations.