多任务学习的多个loss应该如何权衡

超级有用!

从上图的方程可以看出:

1、loss大则梯度更新量也大;

2、不同任务的loss差异大导致模型更新不平衡的本质原因在于梯度大小;

3、通过调整不同任务的loss权重wi可以改善这个问题;

4、直接对不同任务的梯度进行处理也可以改善这个问题;

所以,后续的方法大体分为两类:

1、在权重wi上做文章;

2、在梯度上做文章

2、Grad Norm

梯度归一化的主要目的在于希望不同任务任务对应的梯度具有相似的大小,从而控制多任务网络的训练。通过这样做,我们鼓励网络以相同的速度学习所有的任务。grad norm本身不focus于不同任务之间的权重,而是将所有任务等同视之,只是希望所有任务的更新能够相对接近从而避免了某个任务收敛了,某个任务还在收敛的路上的问题,这样会导致:

1、模型训练的效率低,最终运行时间由最复杂的任务决定;

2、复杂任务收敛的过程中,简单任务的局部最优权重可能会变差;

posted @ 2021-04-08 17:35  douzujun  阅读(2297)  评论(0编辑  收藏  举报