What do the terms epoch, batch, and iteration mean in deep learning model training? How does an epoch differ from a batch and an iteration during the training process? Why are batches used instead of training on the entire dataset at once? How do batch size and the number of epochs affect model performance and training time? What are the best practices for selecting epochs and batch sizes in deep learning?