I am a researcher and new to the study of artificial neural networks. I am training an MLP neural network in Matlab toolbox, with 5 neurons in the input layer and 28 in the output layer, to estimate a region of generator operation. The weights and biases are initialized randomly and the division of the data into training, testing and validation is also done randomly. I configured the network with two hidden layers, the learning rate is 0.4. The network achieves the performance goal, which is the mean square error (MSE), for the test data, 1×10^{-6}. Each time I train the network, the goal is achieved, but with each training the MSE value is different, I can understand this. And consequently, when applying it to new data, the results change according to the training. The problem is how do I get around this? How can I choose the best neural network that was trained if the results vary according to the training? I want to store the configuration of the best neural network for future applications with other data.