Data augmentation is the enlargement of a training set with artificial variants of existing samples, created by transformations that do not change the correct answer. The purpose is to suppress overfitting and to teach the model the invariances desirable for the task at hand; it therefore works as an exceptionally effective form of regularisation and at the same time as a substitute for data we do not have. For images one uses flipping, rotation, cropping and rescaling, adjustments of brightness, contrast and hue, added noise, blurring and elastic deformations; more advanced techniques such as Cutout, Mixup and CutMix mask or linearly combine parts of images, labels included. It is crucial to choose transformations appropriate to the domain: horizontal flipping suits animal photographs but is disastrous for recognising letters and digits, and in segmentation and detection the geometric transformation must be applied identically to both image and annotation. The text equivalent is synonym replacement or back-translation, and for audio, pitch and time shifting. Augmentation is applied only to training data, never to validation and test sets.
You want to teach a child to recognise a dog and you only have ten photographs. You can show them ten times over, or you can show them upside down, close up, overexposed, cropped in half and in dim light – each time stressing that it is still the same dog. In the second case the child learns dogness, not the particular picture. You just have to think about what you allow yourself to change: a mirrored dog is still a dog, but the digit six flipped about its vertical axis is no longer a six, and the letter b upside down is a q. Bad augmentation teaches the model nonsense.