Автор: Иван Редактура: Андрей Шадриков, Александр Наздрюхин, Евгений Мунин
Датасеты — то, на чем держится весь DL. Многие компании сохраняют их в тайне и не выкладывают в открытый доступ. Подбор архитектур, лоссов и оптимизаторов не имеет смысла без хороших данных для обучения. Качество датасета складывается из нескольких основных критериев:
Разберем каждый пункт по отдельности.
Чем больше реальных примеров модель увидит во время обучения, тем выше ее обобщающая способность: она с большей вероятностью адекватно отработает на новых данных. С ростом количества уникальных примеров снижается риск переобучения — адаптации под обучающую выборку.
Но! Большой набор данных не всегда приводит к большей точности из-за потенциального шума, выбросов и нерелевантной информации.
Стоит учитывать: объём складывается из разнообразия. Например, при кадрах из одного и того же видео с разницей в 0.1 сек модель получит мало новой информации, только дублирующее изображение.
Больше — не значит лучше, но количество разнообразных данных важно.
При существенном дисбалансе в датасете (1к примеров одного класса и 100к примеров другого) модель будет переобучаться под класс с большим количеством примеров (то есть под второй) в случае, когда классы одинаково сложны. Это можно исправить семплированием, заданием веса в функции потерь каждому классу, увеличением количества аугментаций для первого класса, либо использованием Focal Loss (о нем мы писали в нашей статье). Но мы ничего не сможем сделать, если захотим обучить модель на классификацию при наличии в датасете всего 2 кошек и 98 собак (тут придется добирать примеры в первый класс).
Важно соблюдать баланс и наполненность классов.
Для более понятного объяснения давайте обратимся к примеру.
Допустим, мы обучили сетку на детекцию людей в офисе (см. Рисунок 1), но для обучения использовали датасет для детекции пешеходов (см. Рисунок 2). Как можно заметить, ракурс фотографий и освещение значительно отличаются, следовательно, модель будет работать на целевом домене хуже, чем на обучающем.