В финальном домашнем задании необходимо ответить на вопрос, какой же алгоритм все таки лучше решает ту или иную задачу. А именно, нужно рассмотреть одну из следующих задач:
- CartPole
- Pendulum
- LunarLender с дискретным пространством действий (по умолчанию)
- LunarLender с непрерывным пространством действий (нужно положить continuous=True, см. пояснения здесь Lunar Lander)
- BipedalWalker
Нужно сравнить следующие алгоритмы:
- CEM со второй лекции. Для дискретного пространства действий CEM был реализован на практическом занятии 2, для непрерывного — был задан в рамках домашнего задания 2.
- DQN с Hard или Soft Target Networks с пятой лекции. Для дискретного пространства действий DQN был реализован на практическом занятии 5. Hard и Soft Target Networks было предложено реализовать в рамках домашнего задания 5. Кроме того, аналог Soft Target Networks был реализован на практическом занятии 7 в SAC. Для непрерывного пространства действий, его (пространство действий) следует дискретизировать. Например, если пространство действий - это отрезок [-2,2], то можно выбрать 3 действия {-2,0,2} или больше, например, 5 действий {-2,-1,0,1,2}. Если пространство действий квадрат [-1,1]^2, то — 5 действий {[-1,-1],[-1,1],[1,-1],[1,1],[0,0]} или больше. После такой дискретизации можно уже применять DQN.
- PPO с шестой лекции. Для непрерывного и скалярного пространства действий PPO был реализован на практическом занятии 6, для непрерывного многомерного и дискретного — был задан в рамках домашнего задания 6.
- SAC с седьмой лекции. Для непрерывного и скалярного пространства действий SAC был реализован на практическом занятии 7, для непрерывного многомерного и дискретного — предлагается реализовать в рамках текущего задания по аналогии с PPO.
Помимо выбранных алгоритмов разрешается (но не обязательно) проявить творческий подход и попробовать улучшить какой-либо из них каким-либо образом. При этом следует показать, что предложенная модификация действительно превосходит базовый вариант.
Сравнение алгоритмов корректно проводить согласно следующим принципам:
- Понятно, что все алгоритмы имеют разный набор гиперпараметров. Тем не менее, сравнение разумного проводить выбирая одинаковые гиперпараметры в тех случая где они совпадают (например lr или batch_size). Архитектуры NN также разумно выбирать одного размера.
- В алгоритме CEM и PPO на одной итерации обучения генерируется несколько траекторий. Этот факт необходимо учитывать на графиках, либо выводя результаты total_reward для всех этих траекторий, либо беря усредненный total_reward по этим траекториям и растягивая его на графике на количество траекторий. Суть в том, чтобы корректно оценить скорость обучения алгоритмов относительно сгенерированных траекторий, а не относительно итераций.
- Обязательным принципом при сравнении алгоритмов в исследованиях по RL является следующий. Необходимо запустить каждый алгоритм несколько раз (3,5,10 и т.д.) и на график выводить усредненную кривую обучения. Так мы учитываем эффект случайности в обучении обусловленный инициализацией NN, шумом при выборе действий и случайностью в среде.
Главным результатов этого задания должен стать график с усредненными (по запускам, см. выше) кривыми обучений всех алгоритмов, по x-оси которого количество сгенерированных траекторий, а по y-оси total_reward.
Оформление
Код задания следует выполнить в .py файле с названием "(фамилия)_practice7_1.py". Результаты всех исследований следует оформить в отчет в виде одного .pdf файла с названием "(фамилия)_practice7.pdf". Отчеты оформляются в произвольной форме, однако должны содержать
- оглавление,
- описание экспериментов,
- результаты экспериментов проиллюстрированные в виде графиков обучения.
- вывод.
Все файлы кладутся в папку с названием "(фамилия)_practice7" и предоставляется возможность скачать эту папке по ссылке (google.drive, yandex.disk и пр.). Задания отправляются в форме ниже в формате:
Фамилия Имя Отчество
Домашняя работа 7 - (ссылка на папку (фамилия)_practice7)
Оценка
Выполнение заданий оценивается в 10 баллов - 5 баллов на правильность выполнения и 5 за качество оформление отчета.
.