Experiments on Model-Agnostic Meta-Learning PDF
Exploring the effects of the Model-Agnostic Meta-Learning algorithms MAML & ANIL on Vision and meta-RL tasks. Including Representation similarity experiments for further insights on the network dynamics during meta-testing (adaptation) and Continual Learning experiments to test their ability to adapt without forgetting. Feel free to checkout the whole M.Sc Thesis on here
Check out some of our runs & results in our W&B Project
NOTE: This repo was build with Meta-World experiments in mind and thus depends on the proprietary environment MuJoCo. So you would need to first get a license for that and install it before you can run the experiments of this repo (Yes, even for the vision or RL-but-not-Meta-World experiments it's required, I am working on separating this dependency)
- Clone the repo
git clone https://github.com/github_username/repo_name.git
1b. (Optional, but highly recommended) Make a virtual environment
python3 -m venv meta_env
or virtualenv meta_env
- Install Cython:
pip install cython
- Install core dependencies
pip install -r requirements.txt
- (Optional) You can easily track models with W&B
pip install wandb
Currently implemented:
- MAML with CNN
- ANIL with CNN
- MAML-PPO
- MAML-TRPO
- ANIL-PPO
- ANIL-TRPO
- Baselines: PPO, TRPO & VPG
Check branches:
- Procgen (it works, but incredibly difficult to train)
- MAML/ANIL - VPG (very unstable)
For a walk-through of the code for vision datasets check here.
core_functions: Functions necessary to train & evaluate RL and Vision
utils: Functions for data processing, environment making etc (not related to algorithms)
baselines: Scripts to train & evaluate RL and vision
rl: Scripts to train & evaluate meta-RL
vision: Scripts to train & evaluate meta-vision
misc_scripts: Scripts to run Continual Learning & Representation Change experiments or to render trained policies in Meta-World
python3 rl/maml_trpo.py --outer_lr 0.1 --adapt_steps 3
If you get import errors, add the project's root to PYTHONPATH. Make sure the content root is added to the PYTHONPATH in the configuration or in the .bashrc file add export PYTHONPATH="${PYTHONPATH}:~/Path/to/project"
Distributed under the MIT License. See LICENSE
for more information.
Konstantinos Saitas - Zarkias (Kostis S-Z)
Feel free to open an issue for anything related to this repo.
Project Link: https://github.com/Kostis-S-Z/exploring_meta
Many thanks to fellow researchers & colleagues at RISE, KTH and Séb Arnold from the learn2learn team for insightful discussions about this project.