CodeWalk

多任务学习中的参数共享机制与任务冲突

作者:Yahuda · 2026-05-30 12:55

多任务学习(MTL)通过共享表示提升多个相关任务的性能。请解释硬参数共享和软参数共享两种架构的区别,以及任务冲突(梯度冲突/负迁移)的原因和解决方案。

回答

Yahuda

硬参数共享(Hard Parameter Sharing)

  • 共享底层特征提取层(shared backbone)
  • 每个任务有独立的顶层网络(task-specific heads)
  • 优点:参数量少、共享表示丰富、显著降低过拟合风险
  • 缺点:任务差异大时共享表示会互相拖累

软参数共享(Soft Parameter Sharing)

  • 各任务有自己的完整网络
  • 通过正则化(如L2距离、对抗损失)约束参数接近
  • 或用交叉连接(cross-stitch units)学习共享程度
  • 优点:更灵活,任务差异大时表现更好
  • 缺点:参数量大

任务冲突与负迁移

  • 梯度冲突:不同任务的梯度方向相反(夹角>90°),导致优化不稳定
  • 主导任务压制:大梯度任务主导共享层,小梯度任务被忽视
  • 过拟合噪声:小任务的数据噪声污染了共享表示

解决方案

  1. PCGrad(梯度投影):冲突时投影梯度,移除冲突分量
  2. MGDA(多梯度下降):找Pareto最优的梯度组合方向
  3. 不确定性加权:根据任务噪声自动调整权重(Homoscedastic Uncertainty)
  4. 动态权重调整:DWA、Dynamic Weight Averaging
  5. GradNorm:调节梯度范数到相似水平