1,前言
相比单任务学习,多任务学习的优势如下:
- 多个任务共享一个模型,占用内存量减少;
- 多个任务一次前向计算得出结果,推理速度增加;
- 关联任务通过共享信息,相互补充,可以提升彼此的表现。
前面一篇文章,主要是从模型角度聊了一下多任务学习,介绍了比较经典的MMOE模型,但同时,对于多任务学习,Loss优化也非常重要。为什么呢?先抛出几个问题来:多任务学习中,通过多个目标去指导网络进行统一的训练,这些目标之间有没有冲突?多个目标loss之间如何配合?loss的规模是否一致?几个问题抛出来,是不是觉得多个loss优化需要做的工作还挺多的?接下来,就会整理出多任务学习loss优化的一些范式思想。先有全局思想,以后在实际的工作中再逐步加深对这一块的理解~
大纲如下:
- why 多任务学习需要loss优化
- sharedBottom 模型设计思路
- Grandnorm(通过梯度标准化的方式自适应平衡多个任务之间的loss)
- Dynamic Weight Averaging(动态加权平均)
- Dynamic Task Prioritization(动态任务优先级)
- Multi-task learning using uncertainty to weigh losses
2,why 多任务学习需要loss优化?
对于多任务的loss,能想到的最简单的结合思路,就是多个任务的loss直接相加,得