search based trajectories
Python
Switch branches/tags
Nothing to show
Clone or download
Latest commit 2869288 Jul 15, 2018
Permalink
Failed to load latest commit information.
examples link to models Jul 14, 2018
imgs added short page Jul 15, 2018
trajectories added short page Jul 15, 2018
.gitignore Initial commit Mar 28, 2018
LICENSE Initial commit Mar 28, 2018
README.md added short page Jul 15, 2018
icml18-vqvae-model-camera-ready.pdf added readme Jul 11, 2018
setup.py running model examples on erehwon May 26, 2018

README.md

Catching a moving goal in a dangerous world

Planning with anticipation using conditional generative models of the environment

alt_text

This gif shows our green MCTS agent trying to catch the yellow goal while avoiding the cyan/blue obstacles. We learned a dynamics model of the agent-independent environment and use this imagined future to select actions at every state.

The below image shows the same episode as above with the imagined future model depicted. The first column is the observed state, the second column is the oracle rollout (for human reference only) and the third column is the model rollout that the agent used for planning. The fourth column describes model error where red pixels are false negatives (predicted free space where there is an obstacle) and blue pixels indicate false positives (predicted obstacle where there was free space). In the error plot, the predicted goal is plotted in orange over the true yellow goal.

alt_text

More agent examples can be found at https://imgur.com/a/6DJbrB1


Implementation

Please refer to our paper presented at the PGMRL Workshop at ICML 2018 for implementation details.

To run our example:

  1. Create a directory named './../models/' and download our trained models into it: pretrained-models

  2. Run the agent with desired arguments: roadway_model.py

To train the environment model, complete the following steps:

  1. Generate a training set in pixel-space of the environment: road.py.

  2. Train VQ-VAE to learn a discrete latent representation of individual frames: train_vqvae.py.

  3. Train a PixelCNN on the latent space: train_pixel_cnn.py.

  4. Update the file paths for the agent and run the agent with desired arguments: roadway_model.py.


Below we demonstrate reconstruction error

Below is a demonstration of the reconstruction from our VQ-VAE model:

alt_text

Below is a demonstration of the reconstruction from our VAE model:

alt_text


Acknowledgements

We based our VQ-VAE implementation on the excellent code from @Ritesh Kumar. The implementation of discretized logistic mixture loss we use is from @Lucas Caccia.

Thanks to @kastnerkyle for discussions and advice on all things.