neurons from each layer are shown). Training is performed on pairs of $X(t)$ and $\Delta X(t)=X(t+\Delta t)-X(t)$, and the weights in each layer are learned through the backpropagation algorithm. During testing (i.e., prediction) $\Delta X(t)$ is predicted for a given $X(t)$ that is already predicted or is known from initial condition. Knowing $X(t)$, $\Delta X(t)$, and $\Delta X(t-\Delta t)$, $X(t+\Delta t)$ is then computed using Adams-Bashforth integration scheme.[]{data-label="ann_demo"}](ann.png){width="\textwidth"}

### Training and Prediction {#training-and-prediction}

Training is performed on $N$ pairs of sequential $(X(t),\Delta X(t))$ from the training set. During training, the weights of the network are computed using backpropagation optimized by the stochastic gradient descent algorithm. During prediction, as mentioned above, $\Delta X(t)$ is predicted from $X(t)$ that is known from initial condition or has been previously predicted, and $X(t+\Delta t)$ is then calculated using Eq. (\[eq:AB\]).

Our ANN architecture and training/prediction procedure are similar to the ones used in Duben and Bauer [@dueben2018challenges] (we have optimized, by trial and error, the hyperparameters for this particular network). There is no overfitting in the training phase because the final training and testing accuracies are the same. Our code is developed in Keras and is made publicly available (see Code and data availability).

