Pseudo Label

伪标签介绍伪标签(Pseudo Label)是半监督学习中的一个概念,能够帮助模型更好的从无标注的信息中进行学习。与完全的无监督学习相比,半监督学习拥有部分的标注数据和大量的未标注数据,这种形式也更加适合现实场景和竞赛场景。在现实,标注数据少,未标注数据多;

在竞赛,训练集有标注,测试集未标注;

那么如何完全将未标注的数据利用起来呢?在半监督学习中伪标签是其中的方法,具体思路如下:首先利用现有的标注数据,训练得到一个模型;利用训练得到的模型对无标注数据进行预测;然后将无标注数据的预测标签和数据加入训练集一起训练;

伪标签的思路非常简单,在竞赛中非常常见,但上述步骤并不是完全直接预测所有的未标注数据,也不是将所有的未标注数据预测后一起进行训练。如果初期有标注的数据集比较少,则每次加入的伪标签也不能很多;

上述对未标注数据进行预测和加入训练的过程是迭代进行,不是单次进行的。

在竞赛中伪标签不是万能的,一般情况下伪标签适用于:

非结构化数据,使用深度学习的常见下;

模型的精度较高的情况下,加入的伪标签才精确;

在竞赛中,根据Kaggle的机制伪标签可以分为:非Kernel赛:线下伪标签,线下预测,进行伪标签训练,再预测;

Kernel赛:线上伪标签,线上预测,伪标签再训练预测,再预测;

虽然Kernel机制防止了选手人工标注,但还是这届选手有水平呀!

伪标签 vs 软标签伪标签与软标签名字上比较类似,两者很容易弄混淆:伪标签(Pseudo Label)对未标注数据进行预测,进行二次训练;

软标签(Soft Label)对标签转为离散值,进行二次训练;

软标签一般使用在模型蒸馏和某些数据集的训练中,可以让模型学习到样本整体类别分布。同时软标签与硬标签(Hard Label)相比,软标签可以防止模型过拟合,也可以配合mixup一起进行使用。

当然也可以将软标签与伪标签同时使用,如下图的思路。在图中照片的原始标签为car,但照片还有person的类别,如果直接使用硬标签进行训练,会带来一定的模型噪音。

可以将模型的预测概率结果(每类概率分布)代替原始图片的标签进行训练,这样图片的标签就更加合理,模型训练过程也会更加稳定。

伪标签注意事项在竞赛中如果没有其他涨分的方法,再建议尝试伪标签,否则不建议尝试;伪标签适合用在深度学习方法中,且一般选择预测执行度高的样本加入训练;伪标签是否能使用,需要按照举办方规定;

伪标签竞赛案例Instant Gratification,kernel赛https://www.kaggle.com/cdeotte/pseudo-labeling-qda-0-969Global Wheat Detection,kernel赛

https://www.kaggle.com/nvnnghia/fasterrcnn-pseudo-labeling

https://www.kaggle.com/nvnnghia/yolov5-pseudo-labeling

Challenges in Representation Learning

https://www.kaggle.com/c/challenges-in-representation-learning-the-black-box-learning-challenge/discussion/4726

赛事交流群已成立一起组队参赛,baseline交流分享如果加入了之前的社群不需要重复添加!

若进群失败,可在Coggle后台回复【竞赛群】即可得到最新的二维码!

2025-07-25 05:55:50