Hi, I have some doubts about the actual process of building a machine learning algorithm. So far, I understand the following:
- Split your dataset into a training set, development (dev) set, and test set.
- Then iterate until your model has good enough performance on the training set (i.e., when your training error approaches the Bayes error).
- Adjust your hyperparameters, architecture, etc., until your model performs well on both the training and dev sets.
- Finally, test how your model performs on unseen data using the test set. However, if your model doesn’t perform well on the test set, go back to the first step and repeat the process until your model performs well on the training, dev, and test sets.
My doubt is that Andrew said not to use the performance of your model on the test set to make changes to your model, but technically, I think that in step 4, you use the test set performance to decide whether you need to make another change to your model. Can someone explain if the way I understand the process is correct?