Внезапные потери в проверке и потере обучения происходят из-за пакетного обучения; по сути, конвергенция будет гладкой, только если мы будем тренироваться со всем набором данных, а не с партиями. Следовательно, нормально видеть такие падения (как для обучения, так и для проверки).
- val_loss: 1.4935 - val_accuracy: 0.8737 (предыдущая эпоха)
- val_loss: 1.7569 - val_accuracy: 0.6055 (Эпоха с выпадением)
- val_loss: 1.4756 - val_accuracy: 0.9023 (Следующая эпоха)
Если вы посмотрите на потерю проверки, она просто увеличилась с 0.26; однако это привело к снижению вашей точности на 27%. В этом случае это связано с тем, что ваша модель не уверена, когда она делает прогноз (по крайней мере, на этом этапе обучения).
Представьте, что у вас есть модель бинарной классификации (между яблоками и апельсинами). При каждом прогнозе, когда основная правда - это яблоко, сеть на 51% уверена, что изображение - это яблоко. У нас есть яблоко ground_truth, и, как это делает Керас, порог достоверности по умолчанию составляет 50%. Тогда все прогнозы хороши, и у вас хорошая точность.
Однако сейчас наступает эпоха «проблематичности» c. Из-за изменившихся значений весов вашей нейронной сети после другой эпохи обучения, когда вы прогнозируете свой набор данных проверки, вы получаете уверенность в 48-49% для каждого яблока ground_truth, и снова, поскольку порог составляет 50%, вы получаете гораздо худшую точность, чем в предыдущую эпоху.
Этот конкретный случай, который вы испытываете, как вы можете теперь вывести из предыдущего объяснения, влияет не столько на потери, сколько на точность. Это не сильно влияет на потерю во время обратного распространения, потому что разница в прогнозе достоверности между 49% и 51% при вычислении потери не является очень существенной разницей в общей потере (как вы видите в своем случае, только 0,26% ). В конце концов, даже в «предыдущую эпоху», когда модель правильно предсказывала яблоко, нейронная сеть не была настолько уверенной в себе, обеспечив лишь 51% доверия к яблоку, а не 95%, например.