Понимание кривых потерь и точности

Aug 20 2020

Это проблема, с которой я сталкиваюсь снова и снова. Графики потерь (в данном случае кросс-энтропии) и точности не имеют смысла. Вот пример:

Здесь я тренирую ReNet18 на CIFAR10. Оптимизатор - SGD со скоростью обучения 0,1, моментом Нестерова 0,9, спадом веса 1e-4. Скорость обучения снижена до в эпохах 60, 120, 160.

  • Изначально изгибы все красивые и модные; Это означает, что потери при обучении и проверке уменьшаются, а точность возрастает.
  • Примерно в эпоху 65 ~ 70 вы видите признаки переобучения; как val. потеря начинает увеличиваться и val. точность начинает снижаться ( красный прямоугольник). Здесь по-прежнему нет ничего странного.

Вот две вещи, которые для меня не имеют смысла:

  1. После эпохи 120 (где LR уменьшается) val. потеря и точность начинают улучшаться через пару эпох ( зеленый прямоугольник). Почему снижение скорости обучения внезапно улучшило бы эффективность проверки модели, которая уже переоснащалась ?! Я ожидал, что снижение LR действительно ускорит переоснащение.

  2. После эпохи ~ 125 ( синий прямоугольник) потери начинают расти, но точность продолжает улучшаться. Я понимаю, что потери могут возрасти, пока точность останется постоянной (когда модель станет более уверенной в своих неверных прогнозах или менее уверенной в своих правильных прогнозах). Но я не понимаю, как можно повысить точность при увеличении потерь.

Ответы

hH1sG0n3 Aug 20 2020 at 18:52

Всего пара пунктов ниже

  • Красный прямоугольник: строго говоря, переобучение происходит, когда модель показывает лучшие результаты при обучении, чем набор для проверки. Итак, я бы сказал, что здесь он начинается раньше, чем обозначено красным, и, вероятно, это действительно связано с поиском моделью лучших параметров, которые применимы только к обучающей выборке. Следует отметить, что существенного снижения потерь поездов не произошло.
  • Зеленый ящик: во время тренировки потери значительно снизились. Это открытие значительно лучших минимумов означает, что оно также может применяться в наборе для проверки и фактически отражается на кривой потерь val. Несмотря на это, проигрыш не лучше контрольной точки в начале красного квадрата.
  • Синяя рамка: потери и точность не являются взаимозависимыми метриками. В то время как точность - это мера количества правильных предположений (сколько их), потеря - это мера расстояния от правильного для данной точки данных (насколько далеко).

Как правило, меньший lr означает, что у модели меньше «свободы» перемещаться очень далеко в пространстве функций. Таким образом, меньше шансов увидеть значительное и быстрое уменьшение убытков. Как вы предполагаете, существует небольшая тенденция к переобучению ваших потерь val, но она настолько значительна или быстро, насколько позволяет меньший lr во время тренировки.

Также обратите внимание на то, что ваши потери в поездах выше, чем потери val для значительной части вашей тренировки (~ 55-я эпоха). Вы можете захотеть изучить, как ваша модель упорядочена, поскольку это может повлиять на ваши кривые обучения таким образом, чтобы помочь вам лучше вывести диагностику. Например, в pytorch потери поезда между состояниями модели (model.train () и model.eval ()) значительно различаются.