## 2 Materials and Methods
### Neural Network Architectures  
For building the neural network in this section, the Tensorflow [16] and Keras [17] libraries were used. These libraries are largely used in the deep learning field. Two different architectures were evaluated: a multilayer perceptron (MLP) and a convolutional neural network (CNN), as described below. The maximum number of epochs was set as 20,000 epochs, the Mean Square Error (MSE) was used as the loss function, and the Adam algorithm was used as the optimizer, with a learning rate of 0.001. In addition, an early stopping method with 2000 epochs of patience was used.  
The patience of the early stopping method was chosen through experiments, where the models were first trained for 20,000 epochs without the early stopping and the convergence of the validation curves evaluated. It was noticed that the curve of the error of the validation set started to increase systematically at around 4.5 k epochs for the CNN model and 2.5 k epochs for the MLP model, but decreased again, stagnating only after 12,000 epochs in the MLP and 16,000 in the CNN. Although the curves stagnated very late, we did not expect the training to rise to so many epochs because of overfitting issues. However, choosing a very small patience would not allow the training to converge to its best, as it was noticed in the experiments that the error of the validation set decreased significantly until a couple of thousand epochs. Therefore, based on this analysis, we chose a patience of 2000 epochs.  
Although there are already consolidated methods of neural network hyperparameter optimization, many already implemented in the Keras library, such as random search, Bayesian optimization and Hyperband, this work did not use these methods because of the large amount of input data, which would require a large amount of work and computational power. However, the application of these methods can be considered as future work.  
1. Multilayer Perceptron: As represented by Figure 2, the proposed MLP has only two fully connected (FC) hidden layers with 64 and 16 neurons, respectively. These two hidden layers use the hyperbolic tangent (tanh) function as the activation function, Glorot initialization with a uniform distribution [18] for the parameters, and the output layer does not use any activation function.
2. Convolutional Neural Network: As represented by Figure 3, the proposed CNN has one 1D convolutional layer with 16 kernels of size 3, followed by a Max Pooling Layer with 2 of pool size and stride, and two FC layers with 64 and 16 neurons, respectively, with Glorot initialization with a uniform distribution [18] for the parameters. As with the MLP construction, all layers, except the last, have hyperbolic tangent (tanh) functions as activation functions. The use of one-dimensional and not two-dimensional convolutions was due to the data format, since the data used were from meteorological stations and they were not evenly distributed, geographically speaking. Thus, it would not be possible to directly represent these data in a two-dimensional matrix, as expected by a CNN with two-dimensional convolutions.  
Figure 2: MLP representation.  
The choice of these architectures, especially the number of neurons and kernel size, was made considering that the first layers should be larger than the range of the number of inputs (features) for generalization purposes, but not too large as to potentially increase the computational cost unnecessarily. The focus of this work was to present the first post-processing solution of this type and to explore different combinations of inputs, as presented in the following section. Due to the amount of data, training time and computational cost, no experiments were conducted to choose the best architecture. This is encouraged for future work and practical implementation by the Norwegian Meteorological Institute.