Несоответствие между потерями при валидации и точностью валидации - Сверточная нейронная сеть - PullRequest
0 голосов
/ 28 марта 2020

Я обучаю Сверточную Нейронную Сеть, используя Python 3.7 и TensorFlow 2.0 с архитектурой на наборе данных CIFAR10:

Сверточные слои: 64, 64, макс. Уровень пула

Плотные слои: 256, 256, 10

Я обучаю этот CNN с помощью пользовательского критерия ранней остановки со следующими параметрами: минимальная_дельта = 0,001 и терпение = 3, в то время как отслеживаемая величина является потерей проверки или 'val_loss'. Ссылка на раннюю остановку .

Результат обучения прилагается в виде рисунка:

CNN Training output

Самый низкий потери проверки (0,8897) происходят в эпоху 5, у которой точность проверки составляет 69,41%, в то время как эпоха 8 имеет более высокие потери проверки - 0,9487, но самую высокую точность проверки - 70,27%. Критерий ранней остановки останавливает дальнейшее обучение, так как отслеживаемая величина «val_loss» перестает уменьшаться после эпохи 5 из-за значения «терпения» 3.

Почему существует несоответствие между потерями при проверке и точностью при проверке? Я думал, что потеря и точность проверки go рука об руку, а это означает, что эпоха с наименьшими потерями проверки, следовательно, должна иметь самую низкую точность проверки.

Из-за этого несоответствия, если контролируемое количество должно быть 'val_loss 'или' val_accuracy '?

Спасибо!

...