Uncertainty-based Continual Learning with Adaptive Regularization (UCL), published at NeurIPS 2019
Hongjoon Ahn, Sungmin Cha, Donggyu Lee, and Taesup Moon
M.IN.D Lab, Sungkyunkwan University
$ python3 main.py --experiment pmnist --approach ucl --beta 0.03 --ratio 0.5 --lr_rho 0.001 --alpha 0.01
$ python3 main.py --experiment split_cifar10_100 --approach ucl --conv-net --beta 0.0002 --ratio 0.125 --lr_rho 0.01 --alpha 0.3
$ python3 main.py --experiment split_cifar100 --approach ucl --conv-net --beta 0.002 --ratio 0.125 --lr_rho 0.01 --alpha 5
$ python3 main.py --experiment omniglot --approach ucl --conv-net --beta 0.00001 --ratio 0.5 --lr_rho 0.02 --alpha 5
Note that, in all commands. alpha is the weight decay penalty strength for first task. And, all the commands are based on our new initialization technique, which is introduced in Appendix of our paper.
This repository also contains the implementations for baselines, such as EWC, SI, RWALK, MAS, and HAT.
- Python 3.6
- Pytorch 1.2.0+cu9.2 / CUDA 9.2
- OpenAI Gym, Baselines, Roboschool
This code is implemented by reference to pytorch-a2c-ppo-acktr-gaail
Follow below links for installation
OpenAI Gym, Baselines, Roboschool
# Fine-tuning
$ CUDA_VISIBLE_DEVICES=0 python3 main_rl.py --experiment 'roboschool' --approach ‘fine-tuning’ --date 191014
# EWC
$ CUDA_VISIBLE_DEVICES=0 python3 main_rl.py --experiment 'roboschool' --approach 'ewc' --ewc-lambda 5000 --date 191014
# AGS-CL
$ CUDA_VISIBLE_DEVICES=0 python3 main_rl.py --experiment 'roboschool' --approach ‘ucl’ --ucl-rho -2.2522 -ucl-beta 0.001 --date 191014
@inproceedings{ahn2019uncertainty,
title={Uncertainty-based continual learning with adaptive regularization},
author={Ahn, Hongjoon and Cha, Sungmin and Lee, Donggyu and Moon, Taesup},
booktitle={Advances in Neural Information Processing Systems},
pages={4394--4404},
year={2019}
}
Reference
- Bayesian neural network implementation has been modified from: https://github.com/nitarshan/bayes-by-backprop/blob/master/Weight%20Uncertainty%20in%20Neural%20Networks.ipynb
- The whole experiment framework has been modified from: https://github.com/joansj/hat