Си-Эн-Эн теряет регулярные спайки в конце эпохи - PullRequest
1 голос
/ 29 февраля 2020

Я тренирую CNN в PyTorch с Адамом, и начальная скорость обучения составляет 1e-5. В мою эпоху у меня было 5039 образцов, а размер партии - 1. Я заметил, что в конце эпохи у меня наблюдается регулярный скачок тренировочных потерь. Вот график потери тренировок: enter image description here

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

То, что я не думаю, это:

  • Эти шипы можно было бы объяснить, если бы не тасовал набор данных. Однако я перетасовываю свой набор данных каждую эпоху.

  • Такое поведение, как известно, происходит, когда конечная партия эпохи меньше, чем другие партии, что приводит к разной величине потерь ( Почему у моей тренировочной потери есть регулярные пики? ). Тем не менее, это не мой случай, так как мой размер пакета равен 1.

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

  1. Что вы думаете о причинах такого всплеска?
  2. Насколько плохо иметь такой шаблон?
...