Pseudo Labeling原理
目前为止,大部分的机器学习和深度学习分类问题都需要大量的数据进行训练,而人类往往通过认识几个新鲜事物就能够很好地进行判断,这主要是由于人类可以由自己的判断产生的结果进行推断和强化但是机器面对未知的对象却不行。这种相差巨大的判别机制让人们开始思考机器进行认知分类任务的原理能够有所改进,于是Pseudo Labeling应运而生。
简而言之,Pseudo Labeling将测试集中判断结果正确的置信度高的样本加入到训练集中,从而模拟一部分人类对新对象进行判断推演的过程。效果比不上人脑那么好,但是在监督学习问题中,Pseudo Labeling几乎是万金油,几乎能够让你模型各个方面的表现都得到提升。
实际应用Pseudo Labeling pipeline
Pseudo Labeling会影响到数据处理、模型构建、模型调试、结果预测等各个方面,因此将其视为一个trick更为合适,引用kaggle notebook:Pseudo Labeling - QDA - [0.969]中的流程总结,:
- 使用原始训练集训练并建立模型
- 使用训练好的模型对测试集进行分类
- 将预测正确置信度高的样本加入到训练集中
- 使用结合了部分测试集样本的新训练集再次训练模型
- 使用新模型再次进行预测
流程比较简单,但是存在几个问题:
- 以上步骤可否重复进行,如果可以,进行几轮Pseudo Labeling效果最好?
- 置信度在不同的问题中应该如何进行确定?
可见引入