使用Pseudo Labeling(伪标签)提高模型的分类效果

文章目录

  • Pseudo Labeling原理
  • 实际应用Pseudo Labeling pipeline
  • 写在最后

Pseudo Labeling原理

目前为止,大部分的机器学习和深度学习分类问题都需要大量的数据进行训练,而人类往往通过认识几个新鲜事物就能够很好地进行判断,这主要是由于人类可以由自己的判断产生的结果进行推断和强化但是机器面对未知的对象却不行。这种相差巨大的判别机制让人们开始思考机器进行认知分类任务的原理能够有所改进,于是Pseudo Labeling应运而生。

简而言之,Pseudo Labeling将测试集中判断结果正确的置信度高的样本加入到训练集中,从而模拟一部分人类对新对象进行判断推演的过程。效果比不上人脑那么好,但是在监督学习问题中,Pseudo Labeling几乎是万金油,几乎能够让你模型各个方面的表现都得到提升。

实际应用Pseudo Labeling pipeline

Pseudo Labeling会影响到数据处理、模型构建、模型调试、结果预测等各个方面,因此将其视为一个trick更为合适,引用kaggle notebook:Pseudo Labeling - QDA - [0.969]中的流程总结,:

  1. 使用原始训练集训练并建立模型
  2. 使用训练好的模型对测试集进行分类
  3. 将预测正确置信度高的样本加入到训练集中
  4. 使用结合了部分测试集样本的新训练集再次训练模型
  5. 使用新模型再次进行预测

流程比较简单,但是存在几个问题:

  • 以上步骤可否重复进行,如果可以,进行几轮Pseudo Labeling效果最好?
  • 置信度在不同的问题中应该如何进行确定?

可见引入Pseudo Labeling会让我们的超参数调试大家庭更加热闹。

写在最后

Pseudo Labeling虽然实用而且往往能够提升模型表现,但是目前为止似乎还没有开箱即用的API可供使用,这也就意味着面对不同的问题我么需要不同的定制方案,希望fastai能够延续封装万金油trick然后给出默认最佳参数的传统,早日让大家享受Pseudo Labeling带来的效率提升。

感谢Pseudo Labeling - QDA - [0.969]的作者,笔记本中同样提到了Pseudo Labeling在QDA模型中的应用,对于Pseudo Labeling的实现很有参考意义。

你可能感兴趣的:(python机器学习,-,深度学习,人工智能,深度学习,神经网络)