在将它们组合起来进行多任务学习之前,我应该重新调整损失吗?

数据挖掘 神经网络 机器学习模型 损失函数 多类分类 多任务学习
2021-09-24 16:48:09

我有一个多任务网络,接受一个输入并尝试完成两个任务(有几个共享层,然后是单独的层)。

一项任务是使用 CrossEntropy 损失的多类分类,另一项是使用 CTC 损失的序列识别。

我想使用两种损失的组合作为标准,例如Loss = λCE + (1-λ)CTC问题是我的CE损失开始于 2 左右,而CTC损失在 400 年代。

我是否应该使用Max(L₁)/L₁因子重新调整每个时期的损失,其中Max(L₁)是时期 1 的最大损失,而L₁是时期 1 的每个“子损失”。也就是说,我们缩放损失所以在第一个时期,它们具有相同的幅度,然后我们继续使用这些因素进行缩放。

有更好的方法吗?我如何确保我的两个损失对关于 λ 的反向传播具有相同的影响?

1个回答

检查这个

在“多任务损失”标题下,他们提到了如何平均两个不同任务的损失。他们根据用例进行加权平均。