数据增强的多任务学习

时间:2020-04-24 18:13:33

标签: python deep-learning neural-network multitasking

我想知道当我有两个单独的任务且每个任务的数据量不相等时如何训练神经模型。例如,考虑以下情况:

任务1。。一个具有两个标签(0、1)的条目的数据集上的分类问题。训练次数:20,000

任务2。一个具有三个标签(0、1、2)的条目的数据集上的分类问题。训练次数:1.6M

我正在尝试开发一个网络,其中共享网络首先尝试对(每个任务)的每个实例进行编码,然后通过2个输出层投影编码后的实例,以分别解决每个任务。具体来说,共享网络是BERT编码器(我不需要训练)。因此,我要做的就是为每个任务训练两个输出(线性)层,并通过多任务丢失功能对其进行优化。但是当每个任务的实例数量不相等时,我很难理解如何执行此操作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用损失函数来执行此操作,当实例的一种标签不可用时,该函数将忽略损失。

loss = i1 * loss1(pred1, label1) + i2 * loss2(pred2, label2)

其中loss1loss2可以是交叉熵损失,分别用于预测task1和task2。 i1i2是指示符变量,如果该任务的标签可用,则为1,否则为0。您可能还需要为损失增加不同的权重,以获得更好的结果。