...and generating ugly state-action maps for MountainCar-v0
A common task for RL: MountainCar-v0. A classic control problem: make
an underpowered cart located at the bottom of the valley reach the flag.
I solve it with Q-learning, track the progress and the solution space
by building nice maps and plots while and after training.
Решение — нормальный такой дип ку-лёрнинг, в обучение добавлен некоторый читинг (ну или хакинг или шейпинг или трюки, если угодно).
Пробовал что-то вроде Brain Damage, тупое усреднение, добавление шума в веса, добавление шума в данные (вообще оно-то
как раз должно было помочь, потому что у позиции и скорости есть свойство локальности) — и ещё много что. Кое-что удалил,
кое-что осталось в виде закомментированного кода (но я старался, чтобы было аккуратно).
Сохраняю раз в несколько шагов “карту” выученного поведения агента, а также историю ревордов. Довольно прикольно —
и много рассказывает о задаче и пространствах решений.
main.py
model.py
training.py
memory.py
utils.py
Бонусом пара неравенств, которые решают задачу, взяты с интернета
и в виде готового кода лежат в файле deterministic_policy_for_comparison.py
.
Ещё один бонус — интересные и не очень картинки, которые получились в процессе.
Ситуация, когда вознаграждение агенту слишком сильно отличается от исходного. Сделать хотел утюг — слон получился вдруг.
(Due to certain secrecy measures the code has originally been made available using a fake name: Ivan Semyonich Golubtsov)