多任务学习的避冲突梯度下降(CAGrad)
本仓库包含CAGrad的源代码,该方法已被NeurIPS 2021接收。
2023年11月9日更新: 我们发布了一种改进方法FAMO,这是一种新颖的多任务/多目标优化器,无需计算所有任务梯度即可平衡不同目标。主要思想是:1)尽可能确保所有任务目标以相等的速率优化,2)随时间分摊计算,如果是多目标优化,我们就不需要计算所有任务梯度。
2021年11月22日更新: 感谢@lushleaf发现将最后一个backward(retain_graph=True)
替换为backward()
可以节省大量GPU内存。
玩具优化问题
运行玩具示例:
python toy.py
图像到图像预测
监督多任务学习实验在NYU-v2和CityScapes数据集上进行。我们遵循MTAN的设置。数据集可以从NYU-v2和CityScapes下载。下载数据集后,请按照每个文件夹中的相应run.sh脚本操作。特别是,将dataroot变量修改为下载的数据集路径。
多任务强化学习(MTRL)
MTRL实验在Metaworld基准测试上进行。特别地,我们遵循mtrl代码库和这篇论文中的实验设置。
-
按照说明安装mtrl。
-
Git克隆Metaworld并切换到
d9a75c451a15b0ba39d8b7a8b6d18d883b8655d8
提交(2021年2月26日)。相应地安装metaworld。 -
将本仓库mtrl下的
mtrl_files
文件夹复制到克隆的mtrl仓库中。然后
cd PATH_TO_MTRL/mtrl_files/ && chmod +x mv.sh && ./mv.sh
然后按照run.sh
脚本运行实验(我们仍在测试结果,但代码应该可以运行)。
实践中求解对偶优化问题
引用
如果您觉得我们的工作有趣或仓库有用,请考虑引用这篇论文:
@article{liu2021conflict,
title={Conflict-Averse Gradient Descent for Multi-task Learning},
author={Liu, Bo and Liu, Xingchao and Jin, Xiaojie and Stone, Peter and Liu, Qiang},
journal={Advances in Neural Information Processing Systems},
volume={34},
year={2021}
}
@misc{liu2023famo,
title={FAMO: Fast Adaptive Multitask Optimization},
author={Bo Liu and Yihao Feng and Peter Stone and Qiang Liu},
year={2023},
eprint={2306.03792},
archivePrefix={arXiv},
primaryClass={cs.LG}
}