From 0700c3eeb02c97e1edee92e55213b09c26a73774 Mon Sep 17 00:00:00 2001 From: Antonin RAFFIN Date: Thu, 22 Oct 2020 13:43:46 +0200 Subject: [PATCH] Add TQC (#4) * Add TQC doc * Polish code * Update doc * Update results * Update doc * Update doc * Add note about PyBullet envs --- CONTRIBUTING.md | 6 ++ docs/_static/img/logo.png~ | Bin 160152 -> 0 bytes docs/guide/algos.rst | 39 ++++----- docs/guide/examples.rst | 15 +++- docs/index.rst | 10 +-- docs/misc/changelog.rst | 1 + docs/modules/tqc.rst | 168 ++++++++++++++++++++++++++++++++++++ sb3_contrib/tqc/policies.py | 18 ++-- sb3_contrib/tqc/tqc.py | 20 ++--- 9 files changed, 233 insertions(+), 44 deletions(-) delete mode 100644 docs/_static/img/logo.png~ create mode 100644 docs/modules/tqc.rst diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8ebb1ec..d51f9f1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -93,13 +93,19 @@ Results A description and comparison of results (e.g. how the change improved results over the non-changed algorithm), if applicable. +Please link the associated pull request, e.g., `Pull Request #4 `_. Include the expected results from the work that originally proposed the method (e.g. original paper). +How to replicate the results? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + Include the code to replicate these results or a link to repository/branch where the code can be found. Use `rl-baselines3-zoo `_ if possible, fork it, create a new branch and share the code to replicate results there. +If applicable, please also provide the command to replicate the plots. + Comments -------- diff --git a/docs/_static/img/logo.png~ b/docs/_static/img/logo.png~ deleted file mode 100644 index ef592f503b8918c5ff916a7648db91c24a5d659a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160152 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⋘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 environments. For that, a wrapper exists and .. will compute a running average and standard deviation of input features (it can do the same for rewards). .. - +.. .. .. note:: .. .. you need to install pybullet with ``pip install pybullet`` diff --git a/docs/index.rst b/docs/index.rst index d590f25..f701110 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -27,11 +27,11 @@ RL Baselines3 Zoo also offers a simple interface to train, evaluate agents and d guide/examples -.. .. toctree:: -.. :maxdepth: 1 -.. :caption: RL Algorithms -.. -.. modules/a2c +.. toctree:: + :maxdepth: 1 + :caption: RL Algorithms + + modules/tqc .. .. toctree:: .. :maxdepth: 1 diff --git a/docs/misc/changelog.rst b/docs/misc/changelog.rst index db44b6d..f2ea8b0 100644 --- a/docs/misc/changelog.rst +++ b/docs/misc/changelog.rst @@ -12,6 +12,7 @@ Breaking Changes: New Features: ^^^^^^^^^^^^^ +- Added ``TQC`` algorithm (@araffin) Bug Fixes: ^^^^^^^^^^ diff --git a/docs/modules/tqc.rst b/docs/modules/tqc.rst new file mode 100644 index 0000000..28279c7 --- /dev/null +++ b/docs/modules/tqc.rst @@ -0,0 +1,168 @@ +.. _tqc: + +.. automodule:: sb3_contrib.tqc + + +TQC +=== + +Controlling Overestimation Bias with Truncated Mixture of Continuous Distributional Quantile Critics (TQC). +Truncated Quantile Critics (TQC) builds on SAC, TD3 and QR-DQN, making use of quantile regression to predict a distribution for the value function (instead of a mean value). +It truncates the quantiles predicted by different networks (a bit as it is done in TD3). + + +.. rubric:: Available Policies + +.. autosummary:: + :nosignatures: + + MlpPolicy + CnnPolicy + + +Notes +----- + +- Original paper: https://arxiv.org/abs/2005.04269 +- Original Implementation: https://github.com/bayesgroup/tqc_pytorch + + +Can I use? +---------- + +- Recurrent policies: ❌ +- Multi processing: ❌ +- Gym spaces: + + +============= ====== =========== +Space Action Observation +============= ====== =========== +Discrete ❌ ✔️ +Box ✔️ ✔️ +MultiDiscrete ❌ ✔️ +MultiBinary ❌ ✔️ +============= ====== =========== + + +Example +------- + +.. code-block:: python + + import gym + import numpy as np + + from sb3_contrib import TQC + + env = gym.make("Pendulum-v0") + + policy_kwargs = dict(n_critics=2, n_quantiles=25) + model = TQC("MlpPolicy", env, top_quantiles_to_drop_per_net=2, verbose=1, policy_kwargs=policy_kwargs) + model.learn(total_timesteps=10000, log_interval=4) + model.save("tqc_pendulum") + + del model # remove to demonstrate saving and loading + + model = TQC.load("tqc_pendulum") + + obs = env.reset() + while True: + action, _states = model.predict(obs, deterministic=True) + obs, reward, done, info = env.step(action) + env.render() + if done: + obs = env.reset() + + +Results +------- + +Result on the PyBullet benchmark (1M steps) and on BipedalWalkerHardcore-v3 (2M steps) +using 3 seeds. +The complete learning curves are available in the `associated PR `_. + +The main difference with SAC is on harder environments (BipedalWalkerHardcore, Walker2D). + + +.. note:: + + Hyperparameters from the `gSDE paper `_ were used (as they are tuned for SAC on PyBullet envs), + including using gSDE for the exploration and not the unstructured Gaussian noise + but this should not affect results in simulation. + + +.. note:: + + We are using the open source PyBullet environments and not the MuJoCo simulator (as done in the original paper). + You can find a complete benchmark on PyBullet envs in the `gSDE paper `_ + if you want to compare TQC results to those of A2C/PPO/SAC/TD3. + + +===================== ============ ============ +Environments SAC TQC +===================== ============ ============ +\ gSDE gSDE +HalfCheetah 2984 +/- 202 3041 +/- 157 +Ant 3102 +/- 37 3700 +/- 37 +Hopper 2262 +/- 1 2401 +/- 62* +Walker2D 2136 +/- 67 2535 +/- 94 +BipedalWalkerHardcore 13 +/- 18 228 +/- 18 +===================== ============ ============ + +\* with tuned hyperparameter ``top_quantiles_to_drop_per_net`` taken from the original paper + + +How to replicate the results? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Clone RL-Zoo and checkout the branch ``feat/tqc``: + +.. code-block:: bash + + git clone https://github.com/DLR-RM/rl-baselines3-zoo + cd rl-baselines3-zoo/ + git checkout feat/tqc + +Run the benchmark (replace ``$ENV_ID`` by the envs mentioned above): + +.. code-block:: bash + + python train.py --algo tqc --env $ENV_ID --eval-episodes 10 --eval-freq 10000 + + +Plot the results: + +.. code-block:: bash + + python scripts/all_plots.py -a tqc -e HalfCheetah Ant Hopper Walker2D BipedalWalkerHardcore -f logs/ -o logs/tqc_results + python scripts/plot_from_file.py -i logs/tqc_results.pkl -latex -l TQC + +Comments +-------- + +This implementation is based on SB3 SAC implementation and uses the code from the original TQC implementation for the quantile huber loss. + + +Parameters +---------- + +.. autoclass:: TQC + :members: + :inherited-members: + +.. _tqc_policies: + +TQC Policies +------------- + +.. autoclass:: MlpPolicy + :members: + :inherited-members: + +.. autoclass:: sb3_contrib.tqc.policies.TQCPolicy + :members: + :noindex: + +.. autoclass:: CnnPolicy + :members: diff --git a/sb3_contrib/tqc/policies.py b/sb3_contrib/tqc/policies.py index f728c3a..788a7ba 100644 --- a/sb3_contrib/tqc/policies.py +++ b/sb3_contrib/tqc/policies.py @@ -5,7 +5,13 @@ import torch as th from stable_baselines3.common.distributions import SquashedDiagGaussianDistribution, StateDependentNoiseDistribution from stable_baselines3.common.policies import BaseModel, BasePolicy, create_sde_features_extractor, register_policy from stable_baselines3.common.preprocessing import get_action_dim -from stable_baselines3.common.torch_layers import BaseFeaturesExtractor, FlattenExtractor, NatureCNN, create_mlp +from stable_baselines3.common.torch_layers import ( + BaseFeaturesExtractor, + FlattenExtractor, + NatureCNN, + create_mlp, + get_actor_critic_arch, +) from torch import nn as nn # CAP the standard deviation of the actor @@ -306,6 +312,8 @@ class TQCPolicy(BasePolicy): else: net_arch = [] + actor_arch, critic_arch = get_actor_critic_arch(net_arch) + # Create shared features extractor self.features_extractor = features_extractor_class(self.observation_space, **self.features_extractor_kwargs) self.features_dim = self.features_extractor.features_dim @@ -317,12 +325,11 @@ class TQCPolicy(BasePolicy): "action_space": self.action_space, "features_extractor": self.features_extractor, "features_dim": self.features_dim, - "net_arch": self.net_arch, + "net_arch": actor_arch, "activation_fn": self.activation_fn, "normalize_images": normalize_images, } self.actor_kwargs = self.net_args.copy() - self.critic_kwargs = self.net_args.copy() sde_kwargs = { "use_sde": use_sde, "log_std_init": log_std_init, @@ -331,7 +338,8 @@ class TQCPolicy(BasePolicy): "clip_mean": clip_mean, } self.actor_kwargs.update(sde_kwargs) - tqc_kwargs = {"n_quantiles": n_quantiles, "n_critics": n_critics} + self.critic_kwargs = self.net_args.copy() + tqc_kwargs = {"n_quantiles": n_quantiles, "n_critics": n_critics, "net_arch": critic_arch} self.critic_kwargs.update(tqc_kwargs) self.actor, self.actor_target = None, None self.critic, self.critic_target = None, None @@ -356,7 +364,7 @@ class TQCPolicy(BasePolicy): data.update( dict( - net_arch=self.net_args["net_arch"], + net_arch=self.net_arch, activation_fn=self.net_args["activation_fn"], use_sde=self.actor_kwargs["use_sde"], log_std_init=self.actor_kwargs["log_std_init"], diff --git a/sb3_contrib/tqc/tqc.py b/sb3_contrib/tqc/tqc.py index ea6818e..d8fd647 100644 --- a/sb3_contrib/tqc/tqc.py +++ b/sb3_contrib/tqc/tqc.py @@ -16,6 +16,7 @@ class TQC(OffPolicyAlgorithm): Controlling Overestimation Bias with Truncated Mixture of Continuous Distributional Quantile Critics. Paper: https://arxiv.org/abs/2005.04269 + This implementation uses SB3 SAC implementation as base. :param policy: The policy model to use (MlpPolicy, CnnPolicy, ...) :param env: The environment to learn from (if registered in Gym, can be str) @@ -169,6 +170,14 @@ class TQC(OffPolicyAlgorithm): @staticmethod def quantile_huber_loss(quantiles: th.Tensor, samples: th.Tensor) -> th.Tensor: + """ + The quantile-regression loss, as described in the QR-DQN and TQC papers. + Taken from https://github.com/bayesgroup/tqc_pytorch + + :param quantiles: + :param samples: + :return: the loss + """ # batch x nets x quantiles x samples pairwise_delta = samples[:, None, None, :] - quantiles[:, :, :, None] abs_pairwise_delta = th.abs(pairwise_delta) @@ -251,7 +260,7 @@ class TQC(OffPolicyAlgorithm): self.critic.optimizer.step() # Compute actor loss - qf_pi = self.critic(replay_data.observations, actions_pi).mean(2).mean(1, keepdim=True) + qf_pi = self.critic(replay_data.observations, actions_pi).mean(dim=2).mean(dim=1, keepdim=True) actor_loss = (ent_coef * log_prob - qf_pi).mean() actor_losses.append(actor_loss.item()) @@ -299,19 +308,10 @@ class TQC(OffPolicyAlgorithm): ) def _excluded_save_params(self) -> List[str]: - """ - Returns the names of the parameters that should be excluded by default - when saving the model. - - :return: List of parameters that should be excluded from save - """ # Exclude aliases return super(TQC, self)._excluded_save_params() + ["actor", "critic", "critic_target"] def _get_torch_save_params(self) -> Tuple[List[str], List[str]]: - """ - cf base class - """ state_dicts = ["policy", "actor.optimizer", "critic.optimizer"] saved_pytorch_variables = ["log_ent_coef"] if self.ent_coef_optimizer is not None: