What is data augmentation and why is it used in machine learning and deep learning? How does data augmentation help improve model performance and reduce overfitting? What are the common techniques used for data augmentation in images, text, and audio data? In which types of real-world applications is data augmentation most useful? What are the advantages and limitations of using data augmentation in model training?