Home

Awesome

Meta-Learning without Memorization

In this paper, we address the memorization problem by designing a meta-regularization objective using information theory that places precedence on data-driven adaptation. This causes the meta-learner to decide what must be learned from the task training data and what should be inferred from the task testing input. By doing so, our algorithm can successfully use data from non-mutually-exclusive tasks to efficiently adapt to novel tasks. We demonstrate its applicability to both contextual and gradient-based meta-learning algorithms, and apply it in practical settings where applying standard meta-learning has been difficult. Our approach substantially outperforms standard meta-learning algorithms in these settings.

Below is the paper to cite if you find the algorithms in this repository useful in your own research:

@inproceedings{yin2020metalearning,
  title={Meta-Learning without Memorization},
  author={Mingzhang Yin and George Tucker and Mingyuan Zhou and Sergey Levine and Chelsea Finn},
  booktitle={International Conference on Learning Representations},
  year={2020},
}

This repository:

Generating pose regression dataset

Requirements:

Step 1: Download CAD models from Beyond PASCAL: A Benchmark for 3D Object Detection in the Wild ftp://cs.stanford.edu/cs/cvgl/PASCAL3D+_release1.1.zip and use the CAD folder.

We removed the two classes 'bottle' and 'train' because the objects are symmetric.

Step 2: Convert the CAD models from *.off to *.stl.

You can download a converter from https://www.patrickmin.com/meshconv. Then, run

chmod 755 meshconv
find ./CAD -maxdepth 2 -mindepth 2 -name "*.off" -exec meshconv -c stl {} \;

Step 3: Render the dataset. Using the utilities in pose_data

CAD_DIR=
DATA_DIR=
python mujoco_render.py --CAD_dir=${CAD_DIR} --data_dir=${DATA_DIR}
cp -r ${DATA_DIR}/rotate ${DATA_DIR}/rotate_resize
python resize_images.py --data_dir=${DATA_DIR}/rotate_resize
python data_gen.py --data_dir=${DATA_DIR}/rotate_resize

This generates two pickle files: train_data.pkl and val_data.pkl.

Train models on pose regression dataset

pip install tensorflow==1.14
pip install tensorflow-probability==0.7

See pose_code/run.sh for examples of training the various algorithms.

This is not an officially supported Google product. It is maintained by George Tucker (gjt@google.com, @georgejtucker, github user: gjtucker).