如何理解任务头(task head)

这篇主要是关于图神经网络的概念理解的问题。

在读论文中存在许多预训练模型优化的相关论文,但预训练的过程与下游任务在EVALUATION中往往使用相同的数据集来验证效果,部分论文也没有探讨transability的问题。

数据集

预训练阶段和下游任务阶段使用的数据集可以是相同的,即数据集A。在预训练阶段,无监督学习任务通常会利用数据集A生成训练样本,而在下游任务阶段,利用数据集A进行有监督或半监督学习任务的训练。

预训练模型

在预训练阶段,主要目标是学习到具有良好表示能力的模型。通常采用的是无监督学习或自监督学习的方式,使用未标记的数据集进行训练。预训练的目标是尽可能地捕捉数据中的潜在结构和特征,而不是针对具体的下游任务进行优化。(这里也会使用label mask的方式进行学习,其中label mask率也是比较模型性能的重要方法)

task head

pre-train,fine-tune(预训练+调优)已经取得的非常好效果,尤其是在小样本学习中。一个完整GNN模型可以表示为:

                     数据集----->输入层---->隐藏层----->输出层  

而预训练的过程可以理解为只完成了以下工作

                     数据集----->输入层---->隐藏层 

而任务头作为输出层用来获得想要的输出,最简单的任务头也是一个(FC+SoftMax)。

接下来我们训练task head(fine-tune过程):fine-tune中一般会冻结pre-train模型的部分层的中的参数,留下一部分层的权重参数用来更新(注:图任务的模型都是很浅的,一般pre-train,fine-tune效果不行很好)。这里我们假设:我们对结果是一个3分类,数据经过pre-train模型得到embedding的dim是100。这是不满足节点分类的需求的,我们最终需要的embedding的dim应该是3,所以我们需要使用一个task head将其降成3维,并在训练过程中不断学习更新task head中的参数。

参数变化:

模型参数:预训练阶段和下游任务阶段在模型参数的初始化上有所不同。在预训练阶段,模型参数通常是通过在数据集A上进行无监督学习获取的。而在下游任务训练阶段,这些预训练的参数被用作初始参数,并通过在数据集A上进行有监督学习任务的训练而微调。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值