Я обучаю простую нейронную сеть на наборе данных CIFAR10. Через некоторое время потери валидации начали увеличиваться, а точность валидации также увеличивается. Потери и точность испытаний продолжают улучшаться.
Как это возможно? Кажется, что если потери при проверке возрастают, точность должна уменьшаться.
PS Есть несколько похожих вопросов, но никто не объяснил, что там происходит.
neural-networks
deep-learning
conv-neural-network
overfitting
Константин Соломатов
источник
источник
Ответы:
Основываясь на ответе Анкура и комментариях под ним, я думаю, что следующий сценарий возможен, хотя у меня нет никаких доказательств этого. Два явления могут происходить одновременно:
Некоторые примеры с пограничными предсказаниями прогнозируются лучше, и поэтому их выходной класс изменяется (например, изображение кошки, предсказанное при 0,4 для кошки и 0,6 для лошадей, становится предсказанным 0,4 для лошадей и 0,6 для кошек). Благодаря этому точность увеличивается, а потери уменьшаются.
Некоторые примеры с очень плохими предсказаниями продолжают ухудшаться (например, изображение кошки, предсказанное в 0,8, чтобы быть лошадью, становится предсказанным в 0,9, чтобы быть лошадью) И / ИЛИ (более вероятно, особенно для мультикласса?), Некоторые примеры с очень хорошим прогнозы становятся немного хуже (например, изображение кошки, предсказанное в 0,9 как кошка, становится предсказанным в 0,8, чтобы быть кошкой). При этом явлении потери увеличиваются, а точность остается неизменной.
Так что, если в какой-то момент наступит явление 2, на многих примерах (например, для определенного класса, который по какой-то причине не совсем понятен) и / или с увеличением потерь, превышающим уменьшение потерь, которое вы получаете от 1., тогда вы можете найдите себя в своем сценарии.
Еще раз, может быть, это не то, что происходит, но я думаю, что возможность придумывать такие сценарии должна напоминать нам о иногда скользкой взаимосвязи между (кросс-энтропийной) потерей и точностью.
источник
Точность набора оценивается путем простой перекрестной проверки наивысшего выхода softmax и правильного помеченного класса. Это не зависит от того, насколько высоким является выход softmax. Чтобы было понятнее, вот некоторые цифры.
Предположим, есть 3 класса - собака, кошка и лошадь. Для нашего случая правильный класс - лошадь . Теперь выход softmax составляет [0,9, 0,1]. Для этой потери ~ 0,37. Классификатор предсказывает, что это лошадь. Возьмем другой случай, когда выход softmax равен [0,6, 0,4]. Потеря ~ 0,6. Классификатор все еще будет предсказывать, что это лошадь. Но, конечно, потери увеличились. Итак, все дело в выходном распределении.
источник
Из ответа Анкура мне кажется, что:
в то время как
Так...
источник
Многие ответы сосредоточены на математических расчетах, объясняющих, как это возможно. Но они не объясняют, почему это так. И они не могут предложить, как копать дальше, чтобы быть более понятным.
У меня есть 3 гипотезы. И предложить несколько экспериментов, чтобы проверить их. Надеюсь, это поможет объяснить эту проблему.
Не спорьте об этом, если вы не согласны с этой гипотезой. Будет более разумно выступить с экспериментом, чтобы проверить их, независимо от того, чтобы доказать их или доказать, что они ошибаются.
источник