TRAINING DATA
TRAINING DATA JORNAL  
Авторские статьи

Генерация данных

Наверное, вы слышали, что большие данные называют «новой нефтью». Это означает неисчерпаемость ресурса: казалось бы, в чем тогда проблема? Почему бы не пойти к ближайшему источнику данных и не наполнить резервуары для работы в сфере машинного обучения?

Не все так просто. Данные сами по себе, без обработки беспорядочные, «сырые». Для обучения ИИ их нужно очистить, структурировать и перевести в нужный формат. Кроме того, они должны быть доступны: например, не подпадать под запрет работы с персональной информацией.

И часто оказывается, что проще создать синтетические данные. Их генерирует ИИ по заданным параметрам. Главная функция — расширить обучающий датасет и улучшить производительность модели машинного обучения. Решение особенно полезно, когда исходных данных недостаточно или их количество ограничено. Синтетические данные дают больше примеров. Поэтому на них модель обучается лучше и дает более точные результаты.

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

Производительность моделей машинного обучения может увеличиться на 15 % при обучении на подробном, разнообразном датасете.

Примеры применения синтетической генерации данных:
  • генерация изображений. Например, если датасета изображений для обучения модели компьютерного зрения недостаточно, генеративно-состязательные сети (GAN) создадут образцы, максимально похожие на настоящие;
  • генерация текстов. Если нужно обучить модель обработки естественного языка (NLP), вместо ручного сбора и разметки больших объемов можно сгенерировать синтетические тексты, используя модели языка или существующие данные;
  • генерация данных синтетических временных рядов. Например, если вы обучаете модель прогнозировать температуру на основе предыдущих наблюдений, можно создать синтетический временной ряд, который имитирует поведение настоящих данных;
  • генерация аудиозаписей. Для распознавания речи или обнаружения звуков можно использовать синтетические данные, чтобы смоделировать различные звуковые ситуации.
По оценкам американской исследовательской и консалтинговой компании Gartner, Inc., до 85 % алгоритмов ошибочны из-за bias и variance. Bias — сдвиг: модель не смогла выработать нужные закономерности в данных и все время ошибается в одну сторону. Variance — разброс: модель на близких данных дает слишком разные значения. Высококачественные синтетические данные, сгенерированные ИИ, помогут скорректировать работу алгоритма

Чем отличаются синтетические данные от аугментированных и рандомизированных?

Предположим, у нас есть датасет фотографий реальных людей. Процесс аугментирования добавит к нему чуть измененные копии — например, цвет глаз изменился с карих на голубые. Рандомизатор комбинирует элементы. Например, нос человека с первой фотографии «склеивается» с глазами человека № 2 и волосами человека № 3.
В отличие от этого, рендеринг синтетических данных дает новые лица людей. От исходного датасета берутся только характеристики. Т. е. на фотографии будет человек, по всем признакам соответствующий настоящему, но не существующий в реальности.

Где применяется синтетическая генерация данных?

  • Компьютерное зрение. Например, можно сгенерировать большое количество синтетических изображений с объектами различных форм, размеров, цветов и фона для обучения модели, а затем использовать эту модель для распознавания объектов в реальных условиях.
  • Робототехника. С помощью синтетических данных можно создать виртуальную среду, в которой робот будет тренироваться, избегая риска повреждения или столкновения с реальными объектами. Это ускоряет процесс обучения и снижает затраты.
  • Беспилотный транспорт. Например, можно создать симуляцию дороги с различными типами дорожного покрытия, в дневное и ночное время, в дождь, в бурю и т. д. Так модель получит больше данных для понимания ситуации и примет правильное решение в реальности.
  • Медицина. Для создания виртуальных больных или моделей органов с различными патологиями или заболеваниями. Такие модели используются в исследованиях, при разработке методов диагностики и лечения.
  • Сельское хозяйство. Синтетические данные полезны в приложениях компьютерного зрения, которые помогают прогнозировать урожайность, обнаруживать болезни сельскохозяйственных культур, идентифицировать семена/фрукты/цветы и многое другое.
Это только некоторые примеры применения синтетической генерации данных для решения реальных задач.

Какие данные подходят для генерации?

Синтетические данные могут быть частичными и полными. Частичные «склеены» из реальных и синтетических. Например, если мы создаем датасет для обучения беспилотного автомобиля, сгенерированную картинку дорожного знака вставляем в реальную фотографию улицы.
Полные — полностью сгенерированы ИИ. Т. е., если взять пример выше, сгенерированный дорожный знак стоит в симулируемом окружении.
Решение, какой именно тип данных нужен, принимается для конкретной задачи отдельно.
Для генерации подходят различные типы данных. Среди них — текст, изображения, звуки, видео, числовые и табличные данные. На их основе синтезируются новые примеры для обучения модели.

Преимущества синтетических данных

  • Расширение объема обучающих данных. Синтетический рендеринг дает больше вариаций и комбинаций — это особенно полезно, если реальных данных недостаточно или они вообще отсутствуют.
  • Разнообразие данных. Искусственно можно задать любые условия, воспроизвести любую ситуацию, чтобы получить более разнообразную обучающую и тестовую выборку. Например, для задачи выявления мошенничества с кредитными картами можно смоделировать разные методы мошеннической деятельности.
  • Защита конфиденциальности. В некоторых случаях реальные данные нельзя использовать, т. к. в них содержится конфиденциальная или личная информация. Тогда для обучения модели можно создать синтетические данные на основе реальных. В них сохраняются все важные характеристики для правильной работы алгоритма.

Сервисы и инструменты для генерации данных

Один из популярных сервисов — Faker. Это библиотека на языке Python, которая генерирует случайные данные в различных форматах, таких как имена, адреса, номера телефонов и т. д. Ее используют для тренировки моделей машинного обучения, тестирования кода, анонимизации. Подходит для генерации больших объемов данных с разнообразными характеристиками.
PyDBGen создает датасеты, которые тоже подходят для обучения и тренировки ИИ. Генерирует числовые и текстовые данные, временные ряды и многое другое. Создает рандомные данные, например имя, адрес, номер кредитной карты, номерной знак, и позволяет сохранить их в виде таблицы SQLite в файле базы данных или MS Excel.
Для генерации текстовых данных можно использовать чат GPT. Он способен генерировать текст на основе обучающего контекста, обучается на огромных объемах информации из интернета, чтобы научиться понимать и создавать свои материалы. GPT-3 использует трансформерную архитектуру, которая позволяет модели анализировать и запоминать длинные последовательности текста с большой точностью.
Для генерации синтетических изображений применяют:
  • NVIDIA GAN (Generative Adversarial Network). Библиотека, разработанная NVIDIA, предоставляет набор инструментов и моделей GAN для генерации синтетических изображений;
  • CycleGAN. Библиотека с открытым исходным кодом для генерации синтетических изображений с помощью алгоритма генеративно-состязательной сети, который позволяет переводить изображения из одной доменной области в другую;
  • TensorFlow — платформа глубокого обучения, разработанная Google. Она предоставляет набор инструментов и библиотек для создания и обучения моделей генерации изображений, включая GAN.
Выбор инструмента зависит от условий и целей конкретной задачи. После генерации данные проходят ручную проверку экспертом и добавляются в датасет для машинного обучения.
Сбор данных Разметка данных Методики