There is only one line of code that is different.
Which algorithm is better?
The only difference: the epsilon value to avoid division by zero in the optimizer
(one is eps=1e-7
the other eps=1e-5)
https://github.com/DLR-RM/stable-baselines3
Raffin, Antonin, et al. "Stable-baselines3: Reliable reinforcement learning implementations." JMLR (2021)
Using SB3 + Jax = SBX: https://github.com/araffin/sbx
https://iclr-blog-track.github.io/2022/03/25/ppo-implementation-details/
Huang, Shengyi, et al. "Open RL Benchmark: Comprehensive Tracked Experiments for RL." (2024).
Periodic Policy
Raffin et al. "An Open-Loop Baseline for Reinforcement Learning Locomotion Tasks", RLJ 2024.
Outstanding Paper Award on Empirical Resourcefulness in RL
Raffin, Antonin "Enabling Reinforcement Learning on Real Robots." Diss. TUM, 2024.
truncation vs termination
Timeout: max_episode_steps=4