1、多任务学习优化面临的问题
多任务学习经常会出现跷跷板现象,即两个任务联合学习的时候,可能一个任务效果变好,另一个任务效果变差。究其本质,核心是训练过程中存在以下3个方面问题:
- 多任务梯度方向不一致:同一组参数,不同的任务更新方向不一致,导致模型参数出现震荡,任务之间出现负迁移的现象,一般出现在多个任务之间差异较大的场景;
- 多任务收敛速度不一致:不同的任务收敛速度不一样,有的任务比较简单收敛速度快,有的任务比较困难收敛速度慢,导致模型训练一定轮数后,有的任务已经overfitting,有的任务还是underfitting的状态;
- 多任务loss取值量级差异大:不同的任务loss取值范围差异大,模型被loss比较大的任务主导,这种情况在两个任务使用不同损失函数,或者拟合值的取值差异大等情况下最为常见。
2、多任务设计
比较容易想到的是,多目标loss设计要满足以下两点,避免被某个任务主导:
- 各任务loss量级接近,最好一致;(值域量级接近),loss量级可以使各任务loss除以对应的初始loss(交叉熵损失/L2)
- 各任务以相近的速度进行学习。(学习速度接近), 速度即相邻迭代次数对应的loss的比值,值越小则速度越高
- 各个任务间设置权重

文章探讨了多任务学习中遇到的问题,如梯度方向不一致、收敛速度不一和loss量级差异,提出了通过调整任务loss权重、利用任务不确定性以及梯度优化策略来提升学习效果。同时,提到了一些业内方法,如PCGrad和GradientSurgery,以实现任务间的平衡优化。
1万+

被折叠的 条评论
为什么被折叠?



