I am training an ANN on MATLAB. I am keeping the training set same. Everytime I train the network from scratch, I am receiving different output (or Performance). Is it something expected?
Yes, that is normal. However, the differences should be relatively small.
There are two main sources of randomness in neural network training:
- Initialization of the network weight (usually drawn from some normal or uniform distribution with parameters related to the number of hidden units in preceding/followig layers)
- Ordering of the training samples (they are usually randomly shuffled)
Some frameworks allow you to fix the random number generator seed before starting the training, which should ensure reproducibility of the same results. I don't know if that is the case of MATLAB though.
It's very expected.
You initialise the weights of NN randomly, so after completing (depends on the number of epochs you set) the optimisation, the weights that you end up are different for different initialisation of weights and since you use these weights to predict, the performance would be different.
To get same output every time you may use the same 'seed' everytime, see this for implementation in Matlab