Зачем нужен data augmentation
Что проверяют
Понимаете ли вы, что аугментация это регуляризация и способ научить модель инвариантностям, а не бесплатное увеличение датасета. Следом спрашивают, какие преобразования вы бы не стали применять в конкретной задаче и почему аугментируют только обучающую выборку.
Как отвечать
Каждое преобразование говорит модели: «от этого ответ не зависит». Отражённая кошка остаётся кошкой, запись с шумом остаётся той же фразой. Модель меньше запоминает конкретные примеры и лучше переносится на новые данные, особенно когда их мало.
Примеры по доменам:
- изображения: отражения,
RandomResizedCrop, повороты, цветовые искажения,RandomErasing, смешивающие MixUp и CutMix, автоматические политики RandAugment и TrivialAugment. Инструменты:torchvision.transforms.v2, Albumentations, слои Keras вродеRandomFlip; - текст: обратный перевод, замена синонимов, перефразирование с помощью LLM;
- звук: шум, изменение скорости, SpecAugment с маскированием частот и времени на спектрограмме;
- таблицы: здесь аугментация слабее, иногда шум в признаках, а для дисбаланса классов SMOTE.
Применяют на лету: каждую эпоху модель видит новый вариант той же картинки, и диск не раздувается. В детекции и сегментации рамки и маски преобразуются вместе с изображением, это умеют и Albumentations, и transforms.v2. Отдельная техника TTA: усреднение предсказаний по нескольким аугментированным копиям на инференсе. В самообучении вроде SimCLR аугментации вообще основа метода.
Силу преобразований подбирают как гиперпараметр: слишком агрессивные ведут к недообучению.
Где спотыкаются
Аугментируют до разбиения на train и test. Копии одного объекта попадают в обе части, и метрика завышена.
Применяют преобразования, которые меняют метку: отражают цифры и дорожные знаки, путают лево и право на медицинских снимках, переворачивают текст.
Считают, что аугментация заменит сбор данных и спасёт от сдвига домена. Новых ситуаций она не создаёт, только варьирует имеющиеся.