Поиск по сайту Поиск

7 советов для работы с небольшими данными

В современном мире считается, что Big Data — ключ к созданию успешных проектов машинного обучения. Но проблема в том, что данных часто бывает недостаточно. И построить на них хорошую нейросеть — всё равно что пытаться проехать 1000 километров на внедорожнике с одним литром бензина. В этой статье мы поделимся советами по улучшению моделей машинного обучения при работе с небольшими наборами данных.

1. Осознайте, что ваша модель обобщается не очень хорошо

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

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

Убедитесь, что это понимает ваш заказчик. Так вы вместе сможете ориентироваться на реалистичные ожидания, которые должна предоставить модель, и предложить полезные KPI для количественной оценки её эффективности.

2. Создайте хорошую инфраструктуру данных.

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

Инфраструктура сервера REG.RU с GPU NVIDIA Tesla V100

Разметка новых данных — несложная операция. Для неё можно использовать Prodigy, который является доступным и расширяемым инструментом. В зависимости от размера проекта вы также можете настроить автоматическую загрузку и маркировку данных.

3. Дополните данные.

Датасет часто можно дополнить, немного изменив уже имеющиеся данные. Это делается с помощью различных операций по обрезке, повороту, отражению и так далее. При этом вывод модели существенно не изменится: например, если повернуть фотографию кота на 40 градусов, на ней по-прежнему будет кот.

В большинстве случаев такое дополнение позволяет создавать полууниверсальные образцы. Для начала можно просто добавить к данным немного Гауссовского шума. 

В компьютерном зрении есть множество способов увеличить датасет. Например, библиотека Albumentations выполняет различные преобразования над изображениями, сохраняя при этом метки классов:

Другой полезный метод дополнения данных — Mixup. Он берёт два исходных изображения, «смешивает» их и объединяет метки:

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

4. Сгенерируйте синтетические данные

Если вы исчерпали все возможности по сбору и увеличению реальных данных — самое время задуматься о создании «фейковых» образцов. Генерация синтетических данных также может охватить ситуации, которые не встречаются в исходном датасете.

Многие робототехнические системы (например, Dactyl от OpenAI) обучаются в смоделированных 3D-средах, прежде чем их развернут в реальных роботов. Таким же образом можно создавать сцены для систем распознавания изображений.

15 смоделированных примеров для обучения Dactyl

Существует много подходов к моделированию синтетических данных. Если вам нужны образцы высокого качества, то для их генерации можно использовать GAN. Но имейте в виду — GAN достаточно сложно обучаются, поэтому убедитесь, что это действительно необходимо.

NVIDIA GauGAN в действии! 

Иногда подходы можно комбинировать: например, Apple придумала способ обработки смоделированных с помощью GAN 3D-лиц, чтобы они выглядели более реалистичными. Это хорошая техника для расширения набора данных, но она требует много времени.

5. Остерегайтесь удачного разделения данных

Обычно данные разделяются на обучающую и тестовую выборки в определённом соотношении (80/20, 70/30 и тому подобное). Чаще всего такой подход работает нормально, но с небольшими датасетами есть риск возникновения шума. Это означает, что вы можете случайно разделить данные удачным образом, и модель получит неоправданно высокую точность. В действительности хороший результат может быть связан с тем, что в тестовом наборе мало сложных примеров.

Лучшая подстраховка в этом случае — применение кросс-валидации по k-блокам. Она использует k различных вариантов разделения датасета и контролирует, что удачная разбивка данных не влияет на эффективность модели.

6. Используйте трансферное обучение

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

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

7. Попробуйте ансамбль слабых учеников

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

Но эти алгоритмы не всегда так же точны, как современные архитектуры. Поэтому их можно назвать «слабыми учениками», по крайней мере, по сравнению с нейронными сетями с высокой степенью параметризации. Один из способов повысить эффективность — объединить несколько таких «слабых учеников» (это может быть набор машин опорных векторов или деревьев решений), чтобы они работали вместе. Это называется ансамблевым методом.

⌘⌘⌘

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

С оригинальной статьёй можно ознакомиться на сайте towardsdatascience.com.

Что такое ЭДО и почему вам нужно подключить его прямо сейчас  

Что такое ЭДО и почему вам нужно подключить его прямо сейчас 

Ещё каких-то 15 лет назад принтеры, факсы и подобное оборудование были неотъемлемой частью любого крупного или небольшого офиса, но постепенно...
Read More
6 трендовых доменных зон для онлайн-бизнеса

6 трендовых доменных зон для онлайн-бизнеса

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

Обучаем виртуального дракона фигурам высшего пилотажа

В наши дни компьютерная графика присутствует во всех популярных видах визуального контента: от видеороликов YouTube-блогеров до полнометражных фильмов. Но проработка...
Read More
Стэнфордский курс: лекция 9. Архитектуры CNN

Стэнфордский курс: лекция 9. Архитектуры CNN

На прошлом уроке мы узнали о наиболее популярных библиотеках и фреймворках для глубокого обучения, рассмотрели их особенности и области применения....
Read More
GPT-2: нейросеть, которая закончит за вас предложение

GPT-2: нейросеть, которая закончит за вас предложение

Встречали ли вы когда-нибудь собеседника, который после нескольких сказанных вами слов заканчивал за вас предложение? GPT-2 умеет и не такое:...
Read More
Жуткие сайты, которые вызовут у вас мурашки

Жуткие сайты, которые вызовут у вас мурашки

Интернет может не только развлекать вас новыми мемами и видеороликами, но и быть по-настоящему пугающим. В честь Хэллоуина представляем несколько...
Read More
10 ингредиентов надёжной инфраструктуры хостинга REG.RU

10 ингредиентов надёжной инфраструктуры хостинга REG.RU

Привет! На связи редакция блога. И сегодня мы расскажем в деталях об одной из сторон инфраструктуры REG.RU, объясним как работает...
Read More
Голосовой помощник Apple, которому можно доверять

Голосовой помощник Apple, которому можно доверять

Мы гораздо больше доверяем тем людям, общаться с которыми нам легко и приятно. Обычно так происходит, когда их стиль и...
Read More
Как организовать техническую поддержку пользователей

Как организовать техническую поддержку пользователей

Быстрая техподдержка очень важна для клиентов, особенно в критических ситуациях. От скорости и качества решения проблемы зависит лояльность пользователя и...
Read More
Роботы в облаках: совмещение ROS и Jupyter

Роботы в облаках: совмещение ROS и Jupyter

Робототехника — одна из самых популярных и прогрессивно развивающихся отраслей. Ролики Boston Dynamics на YouTube собирают миллионы просмотров. Если вы...
Read More