Зачем нужна аугментация данных
Что проверяют
Понимаете ли вы аугментацию как способ регуляризации и передачи модели знаний об инвариантах, а не как «размножение датасета». Следом спрашивают, какие преобразования допустимы в вашей задаче и почему валидационную выборку не аугментируют.
Как отвечать
Аугментация создаёт изменённые копии обучающих примеров, не ломая их смысл. Этим вы сообщаете модели, от чего ответ зависеть не должен: от поворота, освещения, шума, перефразирования. Итог: меньше переобучения и лучше обобщение, особенно на небольших данных.
По модальностям:
- изображения: отражения, случайные кропы, повороты, изменение цвета и яркости, Cutout, смешивающие методы Mixup и CutMix, где смешиваются и метки. Готовые политики RandAugment и TrivialAugment избавляют от ручного подбора. Инструменты:
torchvision.transforms.v2, Kornia для аугментаций на GPU; - детекция и сегментация: геометрия применяется одновременно к картинке, рамкам и маскам,
transforms.v2это умеет; - звук: шум, сдвиг по времени, изменение скорости, маскирование полос частот и времени на спектрограмме (SpecAugment);
- текст: обратный перевод, замена синонимов, перефразирование с помощью LLM. Смысл здесь сломать проще всего, результат выборочно проверяют глазами;
- табличные данные: аугментируют редко, при дисбалансе классов применяют SMOTE, и только на обучающей части.
Аугментацию обычно делают на лету в DataLoader: каждая эпоха видит новые варианты, а диск не раздувается. Отдельно упомяните test-time augmentation: предсказание усредняют по нескольким преобразованным копиям. Это осознанный приём на инференсе, а не аугментация тестовой выборки.
Где спотыкаются
Аугментируют до разбиения на выборки. Копии одного снимка попадают и в обучение, и в тест, метрики завышены, а в проде качество проседает.
Применяют преобразования, меняющие метку: горизонтальное отражение для дорожных знаков со стрелками или для текста, поворот, превращающий 6 в 9, отражение медицинских снимков, где важна сторона.
Выкручивают силу аугментаций до предела. Обучающее распределение уходит от реального, модель недообучается, а смещение в исходных данных аугментация всё равно не лечит.