20-Gradient Surgery for Multi-Task Learning

目录

解决问题

相关方法:

方法

问题定义:

[PCGrad 多任务梯度修正的迭代流程与核心细节](#PCGrad 多任务梯度修正的迭代流程与核心细节)

实验结论:

[图 4:PCGrad 理论条件的实证分析(基于 RL 任务训练过程)](#图 4:PCGrad 理论条件的实证分析(基于 RL 任务训练过程))

子图功能与结果解读

左图:多任务曲率的估计值

中图:梯度冲突与理论条件的满足比例

[右图:SAC 与 SAC+PCGrad 的任务平均回报](#右图:SAC 与 SAC+PCGrad 的任务平均回报)

核心结论与理论条件的关联

可借鉴:


解决问题

在本文中,我们识别出多任务优化 landscape 中导致有害梯度干扰 的三个关键条件,并提出一种简单且通用的方法来避免任务梯度间的此类干扰。我们设计了一种梯度修正策略 :对于存在梯度冲突的任意两个任务,将其中一个任务的梯度投影到另一个任务梯度的法平面上。在一系列具有挑战性的多任务监督学习和多任务强化学习问题中,该方法显著提升了学习效率和性能。此外,该方法具有模型无关性,可与现有多任务架构结合使用,进一步提升性能。

该方法的核心创新的是通过梯度投影消除冲突:对于任务 A 和任务 B,若梯度方向冲突(如夹角大于 90°),将任务 A 的梯度投影到任务 B 梯度的法平面上,得到新梯度 ------ 新梯度与任务 B 的梯度垂直,从而消除两者的冲突,让参数更新同时兼顾两个任务的优化需求。这种方式区别于 GradNorm 的 "梯度幅度调节",更侧重 "梯度方向修正",是解决梯度干扰的另一类核心思路。

作为一个直观示例,我们来看图 1a-c 中两个任务目标的二维优化空间。每个任务的优化空间都包含一条深谷 ------ 这一特性已在神经网络优化空间的研究中被观察到 22,且每个谷底的特征是高正曲率 与任务梯度幅度的巨大差异。在这种情况下,多任务总梯度会被其中一个任务的梯度主导,而这会以牺牲另一个任务的性能为代价。此外,由于高曲率的存在,主导任务的性能提升可能被高估,而非主导任务的性能下降则可能被低估。最终,优化器难以在整体优化目标上取得实质性进展。在图 1d 中,优化器虽已抵达任务 1 的深谷,但在 "梯度冲突、高曲率、梯度幅度差异大" 的参数区域(见图 1d 中绘制的梯度),无法沿着谷道继续推进优化。在 5.3 节中,我们通过实验发现,这种 "悲剧三要素" 在高维神经网络多任务学习问题中同样存在。

相关方法:

针对这类多任务学习问题,一种自然的解决方案是让网络联合训练所有任务,旨在挖掘任务间的共享结构,从而实现比独立解决单个任务更高的效率和性能。

然而,同时学习多个任务会带来严峻的优化挑战,有时甚至会导致整体性能和数据效率低于独立学习任务的情况 42, 50。

这类优化难题极为普遍,因此许多多任务强化学习算法采用了 "先独立训练,再蒸馏融合" 的思路:先将各任务独立训练为单独模型,再将这些独立模型蒸馏成一个多任务模型 32, 42, 50, 21, 56。这种方法虽能得到多任务模型,却丧失了多任务学习本应具备的效率优势。

方法

问题定义:

我们提出假设:多任务学习的核心优化问题源于冲突梯度------ 当不同任务的梯度内积为负时,表明它们方向相反(相互背离)。但冲突梯度本身并非有害:事实上,简单对任务梯度取平均,理论上应能获得多任务目标函数的最优下降方向。然而,在特定条件下,这类冲突梯度会导致性能显著下降。

以双任务优化问题为例:若一个任务的梯度幅度远大于另一个,前者会主导平均梯度;若任务梯度方向上同时存在高正曲率,则主导任务的性能提升可能被大幅高估,而非主导任务的性能下降可能被大幅低估。因此,我们将这三个条件的同时出现定义为 "悲剧三要素"(tragic triad),具体描述如下:(a) 多个任务的梯度存在冲突(方向相反);(b) 梯度幅度差异显著,导致部分任务梯度主导全局;(c) 多任务优化空间存在高曲率。

以下是三个条件的形式化定义:

在优化过程中,PCGrad 通过以下简洁流程消除梯度冲突:若两个任务的梯度存在冲突(即余弦相似度为负),则将每个任务的梯度投影到另一个任务梯度的法平面上。这一操作本质是移除梯度中与其他任务冲突的分量,从而减少任务间的破坏性梯度干扰。该核心思想的可视化示意如图 2 所示。

PCGrad 多任务梯度修正的迭代流程与核心细节

PCGrad 会按以下方式完成所有任务的梯度修正,确保批次内任务间的梯度干扰最小化:

  1. 批次任务遍历逻辑 :对于当前训练批次中的每个任务 \(T_i\)(目标任务),从批次内所有其他任务 \(T_j\)(\(j \neq i\),共 \(T-1\) 个任务,T 为批次内任务数)中随机采样并排序,按该随机顺序逐一处理每个 \(T_j\)。

  2. 迭代式梯度修正:对每个排序后的 \(T_j\),执行 "冲突判断→投影修正" 的流程(前文步骤 1-2):

    • 首次处理 \(T_j_1\) 时,用原始梯度 \(\mathbf{g}i\) 与 \(\mathbf{g}{j_1}\) 判断冲突,若冲突则投影修正,得到中间梯度 \(\mathbf{g}_i^{(1)}\);
    • 接着处理 \(T_j_2\) 时,用更新后的 \(\mathbf{g}i^{(1)}\) 与 \(\mathbf{g}{j_2}\) 判断冲突,若冲突则继续投影修正,得到 \(\mathbf{g}_i^{(2)}\);
    • 重复该过程直至遍历所有 \(T_j\),最终得到任务 \(T_i\) 的最终修正梯度 \(\mathbf{g}_i^{\text{PC}}\)。
  3. 全批次任务覆盖:对当前批次中的每个任务(\(T_1, T_2, ..., T_T\)),均执行上述 "随机遍历其他任务→迭代修正" 的流程,最终得到所有任务的修正梯度 \(\{\mathbf{g}_1^{\text{PC}}, \mathbf{g}_2^{\text{PC}}, ..., \mathbf{g}_T^{\text{PC}}\}\)。

  4. 参数更新:将所有修正后的梯度传入优化器(如 Adam、SGD),按多任务损失的梯度加权规则(\(\nabla L_{\text{total}} = \sum_i w_i \mathbf{g}_i^{\text{PC}}\),通常 \(w_i=1\))更新共享网络参数。

实验结论:

图 4:PCGrad 理论条件的实证分析(基于 RL 任务训练过程)

图 4 针对定理 2 中讨论的理论条件展开实证分析,展示了在两个强化学习任务("reach(抓取)" 和 "press button top(按压顶部按钮)")上训练前 100 轮的关键指标变化。

子图功能与结果解读
左图:多任务曲率的估计值

该图展示了训练过程中多任务曲率的动态变化,核心观察:训练全程均存在高多任务曲率。这为定理 2 中的条件(b)(高曲率)提供了直接实证支持 ------ 验证了 "悲剧三要素" 中的高曲率条件在实际多任务 RL 训练中持续存在,并非理论上的极端场景。

中图:梯度冲突与理论条件的满足比例
  • 实线:两个任务梯度间余弦相似度为正的迭代轮次占比(即非冲突梯度的比例);
  • 虚线:在余弦相似度为负的迭代轮次中,定理 2 的条件(a)(梯度冲突) 成立的比例;
  • 点划线:在余弦相似度为负的迭代轮次中,定理 2 条件(b)的推论(\(\xi(\mathbf{g}_1, \mathbf{g}_2) \leq 1\)) 成立的比例(\(\xi\) 为梯度相关的辅助指标,具体定义见定理 2)。

核心观察:

  • 对于 Adam 优化器(无 PCGrad)和 Adam+PCGrad 优化器,在尚未学会任务 2的阶段,条件(a)(梯度冲突)的满足比例始终处于高位(即梯度冲突频繁发生);
  • 一旦 Adam+PCGrad 开始学会任务 2(对应右图中任务 2 的回报上升),条件(a)的满足比例立即下降 ------ 说明 PCGrad 通过消除梯度冲突(打破条件(a)),推动了任务 2 的学习进程。
右图:SAC 与 SAC+PCGrad 的任务平均回报

该图对比了纯 SAC 算法与 SAC+PCGrad 算法在两个任务上的平均回报(回报越高,任务学习效果越好):

  • 纯 SAC 算法:任务 2 的回报长期处于低位,始终未能有效学会;
  • SAC+PCGrad 算法:训练后期任务 2 的回报显著上升,成功掌握任务,且任务 1 的回报未受影响(保持高位)。
核心结论与理论条件的关联

结合中图与右图的结果,可得出关键洞察:条件(a)(梯度冲突)是 PCGrad 在多任务学习中表现优异的核心原因------ 当梯度冲突频繁发生时(条件(a)成立比例高),纯 SAC 算法因冲突导致任务学习停滞;而 PCGrad 通过消除梯度冲突(降低条件(a)的成立比例),使任务 2 的学习取得实质性进展,最终实现多任务协同优化。

可借鉴:

相关方法:https://zhuanlan.zhihu.com/p/650920833

相关推荐
sell-cloud13 分钟前
Prompt Engineering要凉了?Fable 5.5能“猜“意图,但银行正在封杀AI Agent——企业AI的真正护城河是什么
人工智能·prompt
Navicat中国2 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
4SAPI2 小时前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
魔乐社区2 小时前
翼芯・智算测试与适配优化专区,让国产算力“选得准、跑得通、用得好“
人工智能·开源·大模型
XCDoris4 小时前
郴州logo设计机构
大数据·人工智能·python
Goboy4 小时前
一个人带三个Agent,我用全新TRAE从0到1搭了个资讯周刊站
人工智能·trae
俊哥V4 小时前
每日 AI 研究简报 · 2026-10-19
人工智能·ai
AI_AGENT_DEV_AI5 小时前
AI英语教培智能体的开发
人工智能
物联网软硬件开发-轨物科技5 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
海宇数据5 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化