Hallucinative Topological Memory (HTM) tackles the problem of Visual Planning in which an agent learns to plan goal-directed behavior from observations of a dynamical system obtained offline, e.g., images obtained from self-supervised robot interaction. In particular, HTM learns an energy-based model based on contrastive loss and a conditional VAE model that generates samples given a context image of a new domain. It uses these hallucinated samples for nodes, and energy-based model for the connectivity to build a planning graph. HTM allows for zero-shot generalization to domain changes.
The environment currently consists of a Block Wall domain (see https://arxiv.org/abs/2002.12336) made easy for testing zero-shot generalization.
- Install standard ML libraries through pip/conda and Mujoco.
- Change file to execution mode by
chmod +x scripts/collect-data.sh
- Run
./scripts/collect-data.sh
to collect data, or download the training and test data here.
- Change to execution mode and run
./scripts/train_vae.sh
. - Change to execution mode and run
./scripts/train_actor.sh
. - Change to execution mode and run
./scripts/train_cpc.sh
.
- Change mode and run
./scripts/evaluate.sh