ИИ-технологФлагман NP
ИИ-технолог

Что такое аугментация данных в ИИ? Объясняем простыми словами с примерами

От NP_Article

ИИ-технолог

Обучение управлению ИИ с 0 до мастерского уровня

250+ уроков Начато наполнение Без инфоцыган и воды

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

Что разберем Что это даст
Методы аугментации для текстов, картинок и таблиц Сможете увеличить датасет в 5-10 раз без сбора новых данных
Частые ошибки при искажении данных Не сломаете логику обучения и не запутаете нейросеть
Когда аугментация не работает Перестанете тратить время на методы, которые только ухудшат модель

Главный принцип аугментации

Суть метода: изменить данные так, чтобы они выглядели по-новому для алгоритма, но сохранили свой изначальный смысл (класс или метку) для человека.

Если вы учите модель распознавать паспорта РФ, то повернутый на 15 градусов скан – это хорошая аугментация. А скан, обрезанный так, что не видно номера и серии, – это ошибка, которая испортит обучение. Аугментация всегда должна имитировать те условия, с которыми ваша программа столкнется в реальной жизни.

Как аугментировать разные типы данных

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

1. Изображения (компьютерное зрение)

Самый частый сценарий. Применяется, если вы учите нейросеть находить дефекты на деталях завода, распознавать лица в системе пропусков или читать номера машин.

  • Геометрические искажения: повороты, отражения по горизонтали, сдвиги, приближение (кроп). Помогает модели понять, что объект остается собой, даже если находится не в центре кадра.
  • Цветовые фильтры: изменение яркости, контрастности, добавление цифрового шума, перевод в черно-белый формат. Это готовит модель к работе при плохом освещении или с дешевых камер.
  • Удаление частей (Cutout): закрашивание случайных квадратов на фото черным цветом или шумом. Заставляет модель смотреть на объект целиком, а не цепляться за одну конкретную деталь (например, узнавать кота не только по ушам, но и по хвосту).

Полезный инструмент: Библиотека Albumentations для Python – работает быстро и содержит десятки готовых фильтров.

2. Тексты (NLP)

Применяется, если вы делаете чат-бота для техподдержки банка, классификатор отзывов на маркетплейсе вроде Wildberries или анализатор резюме на HH.ru.

  • Синонимизация: замена слов на синонимы без потери смысла. “Карта не работает” меняется на “Пластик не функционирует”.
  • Обратный перевод (Back translation): переводим текст на английский и обратно на русский. “Как восстановить пароль” превращается в “How to recover password”, а затем в “Как вернуть доступ к паролю”. Это дает естественное изменение формулировок.
  • Случайные опечатки: удаление, замена или перестановка соседних букв на клавиатуре. Помогает боту понимать реальных пользователей, которые пишут с телефона на ходу (“здравствуйте” превращается в “здраствуйте”).

Полезный инструмент: Библиотека nlpaug или использование API Yandex GPT / GigaChat для массового переписывания текстов по промпту.

3. Табличные данные

Применяется при предсказании оттока клиентов, расчете выручки магазина за месяц или оценке вероятности дефолта заемщика.

  • Добавление шума (Gaussian noise): незначительное изменение числовых значений в пределах статистической погрешности. Например, возраст 34 года временно меняется на 34.2 для обучения.
  • Генерация через SMOTE: алгоритм, который создает новые строки в таблице, смешивая показатели соседних примеров. Идеально, если у вас 10000 хороших заемщиков и только 50 мошенников. Алгоритм создаст синтетических мошенников, чтобы выровнять баланс.

Частые ошибки: как нельзя искажать данные

Ошибки в аугментации приводят к тому, что модель заучивает мусор. Проверяйте свой процесс по этим трем пунктам.

Изменение смысла (смена метки класса)

Нельзя применять трансформации, которые меняют суть объекта.

  • В чем ошибка: Вы учите модель распознавать рукописные цифры. Если вы отразите цифру “6” по вертикали, она превратится в “9”. Модель запутается, потому что визуально это девятка, а в ответе записана шестерка.
  • В чем ошибка: При анализе медицинских МРТ-снимков применено сильное искажение формы (Elastic Transform). В результате опухоль визуально исчезла или появилась там, где ее нет.
  • Как избежать: Всегда визуально проверяйте 50-100 случайных примеров после аугментации. Если вы сами не можете понять, что на картинке или в тексте – модель тоже не сможет.

Утечка данных (Data Leakage)

Самая частая математическая ошибка, из-за которой модель показывает 100% точности на тестах, но проваливается в реальной работе. Возникает, когда вы применяете аугментацию до разделения датасета на обучающую и тестовую выборки.

  • В чем ошибка: Вы сделали 5 копий одной фотографии с разными фильтрами. Затем разделили все данные. Три копии попали в обучение, а две – в тест. Модель на тесте покажет идеальный результат, потому что она уже видела этот объект, просто в другой яркости.
  • Как избежать: Строгий порядок действий. Сначала разделите оригинальные данные на Train (обучение) и Test (проверка). И только потом применяйте аугментацию исключительно к обучающей выборке. Тестовая выборка должна оставаться девственно чистой.

Аугментация ради количества, а не качества

Не нужно добавлять искажения, которые физически невозможны в вашей задаче.

  • В чем ошибка: Камера на складе жестко закреплена на потолке и смотрит вниз. Разработчик при обучении поворачивает картинки на 180 градусов или переворачивает вверх ногами. Модель тратит ресурсы на заучивание ракурсов, которых никогда не увидит.
  • Как избежать: Копируйте только те помехи, с которыми нейросеть столкнется “в бою”: блики от ламп, тени, пыль на объективе, опечатки в чате, использование сленга.

Ограничения: когда аугментация не спасет

Аугментация – это не магия. Она не заменяет сбор качественных данных и имеет жесткие пределы.

  • Базовых данных критически мало. Если у вас всего 10 фотографий бракованных деталей, создание из них 1000 копий не поможет. Модель просто выучит эти 10 деталей наизусть (переобучится) и не сможет найти брак на 11-й. Нужен минимальный порог разнообразия – обычно от нескольких сотен уникальных примеров.
  • Данные изначально ошибочны. Если в вашей таблице перепутаны метки (мошенник отмечен как надежный клиент, а собака подписана как кот), аугментация только размножит эту ошибку и закрепит ее. Сначала нужна ручная чистка датасета, потом его увеличение.
  • Ложные корреляции. Если в текстах отзывов все негативные комментарии короткие, а позитивные – длинные, никакая синонимизация коротких текстов не решит проблему. Модель будет ориентироваться на длину строки, а не на смысл слов. Здесь поможет только сбор реальных длинных негативных отзывов.

Коротко о главном

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