Как повысить точность проверки при обучении сверточной нейронной сети? - PullRequest
0 голосов
/ 27 октября 2019

Я тренирую модель CNN (сделанную с использованием Keras). Входные данные изображения имеют около 10200 изображений. Есть 120 классов для классификации. Составляя график частоты данных, я вижу, что выборочные данные для каждого класса более или менее однородны с точки зрения распределения.

Проблема, с которой я сталкиваюсь, заключается в том, что график потерь для обучающих данных снижается с эпохами, но для проверочных данных это сначалападает, а затем продолжает расти. График точности отражает это. Точность для обучающих данных в конечном итоге устанавливается на уровне 0,94, но для проверочных данных она составляет около 0,08.

В основном это случай перебора.

Я использую скорость обучения 0,005 и отсев 0,25.

Какие меры я могу предпринять, чтобы повысить точность проверки? Возможно ли, что размер выборки для каждого класса слишком мал, и мне может потребоваться увеличение данных, чтобы получить больше точек данных?

1 Ответ

0 голосов
/ 27 октября 2019

Трудно сказать, в чем может быть причина. Сначала вы можете попробовать классические методы регуляризации, такие как уменьшение размера вашей модели, добавление отсева или l2 / l1-регуляризаторов к слоям. Но это больше похоже на случайное угадывание гиперпараметров моделей и надежду на лучшее.

Научный подход заключается в том, чтобы посмотреть на выходные данные для вашей модели и попытаться понять, почему она производит эти выходные данные и, очевидно, проверить ваш конвейер. Вы смотрели на результаты (они все одинаковые)? Вы предварительно обрабатывали данные проверки так же, как данные обучения? Вы делали стратифицированный поезд / тест-сплит, т.е. сохраняли распределение классов одинаковым в обоих наборах? Данные перетасовываются, когда вы подаете их на вашу модель?

В итоге у вас есть около 85 изображений на класс, что на самом деле не много, сравните CIFAR-10 и соотв. CIFAR-100 с 6000/600 изображений на класс или ImageNet с 20k классами и 14M изображений (~ 500 изображений на класс). Таким образом, увеличение данных также может быть полезным.

...