Открыть сервис

Аугментация данных

Аугментация данных — это метод искусственного расширения набора данных за счёт создания модифицированных копий существующих образцов или генерации синтетических данных, основанных на исходных. Аугментация применяется в машинном обучении, компьютерном зрении, обработке естественного языка и других областях искусственного интеллекта для повышения обобщающей способности моделей, борьбы с переобучением и увеличения устойчивости к шумам и вариациям входных данных. Основная цель аугментации — создать более разнообразный и репрезентативный обучающий набор, не прибегая к сбору новых реальных данных, что часто дорого, трудоёмко или невозможно.

История и предпосылки

Понятие аугментации данных возникло в контексте развития нейронных сетей и методов глубокого обучения. В 1980-х — 1990-х годах, когда объём доступных размеченных данных был ограничен, исследователи столкнулись с проблемой переобучения: модели запоминали обучающие примеры, но плохо работали на новых данных. Одним из первых и наиболее очевидных решений стало искусственное увеличение выборки путём геометрических преобразований изображений — поворотов, сдвигов, отражений.

Значительный вклад в популяризацию аугментации внесла работа Яна ЛеКуна и его коллег по распознаванию рукописных цифр (база MNIST). В 1990-х годах они показали, что применение аффинных преобразований к изображениям цифр существенно улучшает точность классификации. С развитием свёрточных нейронных сетей (CNN) и появлением крупных наборов данных (ImageNet, COCO) аугментация стала стандартным этапом предобработки. В 2010-х годах были разработаны автоматизированные методы поиска оптимальных стратегий аугментации, такие как AutoAugment (Google, 2018) и RandAugment.

Виды и методы аугментации данных

Методы аугментации различаются в зависимости от типа данных (изображения, текст, аудио, табличные данные) и решаемой задачи (классификация, детекция, сегментация, генерация).

Аугментация изображений

Это наиболее развитая область аугментации. Методы делятся на несколько категорий:

  • Геометрические преобразования: поворот на случайный угол, отражение по горизонтали/вертикали, сдвиг, масштабирование, аффинные и перспективные искажения. Эти преобразования имитируют различные ракурсы съёмки и положения объектов.
  • Цветовые и яркостные коррекции: изменение яркости, контраста, насыщенности, оттенка, гаммы. Позволяют модели быть устойчивой к разным условиям освещения.
  • Фильтры и шумы: добавление гауссова шума, размытие (Gaussian Blur, Motion Blur), применение фильтров (увеличение резкости, сглаживание). Имитируют дефекты камеры или сжатие изображения.
  • Маскирование и вырезание (Cutout, Random Erasing): случайное закрашивание прямоугольной области изображения. Вынуждает модель не полагаться на отдельные признаки, а использовать контекст. Метод CutMix (2019) идёт дальше — он вырезает область из одного изображения и вставляет её в другое, смешивая метки классов.
  • Микширование (MixUp): линейная интерполяция между двумя изображениями и их метками. Этот метод, предложенный в 2017 году, создаёт синтетические примеры, которые являются взвешенной смесью двух исходных.
  • Стилизация и передача текстуры: применение стиля одного изображения к другому (например, превращение фото в рисунок или имитация текстуры ткани). Используется реже, но эффективно для доменной адаптации.

Аугментация текста

В обработке естественного языка (NLP) аугментация сложнее, так как текст дискретен и имеет семантику. Основные методы:

  • Замена синонимами: случайная замена слов на их синонимы из тезауруса (WordNet, специальные словари). Требует осторожности, чтобы не изменить смысл предложения.
  • Вставка и удаление слов: случайное добавление или удаление слов (обычно стоп-слов или незначимых частей речи). Может нарушить грамматику.
  • Перестановка слов: случайная перестановка порядка слов в предложении (например, для английского языка — изменение порядка прилагательных). Применяется с учётом синтаксиса.
  • Back-translation (обратный перевод): перевод текста на промежуточный язык (например, русский → английский → русский). Генерирует перефразированные, но семантически эквивалентные предложения. Считается одним из самых надёжных методов.
  • Маскирование (Masked Language Modeling): замена случайных слов на токен [MASK] и последующее заполнение с помощью языковой модели (например, BERT). Позволяет получить разнообразные варианты.
  • Аугментация на уровне символов: замена букв на похожие (например, «о» на «0»), удаление или вставка лишних символов. Имитирует опечатки и используется для задач исправления ошибок.

Аугментация аудио

Для звуковых сигналов применяются преобразования, имитирующие акустические условия:

  • Добавление шума: наложение белого, розового шума или звуков окружающей среды.
  • Изменение темпа и высоты тона: растяжение/сжатие по времени без изменения высоты (time-stretching) и изменение частоты (pitch shifting).
  • Наложение эха и реверберации: имитация отражений звука в помещении.
  • Спектральные маски (SpecAugment): вырезание случайных полос в спектрограмме (по времени или по частоте). Этот метод, предложенный Google в 2019 году, стал стандартом для задач распознавания речи.

Аугментация табличных данных

Для таблиц (числовые и категориальные признаки) методы менее развиты, но существуют:

  • Добавление шума: добавление небольшого гауссова шума к числовым признакам.
  • SMOTE (Synthetic Minority Over-sampling Technique): генерация синтетических образцов для несбалансированных классов путём интерполяции между соседними примерами меньшинства.
  • Смешивание (MixUp): аналогично изображениям, линейная комбинация строк таблицы.
  • Генерация с помощью GAN (Generative Adversarial Networks): обучение генеративной модели на реальных данных для создания новых правдоподобных записей.

Применение в машинном обучении

Аугментация данных является неотъемлемой частью пайплайна обучения многих моделей. Её основные применения:

  • Борьба с переобучением: при малом объёме данных аугментация создаёт больше примеров, снижая риск запоминания шума.
  • Повышение обобщающей способности: модель учится инвариантности к несущественным изменениям (поворот, освещение, шум), что улучшает её работу на реальных данных.
  • Увеличение устойчивости к атакам: аугментация с шумами и искажениями делает модель более робастной к состязательным примерам.
  • Балансировка классов: для несбалансированных наборов данных (например, редкие заболевания на медицинских снимках) аугментация позволяет увеличить количество примеров редкого класса.
  • Доменная адаптация: аугментация, имитирующая целевой домен (например, перевод дневных снимков в ночные), помогает модели работать в новых условиях.

Автоматизация и поиск стратегий

Ручной подбор набора аугментаций — трудоёмкий процесс. Для его автоматизации разработаны методы:

  • AutoAugment (2018): обучение контроллера (RNN) с помощью обучения с подкреплением для поиска оптимальной политики аугментации (набор преобразований с вероятностями и амплитудами). Требует значительных вычислительных ресурсов.
  • RandAugment (2019): упрощённая версия, где политика задаётся двумя параметрами — количество применяемых операций (N) и их амплитуда (M). Операции выбираются случайно. Показал сопоставимую с AutoAugment эффективность.
  • Fast AutoAugment (2019): использует байесовскую оптимизацию для ускорения поиска.
  • TrivialAugment (2021): ещё более простой метод — применяется одна случайная операция со случайной амплитудой. Показал высокую эффективность, особенно для задач классификации.

Ограничения и критика

Несмотря на широкое применение, аугментация данных имеет ограничения:

  • Нарушение семантики: некоторые преобразования (например, сильное искажение изображения или замена ключевого слова в тексте) могут изменить истинную метку класса. Например, поворот изображения цифры «6» на 180 градусов превращает её в «9». Такие примеры вводят модель в заблуждение.
  • Неравномерная эффективность: для некоторых задач (например, распознавание лиц) аугментация может быть менее полезна, так как геометрические искажения могут уничтожить важные признаки.
  • Вычислительная нагрузка: аугментация в реальном времени (on-the-fly) увеличивает время обучения, особенно при сложных преобразованиях (например, back-translation для текста).
  • Отсутствие гарантии улучшения: неправильно подобранная стратегия аугментации может не улучшить, а ухудшить качество модели, особенно если она не соответствует распределению тестовых данных.

Примеры в индустрии

  • Медицинская визуализация: аугментация (повороты, отражения, эластичные деформации) широко применяется для увеличения размера наборов КТ, МРТ и рентгеновских снимков, где размеченные данные редки.
  • Автономное вождение: симуляция различных погодных условий (дождь, туман, ночь) и ракурсов камер через аугментацию помогает обучать модели распознавания объектов.
  • Распознавание речи: SpecAugment стал стандартом для обучения систем вроде Google Assistant и Amazon Alexa, повышая их устойчивость к шумам и разным голосам.
  • Обработка естественного языка: back-translation используется для улучшения моделей машинного перевода, вопросно-ответных систем и анализа тональности.

Источники

  • Shorten, C., & Khoshgoftaar, T. M. (2019). A survey on image data augmentation for deep learning. Journal of Big Data, 6(1), 1-48.
  • Cubuk, E. D., Zoph, B., Mane, D., Vasudevan, V., & Le, Q. V. (2019). AutoAugment: Learning Augmentation Policies from Data. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).
  • Zhang, H., Cisse, M., Dauphin, Y. N., & Lopez-Paz, D. (2018). mixup: Beyond Empirical Risk Minimization. International Conference on Learning Representations (ICLR).
  • Park, D. S., Chan, W., Zhang, Y., Chiu, C. C., Zoph, B., Cubuk, E. D., & Le, Q. V. (2019). SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition. Interspeech.
  • Wei, J., & Zou, K. (2019). EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing (EMNLP).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →