伪标签(Pseudo Label)半监督学习中的概念,能够帮助模型更好的从无标注的信息中进行学习。
与完全的无监督学习相比,半监督学习拥有部分的标注数据和大量的未标注数据,更加适合现实场景和竞赛场景。
- 在现实,标注数据少,未标注数据多;
- 在竞赛,训练集有标注,测试集未标注;
在半监督学习中伪标签是其中的方法,思路如下:先利用现有的标注数据,训练模型;利用训练的模型对无标注数据预测;将无标注数据的预测标签和数据加入训练集一起训练;
不是将所有的未标注数据预测后一起进行训练,
- 如果初期有标注的数据集比较少,则每次加入的伪标签也不能很多;
- 上述对未标注数据进行预测和加入训练的过程是迭代进行,不是单次进行的。
在竞赛中伪标签不是万能的,一般情况下伪标签适用于:
- 非结构化数据,使用深度学习的常见下;
- 模型的精度较高的情况下,加入的伪标签才精确;
在竞赛中,根据Kaggle的机制伪标签可以分为:
- 非Kernel赛:线下伪标签,线下预测,进行伪标签训练,再预测;
- Kernel赛:线上伪标签,线上预测,伪标签再训练预测,再预测;
伪标签与软标签:
- 伪标签(Pseudo Label)对未标注数据进行预测,进行二次训练;
- 软标签(Soft Label)对标签转为离散值,进行二次训练;
软标签一般使用在模型蒸馏和某些数据集的训练中,可以让模型学习到样本整体类别分布。同时软标签与硬标签(Hard Label)相比,可以防止模型过拟合,配合mixup一起进行使用。
软标签与伪标签同时使用;在下图中照片的原始标签为car,但照片还有person的类别,如果直接使用硬标签进行训练,会带来一定的模型噪音。可用模型的预测概率结果(每类概率分布)代替原始图片的标签进行训练,这样图片的标签就更加合理,模型训练过程也会更加稳定。
- 在竞赛中如果没有其他涨分的方法,再建议尝试伪标签,否则不建议尝试;
- 伪标签适合用在深度学习方法中,且一般选择预测执行度高的样本加入训练;
- 伪标签是否能使用,需要按照举办方规定;
半监督的训练过程:
第一步:使用标签数据训练模型
第二步:使用训练的模型为不加标签的数据预测标签
第三步:同时使用pseudo和标签数据集重新训练模型,模型用于对测试数据的最终预测。
参考:Kaggle知识点:伪标签Pseudo Label - 墨天轮
【机器学习】伪标签(Pseudo-Labelling)的介绍:一种半监督机器学习技术 - 腾讯云开发者社区-腾讯云