Потеря обучения увеличивается со временем [дубликат]

21

Я тренирую модель (Recurrent Neural Network), чтобы классифицировать 4 типа последовательностей. Во время тренировок я вижу, что потери тренировок снижаются до того момента, когда я правильно классифицирую более 90% образцов в моих тренировочных партиях. Однако спустя пару эпох я замечаю, что потеря тренировок увеличивается и моя точность падает. Это кажется мне странным, так как я ожидаю, что на тренировочной площадке производительность должна улучшаться со временем, а не ухудшаться. Я использую перекрестную потерю энтропии, и моя скорость обучения составляет 0,0002.

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

Потеря уменьшается, а затем увеличивается

dins2018
источник

Ответы:

6

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

Freundlicher
источник
На самом деле да, однако, наступает момент, что при достаточно низкой скорости обучения он никогда не поднимется снова. Я ищу теоретически обоснованное объяснение того, почему это происходит
dins2018
Какой алгоритм оптимизации вы используете?
Freundlicher
Я использую оптимизатор Адама с lr = 0,00001, бета-версии = (0,5, 0,999)
dins2018
1
Я думаю, что вы приближаетесь с этой небольшой скоростью обучения так медленно к локальному минимуму, что для точки, где значение потерь снова немного увеличивается (потому что вы превышаете минимум), требуется слишком много итераций. Это увеличение значения потерь происходит из-за Адама, в тот момент, когда локальный минимум превышен и определенное количество итераций, небольшое число делится на еще меньшее число, и значение потерь взрывается.
Freundlicher
2
Вы можете установить бета1 = 0,9 и бета2 = 0,999. Это общие ценности, которые должны работать против этого поведения.
Freundlicher
1

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

Явен Чжэн
источник
0

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

namuchan95
источник
Добро пожаловать в резюме. Чтобы получить голосование, лучше предоставить более полный ответ, см. Stats.stackexchange.com/help/how-to-answer .
ReneBt