前置任务
前置任务, 或者"借口"任务, Pretext Task是自监督学习中的一个核心概念, 指的是在没有外部标签监督的情况下, 为了学习有效的数据表示而人为设计的一种"假任务". 它通常和真正的目标任务无关. 但是通过在训练模型的时候让模型完成这个"假任务", 模型能够学习到对数据分布有用的表征, 在真正需要进行下游任务(如分类, 目标检测)的时候, 这些表征就能有效地迁移或者微调, 从而得到更好的性能.
这些任务本身并不是实际想要解决的问题, 因为被称为pretext, 即"借口"任务, 但是由于任务的设计会让模型自动学到对图像有判别里的特征, 因此对后续"真正"关心的下游任务是有帮助的.
图像领域的如让模型去预测被随机遮挡或者扣掉的图像块, 让模型判断一张图像是否被旋转, 旋转了多少度, 让模型预测两个图像patch是否来自同一张图像等等. 在NLP领域, 像GPT的语言模型, BERT的MLM以及T5的Span Corruption都可以看作是一种Pretext Task.
个人的看法: 前置任务可以被理解为预训练阶段的优化目标, 优化目标是一个更大的topic, 具体的下游任务也有优化目标. 损失函数不是优化目标也不是前置任务, 不同的优化目标可能有相同的损失函数, 如图像旋转, 图像拼图等优化目标都可以用对比损失函数来衡量正样本和anchor的相似度, 负样本与anchor的相似度. 对比损失函数的实现方式也有好多种, 如基于点积的, 基于margin的. 总之就是一种层层递进的关系.