参考:https://www.cnblogs.com/BlairGrowing/p/15023137.html
Pretext task 可以理解为是一种为达到特定训练任务而设计的间接任务。
比如,要训练一个网络来对 ImageNet 分类,可以表达为 fθ(x):x→yfθ(x):x→y ,目的是获得具有语义特征提取/推理能力的 θθ 。假设有另外一个任务 (Pretext task ),可以近似获得 θθ。 比如, Auto−encoderAuto−encoder (AEAE) , 表示为: gθ(x):x→xgθ(x):x→x 。为什么 AEAE 可以近似 θθ 呢? 因为 AE 要重建 xx 就必须学习 xx 中的内在关系,而这种内在关系的学习又是有利于我们学习 fθ(x)fθ(x) 的。这种方式也叫做预训练,为了在目标任务上获得更好的泛化能力,一般还需要进行 fine−tuningfine−tuning 等操作。
因此,Pretex task 的好处就是简化了原任务的求解,在深度学习里就是避免了人工标记样本,实现无监督的语义提取。
Pretext任务可以进一步理解为:对目标任务有帮助的辅助任务。这种任务目前更多用于 Self-Supervised learning,即一种更加宽泛的无监督学习。以往训练深度学习需要大量的人工标注的样本,这是费时耗力的,而自监督的提出就是为了打破这种人工标注样本的限制,目的是在没有人工标注的条件下也能高效的训练网络,自监督的核心问题是如何产生伪标签(Pseudo label),而这种伪标签的产生是不涉及人工的,比如上述的 AE 的伪标签就是自身。这里举几个在视觉任务里常用的 pretext task 伪标签的产生方式:
Rotation(图片旋转)
Colorization(图片上色)
Inpainting(图片补全)
Jigsaw Puzzle/Context Prediction(关系预测/上下文预测)