Точность поезда очень высокая, точность валидации очень высокая, но точность набора тестов очень низкая - PullRequest
0 голосов
/ 16 января 2019

Я разделил набор данных (около 28K изображений) на 75% наборов поездов и 25% наборов тестов. Затем я случайно выбрал 15% набора поездов и 15% набора тестов для создания набора проверки. Цель состоит в том, чтобы классифицировать изображения на две категории. Точный образец изображения не может быть передан. Но это похоже на тот, который прилагается. Я использую эту модель: VGG19 с весами imagenet с последними двумя слоями, пригодными для обучения, и 4 слоями. Я также использую ImageDataGenerator, чтобы увеличить изображения. Я тренировал модель в течение 30 эпох и обнаружил, что точность обучения составляет 95%, а точность валидации - 96%, а при обучении на тестовом наборе данных она сильно упала до 75%.

Я пробовал регуляризацию и отсев, чтобы справиться с переоснащением, если оно страдает. Я также сделал еще одну вещь, чтобы увидеть, что произойдет, если я использую набор тестов в качестве набора проверки и протестирую модель на том же наборе тестов. Результаты были следующими: Trainset Acc = 96% и Validation ACC = 96,3% и testAcc = 68%. Я не понимаю, что мне делать?

изображение

1 Ответ

0 голосов
/ 16 января 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...