神经网络前置任务(pretext task)有什么作用?

最近在看论文,看到不少论文训练和评估模型时都用到了pretext task(前置任务),而不是目标应用任务,想问一下这样做有什么好处吗?
关注者
64
被浏览
73,210
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

Pretext task也叫surrogate task,我更倾向于把它翻译为:代理任务

Pretext可以理解为是一种为达到特定训练任务而设计的间接任务。比如,我们要训练一个网络来对ImageNet分类,可以表达为 f_{\theta}(x):x\rightarrow y ,我们的目的其实是获得具有语义特征提取/推理能力的 \theta 。我们假设有另外一个任务(也就是pretext),它可以近似获得这样的\theta,比如,Auto-encoder(AE),表示为:g_{\theta}(x):x\rightarrow x 。为什么AE可以近似 \theta 呢?因为AE要重建 x就必须学习x中的内在关系,而这种内在关系的学习又是有利于我们学习 f_{\theta}(x)的。这种方式也叫做预训练,为了在目标任务上获得更好的泛化能力,一般还需要进行fine-tuning等操作。

因此,Pretex task的好处就是简化了原任务的求解,在深度学习里就是避免了人工标记样本,实现无监督的语义提取,下面进一步解释。

Pretext任务可以进一步理解为:对目标任务有帮助的辅助任务。而这种任务目前更多的用于所谓的Self-Supervised learning,即一种更加宽泛的无监督学习。这里面涉及到一个很强的动机:训练深度学习需要大量的人工标注的样本,这是费时耗力的。而自监督的提出就是为了打破这种人工标注样本的限制,目的是在没有人工标注的条件下也能高效的训练网络,自监督的核心问题是如何产生伪标签(Pseudo label),而这种伪标签的产生是不涉及人工的,比如上述的AE的伪标签就是 x 自身。这里举几个在视觉任务里常用的pretext task几伪标签的产生方式:

  • Rotation(图片旋转)
[1] S. Gidaris, P. Singh, and N. Komodakis, "Unsupervised representation learning by predicting image rotations," ICLR, 2018.
  • Colorization(图片上色)
[2] R. Zhang, P. Isola, and A. A. Efros, "Colorful Image Colorization," in ECCV, Cham, 2016, pp. 649-666.
  • Inpainting(图片补全)
[3] D. Pathak, P. Krahenbuhl, J. Donahue, T. Darrell, and A. A. Efros, "Context Encoders: Feature Learning by Inpainting," CVPR, 2016.
  • Jigsaw Puzzle/Context Prediction(关系预测/上下文预测)
[4] C. Doersch, A. Gupta, and A. A. Efros, "Unsupervised Visual Representation Learning by Context Prediction," ICCV, 2015.