Почему keras SGD не оптимизируется должным образом? - PullRequest
0 голосов
/ 04 ноября 2019

Я занимаюсь разработкой обучающего агента для подкрепления. У меня уже есть структура и алгоритм. В настоящее время моей целью является повышение стабильности учебного процесса. Я использую keras для ML-части, и у меня был отличный результат с оптимизатором adam. Вот график процесса за 100 прогонов (хороший результат, но действительно нестабильный процесс обучения). Adam optimizer run Я уже сказал, что хочу улучшить стабильность, поэтому я попытался переключить оптимизатор на SGD, вотрезультат (действительно смущает меня, потому что, кажется, становится все хуже и хуже). SGD optimizer run Единственная разница между одним прогоном и другим - это оптимизатор. Есть идеи, что вызывает такое поведение?

1 Ответ

0 голосов
/ 04 ноября 2019

У меня недостаточно информации, но эта интуиция может объяснить, что вы видите.

Хотя у Адама есть адаптивный размер шага, у SGD нет. Это означает, что SGD может начать подпрыгивать в овраге, когда размер шага слишком велик.

enter image description here

Изображение относится к следующей статье https://blog.paperspace.com/intro-to-optimization-momentum-rmsprop-adam/

Если размер шага остается постоянным, оптимизатор будет продолжать подпрыгивать между «стенками». Вместо этого Адам может уменьшить размер шага, что приводит к лучшим результатам.

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

...