What is overfitting in deep learning and why does it occur during neural network training? How does overfitting affect the performance of models on unseen data? What are the common signs of overfitting in deep learning models? What techniques can be used to reduce or prevent overfitting during training? How do methods like dropout, regularization, and data augmentation improve model generalization?