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

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

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

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

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

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

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

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

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

Инфраструктура сервера с GPU 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.

10 лучших IDE и редакторов кода для веб-разработчиков

10 лучших IDE и редакторов кода для веб-разработчиков

Писать код при желании можно и в текстовом редакторе — ничто не мешает вам создать простейший сайт в «Блокноте», сохранив...
Read More
Domains weekly: .РФ на страже русского языка, рост new gTLDs и пассивный доход от PORNO.COM

Domains weekly: .РФ на страже русского языка, рост new gTLDs и пассивный доход от PORNO.COM

В новой подборке новостей мы расскажем, как развивался русский язык вместе с зоной .РФ, что за риски таит в себе...
Read More
VPS нового поколения, ИИ, юникодные домены и мини‑сериал об админах: всё, что вы знали и чего могли не знать о REG.RU

VPS нового поколения, ИИ, юникодные домены и мини‑сериал об админах: всё, что вы знали и чего могли не знать о REG.RU

Ура-ура! 22 мая нам исполнилось 14 лет, и мы по-прежнему двигаемся только вперёд и становимся лучше. Мы решили поделиться с...
Read More
Domains weekly: старт .MEET от Google, годовой рост .RU и .РФ, вирусная реклама рэп‑альбома с new gTLDs

Domains weekly: старт .MEET от Google, годовой рост .RU и .РФ, вирусная реклама рэп‑альбома с new gTLDs

В новой еженедельной подборке новостей расскажем о старте регистраций в зоне  .MEET от Google, вирусной рекламной кампании нового рэп-альбома Future...
Read More
Как скорость загрузки страниц на мобильных устройствах влияет на посещаемость сайта

Как скорость загрузки страниц на мобильных устройствах влияет на посещаемость сайта

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

Популярные уязвимости сайтов: чем опасны и как их избежать

Для любого, кто управляет веб-сайтом, на первом месте должен стоять вопрос безопасности. Критические угрозы и уязвимости могут сильно ударить как...
Read More
Domains weekly: 10 лет .РФ, новый топ регистраторов в .COM и спор за ягодный домен

Domains weekly: 10 лет .РФ, новый топ регистраторов в .COM и спор за ягодный домен

В свежей подборке новостей расскажем о юбилее .РФ, отчёте ICANN о динамике регистраций в зоне .COM и неудачной попытке канадской...
Read More
С днём рождения, .РФ!

С днём рождения, .РФ!

В этом году кириллической национальной российской доменной зоне исполняется 10 лет. Мы решили вспомнить, как всё начиналось: в этом материале...
Read More
Domains weekly: стагнация ccTLD, конец страстей по .ORG и взлом клиентов GoDaddy

Domains weekly: стагнация ccTLD, конец страстей по .ORG и взлом клиентов GoDaddy

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

Как поменять домен, чтобы сайт не просел в поисковой выдаче

Итак, вы решили изменить имя своего сайта после ребрендинга или просто выбрали более короткий домен. Но как при этом сохранить...
Read More