/auto-drac

Automatic Data-Regularized Actor-Critic (Auto-DrAC)

Primary LanguagePythonMIT LicenseMIT

Auto-DrAC: Automatic Data-Regularized Actor-Critic

This is a PyTorch implementation of the methods proposed in

Automatic Data Augmentation for Generalization in Deep Reinforcement Learning by

Roberta Raileanu, Max Goldstein, Denis Yarats, Ilya Kostrikov, and Rob Fergus.

Citation

If you use this code in your own work, please cite our paper:

@article{raileanu2020automatic,
  title={Automatic Data Augmentation for Generalization in Deep Reinforcement Learning},
  author={Raileanu, Roberta and Goldstein, Max and Yarats, Denis and Kostrikov, Ilya and Fergus, Rob},
  journal={arXiv preprint arXiv:2006.12862},
  year={2020}
}

Requirements

The code was run on a GPU with CUDA 10.2. To install all the required dependencies:

conda create -n auto-drac python=3.7
conda activate auto-drac

git clone git@github.com:rraileanu/auto-drac.git
cd auto-drac
pip install -r requirements.txt

git clone https://github.com/openai/baselines.git
cd baselines 
python setup.py install 

pip install procgen

Instructions

cd auto-drac

Train DrAC with crop augmentation on BigFish

python train.py --env_name bigfish --aug_type crop

Train UCB-DrAC on BigFish

python train.py --env_name bigfish --use_ucb

Train RL2-DrAC on BigFish

python train.py --env_name bigfish --use_rl2

Train Meta-DrAC on BigFish

python train.py --env_name bigfish --use_meta

Procgen Results

UCB-DrAC achieves state-of-the-art performance on the Procgen benchmark (easy mode), significantly improving the agent's generalization ability over standard RL methods such as PPO.

Test Results on Procgen

Procgen Test

Train Results on Procgen

Procgen Train

Agent Videos

You can find some videos of the agent's behavior while training on our website.

Acknowledgements

This code was based on an open sourced PyTorch implementation of PPO.

We also used kornia for some of the augmentations.