ContinuousParetoMTL
[ICML 2020] Efficient Continuous Pareto Exploration in Multi-Task Learning
Install / Use
/learn @mit-gfx/ContinuousParetoMTLREADME
Efficient Continuous Pareto Exploration in Multi-Task Learning

Pingchuan Ma*, Tao Du*, and Wojciech Matusik
ICML 2020 [Project Page] [Paper] [Video] [Slides]
@inproceedings{ma2020efficient,
title={Efficient Continuous Pareto Exploration in Multi-Task Learning},
author={Ma, Pingchuan and Du, Tao and Matusik, Wojciech},
booktitle={International Conference on Machine Learning},
pages={6522--6531},
year={2020},
organization={PMLR}
}
Quick Start
Online demos for MultiMNIST and UCI-Census are available in Google Colab! Try them now!
Prerequisites
- Ubuntu 16.04 or higher;
- conda 4.8 or higher.
Installation
We will use $ROOT to refer to the root folder where you want to put this project in. We compiled continuous pareto MTL into a package pareto for easier deployment and application.
cd $ROOT
git clone https://github.com/mit-gfx/ContinuousParetoMTL.git
cd ContinuousParetoMTL
conda env create -f environment.yml
conda activate cpmtl
python setup.py install
Example for MultiMNIST
After pareto is installed, we are free to call any primitive functions and classes which are useful for Pareto-related tasks, including continuous Pareto exploration. We provide an example for MultiMNIST dataset, which can be found by:
cd multi_mnist
First, we run weighted sum method for initial Pareto solutions:
python weighted_sum.py
The output should be like:
0: loss [2.313036/2.304537] top@1 [7.65%/10.65%]
0: 1/30: loss [1.463346/0.909529] top@1 [51.52%/69.72%]
0: 2/30: loss [0.889257/0.638646] top@1 [71.29%/78.55%]
0: 3/30: loss [0.703745/0.534612] top@1 [77.77%/81.86%]
0: 4/30: loss [0.622291/0.491764] top@1 [80.13%/83.02%]
Based on these starting solutions, we can run our continuous Pareto exploration by:
python cpmtl.py
The output should be like:
0: 1/10: loss [0.397692/0.350267] top@1 [86.57%/88.11%]
86.37% 86.57% Δ=0.20% absΔ=0.20%
88.10% 88.11% Δ=0.01% absΔ=0.01%
0: 2/10: loss [0.392314/0.351280] top@1 [86.85%/88.07%]
86.37% 86.57% 86.85% Δ=0.28% absΔ=0.48%
88.10% 88.11% 88.07% Δ=-0.04% absΔ=-0.03%
0: 3/10: loss [0.387585/0.352643] top@1 [86.92%/88.03%]
86.37% 86.57% 86.85% 86.92% Δ=0.07% absΔ=0.55%
88.10% 88.11% 88.07% 88.03% Δ=-0.04% absΔ=-0.07%
Now you can play it on your own dataset and network architecture!
Jupyter Notebooks for Submission
Open up a terminal to launch Jupyter:
cd submission
jupyter notebook
You can run the following Jupyter script to reproduce figures in the paper:
fig2.ipynb
fig3.ipynb
fig4.ipynb
fig5_multimnist.ipynb
fig5_uci.ipynb
Contact
If you have any questions about the paper or the codebase, please feel free to contact pcma@csail.mit.edu or taodu@csail.mit.edu.
Related Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
400Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
last30days-skill
19.9kAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
