多任务学习中的参数共享机制与任务冲突
多任务学习(MTL)通过共享表示提升多个相关任务的性能。请解释硬参数共享和软参数共享两种架构的区别,以及任务冲突(梯度冲突/负迁移)的原因和解决方案。
回答
Yahuda
硬参数共享(Hard Parameter Sharing):
- 共享底层特征提取层(shared backbone)
- 每个任务有独立的顶层网络(task-specific heads)
- 优点:参数量少、共享表示丰富、显著降低过拟合风险
- 缺点:任务差异大时共享表示会互相拖累
软参数共享(Soft Parameter Sharing):
- 各任务有自己的完整网络
- 通过正则化(如L2距离、对抗损失)约束参数接近
- 或用交叉连接(cross-stitch units)学习共享程度
- 优点:更灵活,任务差异大时表现更好
- 缺点:参数量大
任务冲突与负迁移:
- 梯度冲突:不同任务的梯度方向相反(夹角>90°),导致优化不稳定
- 主导任务压制:大梯度任务主导共享层,小梯度任务被忽视
- 过拟合噪声:小任务的数据噪声污染了共享表示
解决方案:
- PCGrad(梯度投影):冲突时投影梯度,移除冲突分量
- MGDA(多梯度下降):找Pareto最优的梯度组合方向
- 不确定性加权:根据任务噪声自动调整权重(Homoscedastic Uncertainty)
- 动态权重调整:DWA、Dynamic Weight Averaging
- GradNorm:调节梯度范数到相似水平