Why do we need a validation set and test set? What is the difference between them?

Technical