data augmentation
A cat is still a cat whether it is flipped left-to-right, shifted to the corner, photographed in warmer light, or slightly zoomed. Data augmentation teaches a model these invariances for free by generating many transformed copies of each training image, all keeping the same label. It does two things at once: it effectively multiplies the size of your dataset, which fights overfitting, and it explicitly tells the model which changes should not affect the answer, which builds robustness. For vision it is not optional polish — it is often the difference between a model that generalizes and one that memorizes.
The classic geometric and photometric transforms are the staples: random horizontal flips, random crops and resizes, small rotations and scalings, and color jitter (perturbing brightness, contrast, saturation, and hue). Each must respect the task's true symmetries — horizontal flips are fine for natural objects but wrong for text or for a digit like 6 versus 9, and for detection or segmentation the boxes and masks must be transformed in lockstep with the image. Beyond these, learned and randomized policies like AutoAugment and RandAugment search for or randomly compose strong transform sequences, and Cutout/random-erasing masks out random patches to force the model to use the whole object rather than one giveaway part.
A powerful modern family mixes examples rather than transforming one. Mixup trains on convex combinations of two images and their labels (0.7 of a cat plus 0.3 of a dog, with a correspondingly blended target), and CutMix pastes a rectangular patch of one image onto another and mixes the labels by area. These act as strong regularizers, smooth the model's decision boundaries, and improve calibration; together with heavy augmentation they are part of why vision transformers — which lack the built-in translation bias of CNNs and would otherwise overfit — can be trained successfully.
Augmentation also underpins two cornerstones of modern vision. In self-supervised learning, methods like SimCLR and DINO define what counts as 'the same thing' entirely through augmentation: the model is trained to give two differently-augmented views of one image matching representations, so the choice of augmentations literally chooses which invariances the learned features will have. And at deployment, test-time augmentation averages predictions over several transformed versions of an input to squeeze out a little extra accuracy. A caution: augmentations are applied only to the training set, must be label-preserving, and overly aggressive ones can destroy the signal and hurt.
The standard ImageNet training transform: take a random crop covering 8%-100% of the image at a random aspect ratio, resize to 224×224, then flip horizontally with probability 0.5. A single source image thus yields effectively unlimited distinct training views.