Аугментация данных
Аугментация данных — это метод искусственного расширения набора данных за счёт создания модифицированных копий существующих образцов или генерации синтетических данных, основанных на исходных. Аугментация применяется в машинном обучении, компьютерном зрении, обработке естественного языка и других областях искусственного интеллекта для повышения обобщающей способности моделей, борьбы с переобучением и увеличения устойчивости к шумам и вариациям входных данных. Основная цель аугментации — создать более разнообразный и репрезентативный обучающий набор, не прибегая к сбору новых реальных данных, что часто дорого, трудоёмко или невозможно.
История и предпосылки
Понятие аугментации данных возникло в контексте развития нейронных сетей и методов глубокого обучения. В 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 →