找回密码
 立即注册
首页 业界区 业界 基于梯度组合的多任务 / 多目标学习

基于梯度组合的多任务 / 多目标学习

副我 前天 18:10
多任务学习一直是机器学习中的一个诱人愿景:让单个模型同时掌握多项技能,像人类一样举一反三,提升数据利用效率。然而,在现实中,同时学习多个任务,效果有时还不如为每个任务单独训练一个模型。
其核心矛盾在于:不同任务的梯度(指导模型更新的方向)经常“打架”。有的梯度幅值大,有的方向完全相反。简单地将梯度加起来更新,模型就会被大梯度或某个特定任务“带偏”,导致其他任务学不好。
学术界提出了一系列基于梯度组合的方法,它们通过加权、投影、统一符号等方式,调和梯度冲突,并保证梯度优化可以收敛到多任务学习的纳什均衡解。

目录

  • 经典文章

    • [ICML 2018] GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks
    • [NeurIPS 2018] Multi-Task Learning as Multi-Objective Optimization (MGDA-UB)
    • [NeurIPS 2020] Just Pick a Sign: Optimizing Deep Multitask Models with Gradient Sign Dropout (GradDrop)
    • [NeurIPS 2020] Gradient Surgery for Multi-Task Learning (PCGrad)
    • [NeurIPS 2021] Conflict-Averse Gradient Descent for Multi-task learning (CAGrad)
    • [ICML 2022] Multi-Task Learning as a Bargaining Game (Nash-MTL)
    • [NeurIPS 2023] Direction-oriented Multi-objective Learning: Simple and Provable Stochastic Algorithms (SDMGrad)
    • [NeurIPS 2023] FAMO: Fast Adaptive Multitask Optimization

  • 将梯度组合方法应用在 LLM 领域

经典文章

[ICML 2018] GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks


  • arxiv:https://arxiv.org/abs/1711.02257
  • 参考博客:CSDN | GradNorm:多任务学习中的梯度平衡方法
根据各个任务 loss 下降的速度,动态调节每个任务的权重。希望学得慢的任务获得更大的梯度,学得快的任务则减小梯度。
[NeurIPS 2018] Multi-Task Learning as Multi-Objective Optimization (MGDA-UB)


  • arxiv:https://arxiv.org/abs/1810.04650
  • 参考博客:CSDN | MGDA-UB:寻找多任务学习中的帕累托最优,缓解任务冲突问题
是 MGDA 方法的直接改进。
MGDA 希望求解各个梯度 \(\nabla_\theta L_i\) 之间的凸组合:找权重 \(\alpha\),\(\sum_i \alpha_i = 1\),让加权后的梯度 \(\|\sum_i \alpha_i \nabla_\theta L_i\|^2\) 的二范数最小。
[NeurIPS 2020] Just Pick a Sign: Optimizing Deep Multitask Models with Gradient Sign Dropout (GradDrop)


  • arxiv:https://arxiv.org/abs/2010.06808
  • 参考博客:CSDN | GradDrop:让多任务学习不再“梯度拔河”
对于每一个参数,GradDrop 只允许一个“方向”的更新(要么全增加,要么全减少),但保留这个方向上所有的“力量”。与其让正负梯度在“拔河”中相互抵消,不如在每次更新时,统一所有梯度的方向(符号)。
对于每个参数位置,我们汇集所有任务在该处的梯度值,计算一个梯度符号纯度分数。然后,生成一个 0 到 1 之间的随机数,与纯度比较,如果纯度 > 随机数,则保留所有正梯度,丢弃所有负梯度,纯度 < 随机数则相反。
[NeurIPS 2020] Gradient Surgery for Multi-Task Learning (PCGrad)


  • arxiv:https://arxiv.org/abs/2001.06782
  • GitHub:https://github.com/WeiChengTseng/Pytorch-PCGrad
  • 参考博客:CSDN | PCGrad:通过梯度手术,让多任务学习不再“左右互搏”
又是 tianhe yu 的工作。
做了 RL task。
如果两个任务的梯度方向冲突(余弦相似度 < 0,即夹角 > 90°),就把每个梯度投影到另一个梯度的“垂直平面”上,去掉冲突部分。
[NeurIPS 2021] Conflict-Averse Gradient Descent for Multi-task learning (CAGrad)


  • arxiv:https://arxiv.org/abs/2110.14048
  • OpenReview:https://openreview.net/forum?id=61Qh8tULj
  • GitHub:https://github.com/Cranial-XIX/CAGrad
  • MTRL 的 GitHub:https://github.com/facebookresearch/mtrl
  • 参考博客:CSDN | CAGrad:保证收敛到平均损失最小的多任务梯度算法
做了 RL task,好像 RL task 的代码开源了。
CAGrad 在平均梯度附近寻找一个更新方向,让所有任务中损失下降最慢的那个任务 也能得到提升,从而平衡各任务,同时还能保证最终收敛到平均损失的最小值。
[ICML 2022] Multi-Task Learning as a Bargaining Game (Nash-MTL)


  • arxiv:https://arxiv.org/abs/2202.01017
  • GitHub:https://github.com/AvivNavon/nash-mtl
  • 参考博客:CSDN | Nash-MTL:在多任务梯度组合中引入纳什谈判解
做了 RL task。
Nash-MTL 的理论:对各个 task i,希望求解梯度 \(\Delta\theta\) 最大化 \(\sum\log g_i^\top \Delta\theta\) 。这样的 \(\Delta\theta\) 方向是唯一的,模长 原文有说法。
[NeurIPS 2023] Direction-oriented Multi-objective Learning: Simple and Provable Stochastic Algorithms (SDMGrad)


  • arxiv:https://arxiv.org/abs/2305.18409
  • GitHub:https://github.com/OptMN-Lab/SDMGrad
  • 主要内容:感觉是 CAGrad 的直接改进,但把 CAGrad 限制梯度一定要在平均 loss 下降方向的一个球内,这个约束换成了 λ 加权的惩罚,因为这个新形式天然允许构造一个无偏的随机梯度估计器。
做了 RL task。
[NeurIPS 2023] FAMO: Fast Adaptive Multitask Optimization


  • arxiv:https://arxiv.org/abs/2306.03792
  • GitHub:https://github.com/Cranial-XIX/FAMO
可能直接有 Nash-MTL 的 MTRL 代码,不确定。
论文还没看。
将梯度组合方法应用在 LLM 领域

以下文章都是发表在质量高的会议上的,在学术的角度,应该可以算正样本。
还没具体看。
<ul>
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册