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.
| Repository | Role | Ran |
|---|---|---|
| IntelVCL/MultiObjectiveOptimization | canonical | 10 of 10 |
| hav4ik/Hydra | pwc_unofficial | 0 of 9 |
| Function | Status | Where 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") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
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.
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.