多任务的loss优化

1、多任务学习优化面临的问题

多任务学习经常会出现跷跷板现象,即两个任务联合学习的时候,可能一个任务效果变好,另一个任务效果变差。究其本质,核心是训练过程中存在以下3个方面问题:

  1. 多任务梯度方向不一致:同一组参数,不同的任务更新方向不一致,导致模型参数出现震荡,任务之间出现负迁移的现象,一般出现在多个任务之间差异较大的场景;
  2. 多任务收敛速度不一致:不同的任务收敛速度不一样,有的任务比较简单收敛速度快,有的任务比较困难收敛速度慢,导致模型训练一定轮数后,有的任务已经overfitting,有的任务还是underfitting的状态;
  3. 多任务loss取值量级差异大:不同的任务loss取值范围差异大,模型被loss比较大的任务主导,这种情况在两个任务使用不同损失函数,或者拟合值的取值差异大等情况下最为常见。

2、多任务设计

比较容易想到的是,多目标loss设计要满足以下两点,避免被某个任务主导:

  1. 各任务loss量级接近,最好一致;(值域量级接近),loss量级可以使各任务loss除以对应的初始loss(交叉熵损失/L2)
  2. 各任务以相近的速度进行学习。(学习速度接近), 速度即相邻迭代次数对应的loss的比值,值越小则速度越高
  3. 各个任务间设置权重

2.3、多任务学习中各 loss 权重应该如何设计

AI上推荐 之 多任务loss优化(自适应权重篇)_翻滚的小@强的博客-CSDN博客

ShowMeAI知识社区深度学习中的multi task learning——optimization strategy部分 - 知乎

多任务学习优化(Optimization in Multi-task learning) - 知乎

深度学习的多个loss如何平衡? - 知乎

多任务学习MTL模型:多目标Loss优化策略 - 知乎

多任务模型融合如何平衡? - 简书

关于人工智能:多任务多目标CTR预估技术 - 乐趣区

PCGrad方法:深度学习的多个loss如何平衡? - 知乎

                        多任务学习——【ICLR 2020】PCGrad_小爷毛毛(卓寿杰)的博客-CSDN博客

扫描二维码关注公众号,回复: 15143977 查看本文章

任务不确定性:关于多任务学习中的均衡loss方法之一 - 算法之道

 作者自己的方法,没有论文,仅供参考:

极市开发者平台-计算机视觉算法开发落地平台

2.2、通过梯度优化提升多任务学习效果的方法

针对上述多任务学习优化过程中的问题,业内有一系列的工作进行解决。今天给大家介绍4篇通过梯度优化提升多任务学习效果的方法。

具体参考: 多任务学习中各loss权重应该如何设计呢? - 知乎

2.3 Using Uncertainty to Weigh Losses

Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics_cdknight_happy的博客-CSDN博客

Uncertainty Loss不确定损失_CharpYu的博客-CSDN博客

2.4、多任务分析解决

参考文章:

1、多目标模型的loss优化 - 知乎

2、论文阅读:Gradient Surgery for Multi-Task Learning - 知乎

猜你喜欢

转载自blog.csdn.net/ytusdc/article/details/128511116
今日推荐