Как это возможно, что потери проверки увеличиваются, в то время как точность проверки также увеличивается


28

Я обучаю простую нейронную сеть на наборе данных CIFAR10. Через некоторое время потери валидации начали увеличиваться, а точность валидации также увеличивается. Потери и точность испытаний продолжают улучшаться.

Как это возможно? Кажется, что если потери при проверке возрастают, точность должна уменьшаться.

PS Есть несколько похожих вопросов, но никто не объяснил, что там происходит.введите описание изображения здесь


2
Вы можете проверить некоторые подсказки, чтобы понять в моем ответе здесь: stats.stackexchange.com/questions/258166/…
ahstat

@ahstat Я понимаю, как это технически возможно, но я не понимаю, как это происходит здесь.
Константин Соломатов,

«Иллюстрация 2» - это то, что я и вы испытали, это своего рода переоснащение. Для моей конкретной проблемы, это было смягчено после перетасовки набора.
Ахстат

@ahstat Есть много способов борьбы с переоснащением. Например, я мог бы использовать dropout. Что мне интереснее всего, чем это объясняется. Т.е. почему оно растет так постепенно и только вверх.
Константин Соломатов

Ответы:


12

Основываясь на ответе Анкура и комментариях под ним, я думаю, что следующий сценарий возможен, хотя у меня нет никаких доказательств этого. Два явления могут происходить одновременно:

  1. Некоторые примеры с пограничными предсказаниями прогнозируются лучше, и поэтому их выходной класс изменяется (например, изображение кошки, предсказанное при 0,4 для кошки и 0,6 для лошадей, становится предсказанным 0,4 для лошадей и 0,6 для кошек). Благодаря этому точность увеличивается, а потери уменьшаются.

  2. Некоторые примеры с очень плохими предсказаниями продолжают ухудшаться (например, изображение кошки, предсказанное в 0,8, чтобы быть лошадью, становится предсказанным в 0,9, чтобы быть лошадью) И / ИЛИ (более вероятно, особенно для мультикласса?), Некоторые примеры с очень хорошим прогнозы становятся немного хуже (например, изображение кошки, предсказанное в 0,9 как кошка, становится предсказанным в 0,8, чтобы быть кошкой). При этом явлении потери увеличиваются, а точность остается неизменной.

Так что, если в какой-то момент наступит явление 2, на многих примерах (например, для определенного класса, который по какой-то причине не совсем понятен) и / или с увеличением потерь, превышающим уменьшение потерь, которое вы получаете от 1., тогда вы можете найдите себя в своем сценарии.
Еще раз, может быть, это не то, что происходит, но я думаю, что возможность придумывать такие сценарии должна напоминать нам о иногда скользкой взаимосвязи между (кросс-энтропийной) потерей и точностью.


15

Точность набора оценивается путем простой перекрестной проверки наивысшего выхода softmax и правильного помеченного класса. Это не зависит от того, насколько высоким является выход softmax. Чтобы было понятнее, вот некоторые цифры.

Предположим, есть 3 класса - собака, кошка и лошадь. Для нашего случая правильный класс - лошадь . Теперь выход softmax составляет [0,9, 0,1]. Для этой потери ~ 0,37. Классификатор предсказывает, что это лошадь. Возьмем другой случай, когда выход softmax равен [0,6, 0,4]. Потеря ~ 0,6. Классификатор все еще будет предсказывать, что это лошадь. Но, конечно, потери увеличились. Итак, все дело в выходном распределении.


4
Наблюдение: в вашем примере точность не меняется. Это все еще 100%. Есть ли у вас пример, когда потери уменьшаются, а точность уменьшается?
Хью Перкинс

1

Из ответа Анкура мне кажется, что:

Точность измеряет процент правильности прогноза, т.correctclassestotalclasses

в то время как

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

Так...

Высокая точность проверки + высокая оценка потерь по сравнению с высокой точностью обучения + низкая оценка потерь позволяют предположить, что модель может быть более подходящей для данных обучения.


0

Многие ответы сосредоточены на математических расчетах, объясняющих, как это возможно. Но они не объясняют, почему это так. И они не могут предложить, как копать дальше, чтобы быть более понятным.

У меня есть 3 гипотезы. И предложить несколько экспериментов, чтобы проверить их. Надеюсь, это поможет объяснить эту проблему.

  1. Метка шумная. Сравните ложные прогнозы между тем, когда val_loss является минимальным и val_acc максимальным. Проверьте, правильно ли помечены эти образцы.
  2. [Менее вероятно] В модели недостаточно информации, чтобы быть уверенным. Экспериментируйте с большим и большим скрытыми слоями.
  3. [Очень дикое предположение] Это тот случай, когда модель менее уверена в том, что некоторые вещи обучаются дольше. Такая ситуация случается и с человеком. Когда кто-то начинает изучать технику, ему говорят точно, что хорошо или плохо, для чего нужны определенные вещи (высокая достоверность). Когда он просматривает больше случаев и примеров, он понимает, что иногда определенные границы могут быть размытыми (менее определенными, более высокими потерями), даже если он может принимать более правильные решения (с большей точностью). И он может в конечном итоге стать более уверенным, когда станет мастером, пройдя огромный список образцов и множество проб и ошибок (больше обучающих данных). Так что в этом случае, я предлагаю эксперимент с добавлением большего количества шума к тренировочным данным (не меткам), может быть полезным.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.