Я начинаю проект, где задача состоит в том, чтобы идентифицировать типы кроссовок по изображениям. В настоящее время я читаю в реализации TensorFlow и Torch . Мой вопрос: сколько изображений на класс требуется для достижения разумной эффективности классификации?
12
Ответы:
С какого количества примеров обучения слишком мало при обучении нейронной сети? в резюме:
Это действительно зависит от вашего набора данных и сетевой архитектуры. Одно практическое правило, которое я прочитал (2), было несколько тысяч образцов на класс, чтобы нейронная сеть начала работать очень хорошо. На практике, люди пытаются увидеть.
Хороший способ грубо оценить, в какой степени это может быть полезно, чтобы иметь больше обучающей выборки для построения характеристик нейронной сети на основе от размера обучающей выборки, например, из (1):
(2) Сирешан, Дан С., Ули Мейер и Юрген Шмидхубер. «Передача обучения для латинских и китайских символов с глубокими нейронными сетями». В 2012 году Международная совместная конференция по нейронным сетям (IJCNN), с. 1-6. IEEE, 2012. https://scholar.google.com/scholar?cluster=7452424507909578812&hl=ru&as_sdt=0,22 ; http://people.idsia.ch/~ciresan/data/ijcnn2012_v9.pdf :
источник
Наилучший подход - собрать как можно больше данных. Тогда начните с проекта и создайте модель данных.
Теперь вы можете оценить свою модель, чтобы увидеть, имеет ли она высокий уклон или высокую дисперсию.
Высокая дисперсия : в этой ситуации вы увидите, что ошибка перекрестной проверки выше, чем ошибка обучения после конвергенции. Существует существенный разрыв, если вы строите график в зависимости от размера данных обучения.
Высокий уклон . В этой ситуации ошибка перекрестной проверки немного выше, чем ошибка обучения, которая сама по себе высока при построении графика в зависимости от размера данных тренировки. Я имею в виду, что при построении графика в зависимости от размера данных тренировки вы можете вводить подмножества данных тренировки, которые у вас есть, и продолжать увеличивать размер подмножества и сюжетные ошибки.
Если вы видите, что ваша модель имеет высокую дисперсию (избыточное соответствие), добавление дополнительных данных обычно помогает в отличие от модели с высоким смещением (недостаточное соответствие), где добавление новых данных обучения не помогает.
Также для каждого класса вы должны попытаться получить одинаковое количество изображений, иначе наборы данных могут стать искаженными (более одного вида).
Также я предлагаю, если вы используете TensorFlow , узнайте больше о классификаторе изображений INCEPTION от GOOGLE . Это уже обученный классификатор в базе данных изображений Google, и вы можете использовать его для своих изображений, поэтому требования к количеству изображений резко снижаются.
источник