Я тренирую модель классификации изображений с использованием CNN (через тензорный поток). В моем наборе данных 600 сэмплов с 90 классами ( сбалансировано ), и вот мой обзор архитектуры NN:
conv(relu) --> conv(relu) --> dense(relu) --> dense(relu) --> dense(sigmoid)
Обучение:
Я разделил свой набор данных на тренировочный набор и проверочный набор 8: 2, и вот моя тренировочная конфигурация:
batch_size = 16
epochs = 200
learning_rate = 0.0001
А у меня в консоли отображаются:
epoch 1: loss 0.34, validation accuracy 96%
epoch 2: loss 0.12, validation accuracy 98%
epoch 3: loss 0.09, validation accuracy 98.5%
epoch 4: loss 0.06, validation accuracy 99%
epoch 5: loss 0.04, validation accuracy 99.7%
...
Кажется, все в порядке, потери на тренировках уменьшаются, и в то же время увеличивается точность набора проверки.
Тестирование:
Однако при тестировании на аналогичном, но другом наборе данных точность модели после первой эпохи намного выше, чем модели после 5 (10, 20, 100 и т. Д.) Эпохи.
После проверки этого вопроса, кажется, что, возможно, моя задача обучения слишком проста, и тренировка для большего количества эпох вызывает проблему overfitting .
Итак:
- Это что-то вроде переоснащения, поскольку вывод моего окна консоли говорит «нет»? что случилось?
Спасибо за вашу помощь.