Normally we divide our dataset into 3 sets:
- train set,
- validation set,
- test set.
We use train set to find optimal parameters (weights and biases of NN) and validation set to find optimal NN architecture (e.g. # of hidden layers, # of neurons in each hidden layer...).
Here is my question: after we find optimal architecture of the model (using validation set) and optimal number of training epochs (for the optimal model architecture) using early stopping and validation set, which of the following is more appropriate:
- test final model (trained only on train set) on test set,
- join train and validation set (do not waste validation data) and re-train the model (with previously found optimal architecture) on joined set (train + validation)?
Is there any kind of rule of thumb for this, does it depend on application, size of train set or something else?
If second option is more appropriate (train + validation for final model), when do we stop training? Should we use optimal number of epochs from early stopping (because it was optimal for train set, but not for train + validation) or stopping criteria should be something else?
Thanks!