SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 1810.04650 · 2018

Multi-Task Learning as Multi-Objective Optimization

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 19 functions out of this paper's own repositories and ran 10 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
IntelVCL/MultiObjectiveOptimization canonical 10 of 10
hav4ik/Hydra pwc_unofficial 0 of 9
FunctionStatusWhere it lives
conv3x3 Ran IntelVCL/MultiObjectiveOptimization/multi_task/models/pspnet.py
code served (permissive licence) · get_code("dbcb53696bc43ef9")
conv3x3 Ran IntelVCL/MultiObjectiveOptimization/multi_task/models/resnet_mit.py
code served (permissive licence) · get_code("90e50bc6f1220bdd")
conv3x3_bn_relu Ran IntelVCL/MultiObjectiveOptimization/multi_task/models/pspnet.py
code served (permissive licence) · get_code("fca7e85d958618dd")
cross_entropy2d Ran IntelVCL/MultiObjectiveOptimization/multi_task/losses.py
code served (permissive licence) · get_code("36497fd5247322ab")
get_metrics Ran IntelVCL/MultiObjectiveOptimization/multi_task/metrics.py
code served (permissive licence) · get_code("7adcc62e674f9a40")
gradient_normalizers Ran IntelVCL/MultiObjectiveOptimization/multi_task/min_norm_solvers.py
code served (permissive licence) · get_code("faa96c0ba935fc57")
l1_loss_depth Ran IntelVCL/MultiObjectiveOptimization/multi_task/losses.py
code served (permissive licence) · get_code("e870ff8870d18569")
nll Ran IntelVCL/MultiObjectiveOptimization/multi_task/losses.py
code served (permissive licence) · get_code("a90eec2e662e141f")
resnet101 Ran IntelVCL/MultiObjectiveOptimization/multi_task/models/resnet_mit.py
code served (permissive licence) · get_code("deddf757c7ef17c5")
resnet50 Ran IntelVCL/MultiObjectiveOptimization/multi_task/models/resnet_mit.py
code served (permissive licence) · get_code("db1b66fff0c3985f")
clusterization_solver Not yet run hav4ik/Hydra/src/utils/graph_clustering.py
code served (permissive licence) · get_code("0cf665cadafb5228")
corrects Not yet run hav4ik/Hydra/src/utils/metrics.py
code served (permissive licence) · get_code("99fd754b42a655dc")
get_losses Not yet run hav4ik/Hydra/src/utils/losses.py
code served (permissive licence) · get_code("c500c5785882a8e8")
get_metrics Not yet run hav4ik/Hydra/src/utils/metrics.py
code served (permissive licence) · get_code("273e5eec3e68956d")
normalize_grads Not yet run hav4ik/Hydra/src/utils/grad_normalizers.py
code served (permissive licence) · get_code("66509d3a285284a7")
prepare_dirs Not yet run hav4ik/Hydra/src/utils/log_utils.py
code served (permissive licence) · get_code("3fc2b62ff7397e6f")
read_config Not yet run hav4ik/Hydra/src/utils/config_utils.py
code served (permissive licence) · get_code("aa26cdf2663e5a99")
toy Not yet run hav4ik/Hydra/src/datasets/toy.py
code served (permissive licence) · get_code("c3a6804df12ee19b")
update_config Not yet run hav4ik/Hydra/src/utils/config_utils.py
code served (permissive licence) · get_code("f54c9b3ef3fd24f0")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

In multi-task learning, multiple tasks are solved jointly, sharing inductive bias between them. Multi-task learning is inherently a multi-objective problem because different tasks may conflict, necessitating a trade-off. A common compromise is to optimize a proxy objective that minimizes a weighted linear combination of per-task losses. However, this workaround is only valid when the tasks do not compete, which is rarely the case. In this paper, we explicitly cast multi-task learning as multi-objective optimization, with the overall objective of finding a Pareto optimal solution. To this end, we use algorithms developed in the gradient-based multi-objective optimization literature. These algorithms are not directly applicable to large-scale learning problems since they scale poorly with the dimensionality of the gradients and the number of tasks. We therefore propose an upper bound for the multi-objective loss and show that it can be optimized efficiently. We further prove that optimizing this upper bound yields a Pareto optimal solution under realistic assumptions. We apply our method to a variety of multi-task deep learning problems including digit classification, scene understanding (joint semantic segmentation, instance segmentation, and depth estimation), and multi-label classification. Our method produces higher-performing models than recent multi-task learning formulations or per-task training.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("1810.04650")
get_code_for_paper("1810.04650")
have("1810.04650")

Connect an agent — have() is free.