想象你是“全能 AI 科技公司”的 CEO,旗下有三个业务部门:语音助手部、人脸识别部、智能推荐部。它们共用一支技术中台团队——这相当于多任务模型最底层的共享网络。然而每个季度做综合绩效评估时,你遇到了一个棘手难题:语音助手的 KPI 数字小得可怜(识别错误率零点几),推荐部的 KPI 动辄上百。三个部门的指标直接相加,推荐部永远主导得分,语音助手部怎么努力都被淹没。这就是多任务学习里最经典的“损失权重”困境:一个模型同时学多个任务,怎么给每个任务定权重,才能让它们都被公平且充分地训练? 本文介绍两种主流解法。第一种叫“不确定性加权”——像 HR 根据部门业务固有波动性调整 KPI 门槛:本身波动大的业务,不该用僵化的高权重去苛求。第二种叫“GradNorm“——像 CEO 每季度给各部门做”成长速度体检”:谁进步慢,下季度就把资源倾斜给谁,让各部门的账面改善幅度基本同步。读完你会明白,多任务学习的失衡不是玄学,而是一套可以量化、可以自动化的资源调度艺术。
对 AI 从业者:多任务学习是工业界主流范式,损失权重决定一个模型能否同时做稳多个目标。掌握 GradNorm 与不确定性加权,是从“会调单任务 Loss”进阶到“会设计多任务训练系统”的关键一步。
目录
可视化演示
展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。
本节配有交互动效(进入视口后自动加载,约 3KB)。
系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T
问题缘起:为什么权重会失衡
三个部门的 KPI 量纲完全不同:语音助手部看“识别错误率”,数字小得可怜;人脸识别部看“准确率”,介于 0 和 1 之间;智能推荐部看“转化率”,又是另一个数量级。如果 CEO 直接把三个原始数字相加作为综合绩效,错误率这项几乎不会影响总分——它在数学上被“吃掉”了。这正是多任务学习失衡的起点:损失的数值大,不代表任务重要,只是它的“计量单位”恰好更大。
多任务学习把每个任务各自的损失求和,得到总损失,目标就是让总损失最小化。但不同任务的损失天然处于不同尺度,这导致在梯度下降中,损失数值大的任务会贡献更大的梯度,从而主导共享网络的更新方向。这不是某个任务的“性格问题”,而是多任务结构里的系统性问题。
用 T 表示任务数量,第 i 个任务的损失记为 L_i,权重 w_i 表示它在总损失中的占比。总损失是所有任务加权损失的和。权重怎么定?早期做法是手动网格搜索:不断试权重组合直到验证集满意。这就像 CEO 年初拍脑袋定完 KPI 权重后一整年不管,市场变化了也毫不调整。
所以,传统“拍脑袋”定下来的静态权重,相当于一份全年不动的 KPI 合同。行业季节变了、竞品出新品了,权重却纹丝不动,结果一定是嗓门大、基数高的部门独揽公司资源。要解决这个问题,我们需要“会自动调整”的权重机制——这就是接下来要介绍的不确定性加权与 GradNorm。
- 总损失多任务模型要优化的综合目标,相当于公司的综合绩效分。
- 任务损失第 i 个任务自己的损失,如分类交叉熵、回归均方误差。
- 任务权重第 i 个任务的权重系数,控制它在总损失里的发言权。
- 加权求和把各个任务按权重合并成单一标量,反向传播时各自梯度按此比例合成。
不确定性加权:按业务固有波动分配
有些部门的 KPI 天然波动大:销售部受大盘影响,每月销售额上下浮动 30% 是常态;质检部按标准流程检测,合格率波动极小。若给销售部定一个刚性指标,再努力也必然频繁偏离——因为波动来自业务本身,不是团队不努力。聪明的 CEO 会把“波动大的部门”的考核权重调低一些,让它们轻装上阵。
2018 年,Kendall 等人把这种直觉带进了多任务学习,提出不确定性加权(Uncertainty Weighting)。其核心假设是:每个任务的损失自带一个“同方差不确定性”σ²,它刻画了任务标签和度量本身固有的噪声水平。任务不确定性是模型的可学习参数,在训练中和网络权重一起被优化。
不确定性加权的总损失写成下面的形式:每个任务损失前乘上 1/(2σᵢ²),并加上 log σᵢ。当任务不确定性 σᵢ² 很大时,权重 1/(2σᵢ²) 自动变小,模型不会拼命去拟合那些不可预测的细节;log σᵢ 是正则项,防止 σᵢ 无限增大导致权重退化到零。
这就像 HR 部门为市场波动大的业务线量身定制弹性 KPI:让波动大的部门“轻装上阵”,让稳定部门“精益求精”。不确定性加权不需要人手动调权重,σ 是跟着网络一起梯度下降的可学习参数——模型在训练过程中自己摸索出每个任务的“脾气”。
- 同方差不确定性假设每个任务的噪声标准差是固定常数,不随输入变化。
- 不确定性权重σᵢ² 越大,权重越小,波动大的任务不被过度强求。
- 对数正则项当 σ 趋向无穷时惩罚随之增长,避免权重退化成零。
- 加权求和对所有任务的不确定性加权损失做累加,得到总目标。
GradNorm机制:季度动态体检与资源重分配
如果说不确定性加权是“年初根据业务波动定 KPI”,GradNorm 则是“每个季度做一次全员体检”。体检项目只有一个:过去这段时间,哪个部门进步最慢?进步慢的部门,下季度获得更多资源倾斜;进步快的部门,适当减少资源。几个季度拉齐后,所有部门的“改善幅度”大致同步。
GradNorm(Chen et al., 2018)把“进步幅度”具体化为“共享层上的梯度范数”。它每隔固定步数,计算每个任务在共享网络参数 W 上的梯度范数 Gᵢ,并将这些梯度范数拉向一个“平均基准 × 相对训练速度的 α 次幂”的目标。α 是一个超参数,控制拉齐的力度——α 越大,任务被拉向平均线的力度越强。
具体地,Gᵢ(t) 是第 i 个任务在共享层 W 上的梯度二范数;平均梯度范数 Ḡ(t) 是所有任务的均值;相对训练速度 rᵢ(t) 由“当前损失相对初始损失的下降比例”计算得到。GradNorm 的目标是让每个任务的梯度范数向 Ḡ × rᵢ^α 收敛:
GradNorm 的神奇之处在于,它不直接操作损失数值,而是操作梯度——就像 CEO 不看部门的绝对利润,而是看“这个季度比上个季度进步了多少”,以此决定资源分配。这避免了不同部门初始规模不同带来的偏差,是真正的“按需分配”。
- 任务梯度范数任务 i 在共享层 W 上加权损失的梯度二范数,衡量该任务“发力大小”。
- 平均梯度范数所有任务梯度范数的均值,作为“全员平均进步水平”的基准。
- 相对训练速度任务损失相对自身初始值的下降比例再归一化,rᵢ>1 表示该任务比平均慢。
- 对齐目标梯度范数向“平均基准 × 相对速度的 α 次幂”收敛,α 控制回拉强度。
梯度竞争协调:共享层上的话语权之争
公司共享技术中台的排期有限。销售部提的需求总是最急、改动量最大,中台就总是优先满足销售部,人脸识别部的小需求排到下个月。时间一长,中台的能力越来越偏科,人脸识别业务几乎得不到中台的滋养。这就是多任务学习中的“梯度竞争”:各个任务都在争夺共享层的更新方向。
在多任务网络里,共享层参数 θ 是所有任务共享的“中台”。每个任务都会产生一个梯度方向 ∇Lᵢ,而共享层实际的更新方向是各任务梯度的加权和。如果某个任务的梯度范数长期占据主导,共享层就被它“私有化”,其他任务在共享表示上的收益会持续减弱——这就是梯度竞争失衡的根源。
总梯度由各任务梯度的加权和决定。权重是各任务的“兵力人数”,梯度方向是“进攻方向”。当某个任务的权重过大,总梯度方向就会偏向它。GradNorm 所做的协调,本质上是把兵力人数调到相近水平,让各路方向都能在总方向中发声。需要说明的是,方向冲突(比如两个任务梯度的夹角大于 90 度)单靠 GradNorm 无法彻底解决,但尺度平衡是方向公平的前提。
就像 CEO 给中台定规矩:“任何部门的需求改动量,不得长期超出其他部门的平均水平太多。”这条规矩不是要消灭部门差异,而是要保证每个部门都能在共享平台上发出自己的声音。GradNorm 调控的正是这条“声音大小”的红线。
- 共享层参数各任务共用的底层表示参数,是实现迁移学习的核心。
- 总梯度方向共享层参数实际沿此方向更新,决定所有任务共享表示的演化。
- 任务加权梯度每个任务都试图按自己的方向修改共享层,贡献大小为 wᵢ × 梯度。
- 向量求和总方向是多个任务“拉力”的合成,权重失衡时大权重任务主导方向。
实现流程:从公式到工程的完整步骤
GradNorm 落地不是一次性改革,而是一套季度循环:季度初各部门权重均为 1;每个季度末做体检,重新分配预算;重新分配后各权重之和保持不变,整体预算不因分配产生膨胀或萎缩。理解了这个循环,工程实现就水到渠成了。
工程上,GradNorm 的操作对象是共享层参数 W 与任务权重 wᵢ。共享层通常是网络的前几层,任务头则是各家业务线专属的后置层。实现时只需在常规训练循环中插入一个周期性函数调用。
具体步骤:先把所有 wᵢ 初始化为 1;每个前向过程照常计算各任务损失;每隔 T_grad 步,用自动求导计算各任务在共享层上的梯度范数;计算平均梯度范数和相对训练速度;对权重做一步梯度下降,使其梯度范数向目标对齐;最后做权重重新归一化——把所有权重的和重新缩放为任务数 T:
这个“预算平衡”步骤看似简单,却是 GradNorm 能稳定训练的关键。它保证权重调整只改变任务间的相对关系,不改变全局优化步长的总体大小——就像公司内部重新分配预算,但总预算不增不减。
- 当前权重任务 i 在本轮更新前的权重。
- 归一化系数把所有权重之和重新拉回任务数 T 的缩放因子。
- 更新后权重缩放后权重和恒为 T,避免权重整体变大或变小影响学习率。
- 完整更新规则先按 GradNorm 梯度调整权重比例,再统一缩放回到预算约束内。
评估指标:如何判断调整好不好
公司年度股东大会要评估调权方案好不好,不能只看总利润,还要看每个部门相对“独立运营时”是否有增长——这才是共享资源的价值证明。如果某个部门比单干时还差很多,说明共享不仅没有带来知识增益,反而因为失衡产生了负迁移。
多任务模型的效果评估也需要对比“单任务模型”基线。理想情况下,每个任务在多任务模型里都应接近甚至超过单任务水平。若某个任务在多任务模型里显著退化,说明共享表示被其他任务挤占了。对此,业界常使用 Δ 指标来衡量多任务学习的整体净增益。
Δ 指标的做法是:对每个任务,计算多任务模型表现相对单任务模型表现的相对变化率,然后对所有任务取平均。正值表示大多数任务获得了正向迁移;负值表示共享带来了净损失。除了 Δ 指标,还需要考察各任务的收敛速度——好的权重方法应该让所有任务同步收敛,以及权重在训练中的稳定性(鲁棒性)。
好的多任务权重方法,应当像一份合格的董事会报告:既能看到整体利润上升,也能看到每个部门都因共享中台而变得更强,而不是“一个部门吃撑、其余部门饿倒”。评估权重方法,核心就是看这份“共享收益账本”是否每个部门都为正。
- 多任务指标值任务 i 在多任务模型上的性能指标。
- 单任务基准值同一任务在单任务模型上的性能指标。
- 相对变化率多任务相对单任务的涨跌百分比;指标越小越好时需取反向。
- 逐任务平均综合所有任务的相对增益,得到多任务学习的整体净效应。
前沿展望:从多任务到多模态与通用智能
当公司从 3 条业务线扩张到 30 条、300 条,靠 HR 手工做季度体检就太累了。未来趋势是让调权自动化,让每个业务部门的声音按自身状态自动加权。多任务学习正沿着这条路,从几个任务走向多模态大模型中成百上千个子任务。
研究前沿上,损失权重正从“手工 / 半自动”走向“全自动化”。一种常见做法是 softmax 式动态权重——把每个任务的信号映射成一个和为 1 的分布,权重自然满足归一化约束。此外,元学习可以学习“权重更新的规则”,让模型自己发现最优的调权策略;不确定性建模也在与更大的模型结合。
softmax 形式的动态权重可以写成下面的形式:αᵢ(t) 是任务 i 在时刻 t 的权重,sᵢ(t) 是任务信号强度(例如损失或负不确定性)。信号越强的任务,权重会被指数压缩;所有任务的权重自动形成和为 1 的概率分布。
从一个 CEO 的三部门 KPI 困境,到通用人工智能动辄上百个子任务的自动平衡,核心依然是那个朴素的道理:让每个任务被公平看见、按需取资源。多任务损失权重,就是这套“公司治理智慧”在神经网络中的投影——它离“通用智能”的距离,恰好等于我们距离“自动而优雅地平衡所有目标”的距离。
- 任务信号强度sᵢ(t) 可理解为当前任务损失或负不确定性,数值越大代表该任务越“需要被弱化”。
- 指数映射exp 将信号强度映射为正值,负号让强信号获得小权重。
- 分母归一化对所有任务的指数值求和,使权重形成和为 1 的分布。
- Softmax 权重自动满足归一化约束的动态权重,无需额外重缩放步骤。
AI 应用场景
自动驾驶多任务感知模型
阶段:模型训练与调优
解决的问题:自动驾驶感知模型需同时完成目标检测、车道线分割、深度估计。传统做法是三个独立模型或手动设定固定损失权重,导致检测任务梯度范数远大于分割任务,分割质量长期不佳。用 GradNorm 动态调权后,各任务在共享骨干网络上公平竞争,分割与深度估计精度显著回升。
具体案例:某自动驾驶团队的感知模型使用 ResNet 骨干加三个任务头。训练发现检测 Loss 主导,语义分割 mIoU 比单任务模型低 12 个点。引入 GradNorm 后,分割 mIoU 回升 9 个点,检测精度仅损失 1 个点,综合指标明显提升。
推荐系统多目标不确定性加权
阶段:多目标模型训练
解决的问题:推荐系统同时优化点击率、转化率、停留时长,三者噪声水平差异大。点击率预测相对稳定,转化率受用户决策随机性影响剧烈(不确定性高)。固定权重会让模型强行拟合噪声高的转化率,导致 CTR 下降。不确定性加权自动给高噪声目标较小权重,让模型把容量留给稳定目标。
具体案例:某短视频平台用不确定性加权训练多目标精排模型,在线 A/B 实验中人均时长提升 3.1%,转化率保持稳定,模型训练收敛速度也明显加快。
多模态大模型的对齐训练
阶段:多模态预训练与对齐
解决的问题:文生图模型需同时优化文本对齐、图像质量、美学评分等多个目标,任务数量从个位数增长到上百个。手动权重无法扩展,softmax 式动态权重与不确定性加权结合,让模型自动平衡各模态任务,减少灾难性遗忘。
具体案例:某大模型团队在图文多模态微调阶段,用不确定性加权处理标题生成、图像描述、视觉问答三个目标。相比均匀权重,灾难性遗忘减少 23%,多任务平均分提升 6.8%。
Python 演示
import torchimport torch.nn as nn torch.manual_seed(0) N, D = 128, 8X = torch.randn(N, D)Y1 = (X.sum(dim=1) > 0).long()Y2 = ((X[:, 0] * X[:, 1]) > 0).long() class Net(nn.Module): def __init__(self): super().__init__() self.shared = nn.Sequential(nn.Linear(D, 16), nn.ReLU()) self.head1 = nn.Linear(16, 2) self.head2 = nn.Linear(16, 2) def forward(self, x): h = self.shared(x) return self.head1(h), self.head2(h) net = Net()loss_fn = nn.CrossEntropyLoss()opt = torch.optim.Adam(net.parameters(), lr=0.01) w = torch.ones(2)alpha = 0.6lr_w = 0.01init_l = [0.0, 0.0] def grad_norm_step(ws, alpha, shared_params, losses, init_l): gs = [] for i in range(2): g = torch.autograd.grad(ws[i] * losses[i], shared_params, retain_graph=True) g_vec = torch.cat([gi.reshape(-1) for gi in g]) gs.append(g_vec.norm()) G = torch.stack(gs) gbar = G.mean() raw = torch.tensor([losses[i].item() / init_l[i] for i in range(2)]) r = raw / raw.mean() target = gbar * (r ** alpha) with torch.no_grad(): new_w = ws - lr_w * (G - target) new_w = new_w * (2.0 / new_w.sum()) ws.copy_(new_w) return G.detach() for step in range(200): logits1, logits2 = net(X) loss1 = loss_fn(logits1, Y1) loss2 = loss_fn(logits2, Y2) if step == 0: init_l = [loss1.item(), loss2.item()] if step % 20 == 0: G = grad_norm_step(w, alpha, list(net.shared.parameters()), [loss1, loss2], init_l) print(f"step {step:3d} | w1={w[0].item():.3f} w2={w[1].item():.3f} | " f"G1={G[0].item():.3f} G2={G[1].item():.3f}") total_loss = w[0] * loss1 + w[1] * loss2 opt.zero_grad() total_loss.backward() opt.step()
g = torch.autograd.grad(ws[i] * losses[i], shared_params, retain_graph=True)单独求任务 i 在共享层上的梯度,不污染总损失的后续反向传播。g_vec = torch.cat([gi.reshape(-1) for gi in g])把共享层所有参数的梯度拼接成一维向量,方便计算统一范数。gs.append(g_vec.norm())计算该任务梯度向量的 L2 范数,代表任务当前的“发力大小”。raw = torch.tensor([losses[i].item() / init_l[i] for i in range(2)])各任务相对初始损失的剩余比例,衡量“还有多少没降下来”。r = raw / raw.mean()相对训练速度:比值大于 1 说明该任务比平均任务学得慢,需要倾斜资源。target = gbar * (r ** alpha)慢任务的目标梯度范数被放大,快任务被缩小,形成差异化目标。new_w = ws - lr_w * (G - target)把当前梯度范数与目标之间的差距折算成权重的步进更新。new_w = new_w * (2.0 / new_w.sum())权重重新归一化,让权重和恒等于任务数 2,稳定全局学习率。
常见误区
误区我刚做多任务学习时,以为 wᵢ 就是任务的“重要性”,把核心任务权重设为 10,辅助任务设为 0.1,结果核心任务过拟合,辅助任务完全不学。
正解在总损失公式中,权重的主要角色是“尺度对齐”。不同任务损失量纲不同、梯度范数差异巨大,权重是在数据分布间平衡贡献的工具,而非重要性声明。设得过大,该任务会主导共享层更新,反而损害它自己的泛化能力——因为共享表示被它拽向单一方向。就像给销售部 90% 的奖金权重,销售部短期好看,但中台全偏科,长期公司整体崩坏。
为何常见:单任务思维惯性让大家觉得“损失大就要大力优化”,忽略了多任务里任务是共生关系,不是独立项目。
误区以为 GradNorm 会把各任务梯度范数拉成完全相等的常数,像一根水平线。
正解GradNorm 的目标不是相等,而是向“平均梯度范数 × 相对训练速度的 α 次幂”对齐。训练慢的任务 rᵢ>1,目标梯度范数更高,获得更大权重以追赶;训练快的任务目标更低,让出资源。目标是随训练动态漂移的“动态平衡”,不是死板的相等。
为何常见:“平衡”这个词很容易被直观理解成“平均”,忘了公式中还有相对速度这个调节因子。
误区看到公式里的 σ 就以为要手动搜索设置,像调学习率一样逐个试。
正解σ 是同方差不确定性的可学习参数,与网络权重一起通过梯度下降优化。模型自己从数据噪声中学习每个任务的固有波动程度,训练完成后 σ 自动收敛到合适值。我们只需要决定初始值,不需要在每个数据集上手动网格搜索。
为何常见:公式里的希腊字母经常被默认当成手调超参数,“可学习参数”与“超参数”的边界需要经验才能分清。
误区以为“动态调权”就是每个迭代都要重新计算并更新权重。
正解GradNorm 每隔固定步数(如 100-1000 步)才更新一次权重。单次迭代的梯度范数噪声很大,每一步都调整会导致权重剧烈震荡、训练不稳定。周期越长,更新越平滑;周期太短,模型会把优化器的更新与权重更新的抖动耦合在一起。
为何常见:看到“动态”就联想到“实时”,忽略了工程上噪声平滑与稳定性的权衡。
误区以为只要 GradNorm 把梯度范数调平,任务间的相互干扰就消失了。
正解GradNorm 只解决梯度“大小”的不平衡,不解决方向冲突。当两个任务在共享层上的梯度夹角大于 90 度时,即使范数相同,它们的方向仍会相互抵消。方向冲突需要 PCGrad(投影)、GradVac(方向对齐)等方法单独处理。尺度平衡是必要不充分条件。
为何常见:多任务优化有两个维度——尺度(大小)与方向,初学者只关注一个维度时会误以为调平尺度就万事大吉。
面试题
Q1. 多任务学习总损失中,任务权重 wᵢ 的主要作用是什么?
- A.决定任务损失量纲换算关系← 正确答案
- B.决定模型推理时延高低
- C.决定网络参数量大小
- D.决定数据增强比例高低
答案:A。权重把不同量纲的任务损失换算到同一尺度并加权求和,类似公司把销售额和满意度折算成统一 KPI。权重不改变网络结构、推理速度或数据,只影响损失合并方式。
Q2. 静态损失权重的主要局限是什么?
- A.权重过大让模型无法收敛
- B.权重不能随训练动态变化← 正确答案
- C.权重会让所有任务同时变差
- D.权重会导致梯度消失爆炸
答案:B。静态权重是训练前定死的常数,而任务的损失尺度和训练速度在训练中不断变化。就像一张全年不变的 KPI 合同,市场变了也不调整,最终必然失衡。
Q3. 同方差不确定性衡量的核心是什么?
- A.任务标签噪声的固有波动水平← 正确答案
- B.不同任务梯度的余弦相似度
- C.模型在验证集上的过拟合程度
- D.训练样本总量的多少程度
答案:A。同方差不确定性假设每个任务有一个固定的噪声标准差,它刻画的是任务本身的波动水平,而非梯度方向或数据量。波动大的任务应获得更小权重。
Q4. 不确定性加权公式中 log σ 项的作用包括?
- A.防止 σ 无限增大导致权重消失← 正确答案
- B.作为正则项平衡不确定性学习← 正确答案
- C.提高梯度下降的收敛速度
- D.使权重总和保持恒定不变
答案:AB。log σ 是正则项,σ 增大时会受到惩罚,从而防止不确定性被过度放大、权重退化为零。它不直接加速收敛,也不负责权重归一化。
Q5. GradNorm 中 Gᵢ 表示什么?
- A.任务 i 在共享层上的梯度范数← 正确答案
- B.任务 i 的损失函数值
- C.任务 i 的输出通道数量
- D.任务 i 的样本数量多少
答案:A。Gᵢ 是任务 i 在共享层权重上的梯度二范数,代表该任务当前“发力大小”。GradNorm 正是通过对齐这个范数来调节资源分配。
Q6. GradNorm 的训练流程包含哪些关键步骤?
- A.计算各任务共享层梯度范数← 正确答案
- B.计算每个任务的相对训练速度← 正确答案
- C.按目标拉齐梯度范数调整权重← 正确答案
- D.每次迭代都无条件增大学习率
答案:ABC。GradNorm 流程为:计算梯度范数→计算相对训练速度→向目标对齐更新权重→重新归一化。它不修改学习率,更不会无条件增大学习率。
Q7. GradNorm 的 α 超参数控制什么?
- A.任务被拉回平均训练速度的强度← 正确答案
- B.共享层网络的宽度大小
- C.损失函数的平滑程度高低
- D.优化器的动量大小数值
答案:A。α 控制相对训练速度对目标梯度范数的影响强度。α 越大,慢任务被拉高、快任务被拉低的力度越强,任务间的梯度范数越趋近“按速度分层”。
Q8. 权重重新归一化 wᵢ ← T×wᵢ/Σwⱼ 的根本目的是什么?
- A.保持权重和不变以稳定学习率← 正确答案
- B.让所有任务权重完全均匀分布
- C.最小化梯度方向上的冲突
- D.等价于对权重做 L2 正则化
答案:A。归一化把所有权重之和拉回任务数 T,避免权重整体放大或缩小导致全局学习率漂移。它不追求均匀分布,不解决方向冲突,也不做正则化。
Q9. 缓解多任务梯度方向冲突的有效手段包括?
- A.PCGrad 梯度投影策略← 正确答案
- B.GradVac 方向对齐方法← 正确答案
- C.大幅增大训练学习率
- D.彻底关闭共享层梯度
答案:AB。PCGrad 把冲突任务的梯度投影到正交方向,GradVac 显式对齐任务梯度方向,都是缓解方向冲突的手段。增大学习率会放大震荡,关闭共享层梯度则直接切断迁移通路。
Q10. 设任务 A 的 L̃ₐ=0.2,任务 B 的 L̃_b=0.8,α=1,平均梯度范数为 2.1,任务 A 的 GradNorm 目标梯度范数是多少?
- A.0.42
- B.0.84← 正确答案
- C.2.10
- D.3.36
答案:B。rₐ = 0.2 / [(0.2+0.8)/2] = 0.4。目标 = 平均梯度范数 × rₐ^α = 2.1 × 0.4 = 0.84。rₐ<1 表示任务 A 训练较快,目标被调低以让出资源。