Обучение с подкреплением очень отличается от традиционного обучения под наблюдением, потому что распределение данных обучения изменяется по мере совершенствования политики. С точки зрения оптимизации, целевая функция может быть названа нестационарной . По этой причине я подозреваю, что ваша интуиция, скорее всего, верна - оптимизатор с одним циклом через некоторое время будет плохо работать в вашем приложении.
Мой вопрос: что не так с Адамом? Как правило, выбор оптимизатора является второстепенной деталью для глубокого обучения; другие факторы, такие как политика исследования, гиперпараметры алгоритма c или сетевая архитектура, как правило, оказывают гораздо большее влияние на производительность.
Тем не менее, если вы действительно хотите попробовать другие оптимизаторы, вы можете поэкспериментировать с RMSProp, Adadelta. или Нестеров Импульс. Тем не менее, я предполагаю, что вы увидите постепенные улучшения, если таковые имеются. Возможно, поиск лучших гиперпараметров для использования с Адамом был бы более эффективным использованием времени.
РЕДАКТИРОВАТЬ: В своем первоначальном ответе я утверждал, что выбор конкретного Оптимизатор не важен в первую очередь для ускорения обучения и не является обобщением. Я хочу добавить некоторые обсуждения, которые помогут проиллюстрировать эти моменты.
Рассмотрим, как работают самые глубокие методы градиента политики: они выбирают траекторию опыта из среды, оценивают отдачу, а затем проводят один или несколько шагов градиента для улучшения параметризованная политика ( например нейронная сеть). Этот процесс повторяется до сближения (с локальной оптимальной политикой).
Почему мы должны постоянно выбирать новый опыт из окружающей среды? Поскольку наши текущие данные могут обеспечить разумное приближение первого порядка только в пределах небольшой области доверия вокруг параметров политики, которые использовались для сбора этих данных. Следовательно, всякий раз, когда мы обновляем политику, нам нужно выбирать больше данных.
Хороший способ визуализировать это - рассмотреть алгоритм MM . На каждой итерации суррогатная цель строится на основе данных, которые мы сейчас и затем максимизировали. Каждый раз мы приближаемся к истинному оптимуму, но скорость, с которой мы приближаемся к нему, определяется только количеством суррогатов, которые мы создаем - , а не конкретным c оптимизатором, который мы используем для максимизации каждый суррогат . Адам может максимизировать каждый суррогат за меньшее количество шагов градиента, чем, скажем, RMSProp, но это не влияет на скорость обучения агента (по отношению к образцам среды). Это просто уменьшает количество обновлений мини-пакетов, которые вам необходимо выполнить.
SA C немного сложнее, чем это, поскольку он изучает Q -значает вне политики и проводит обновления, используя повтор опыта, но общая идея верна. Наилучшая достижимая политика зависит от текущих данных в нашей памяти воспроизведения; независимо от того, какой оптимизатор мы используем, нам нужно будет собрать примерно одинаковый объем данных из среды, чтобы сходиться к оптимальной политике.
Итак, как сделать более быстрый (более эффективный для выборки) градиент политики метод? Вам необходимо коренным образом изменить сам алгоритм RL. Например, PPO почти всегда учится быстрее, чем TRPO , потому что Джон Шульман и соавторы нашли другой и эмпирически лучший способ создания шагов градиента политики.
Наконец Обратите внимание, что здесь нет понятия обобщения. У нас есть целевая функция, которую мы хотим оптимизировать, и, как только мы ее оптимизируем, мы решили задачу так хорошо, как можем. Вот почему я подозреваю, что проблема "Адам обобщает хуже чем SGD" на самом деле не имеет значения для RL.