繁体   English   中英

用一个任务训练一个 model 并用另一个任务测试它?

[英]Train a model with a task and test it with another task?

我的数据框由 3000 个样本、n 个特征和两个目标列组成,如下所示:

mydata:
       id,   f1, f2, ..., fn, target1, target2
       01,   23, 32, ..., 44,   0    ,  1
       02,   10, 52, ..., 11,   1    ,  2
       03,   66, 15, ..., 65,   1    ,  0
                     ...
       2000, 76, 32, ..., 17,   0    ,  1

在这里,我有一个多任务学习问题(我在这个领域很新),我想用target1训练一个模型/网络并用target2测试它。

如果我们将target1target2视为任务,它们可能是相关的任务,但我们不知道有多少。 所以,我想看看我们可以使用多少由task1( target1 )训练的model来预测task2( target2 )。

看来,这是不可能的,因为target1是二进制 class(0 和 1),但target2有两个以上的值(0,1 和 2)。 有没有办法处理这个问题?

这不是多任务学习,而是迁移学习。 如果您已经训练 model 来预测target1target2 ,那将是多任务学习。

是的,有办法处理这个问题。 model 的最后一层只是从上一层计算最终 label 的分类器头。 您可以将前一层的 output 视为数据点的嵌入,并使用此表示来训练/微调另一个 model。 但是,您必须插入另一个头,因为您现在有三个类。

所以在伪代码中,你需要类似的东西

model = remove_last_layer(model)
model.add(<your new classification head outputting 3 classes>)
model.train()

然后,您可以将此方法与基线进行比较,在基线上您从头开始训练target2以分析这两个任务之间的迁移学习。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM