Kaggle知识点:伪标签Pseudo Label

2020 年 8 月 9 日 AINLP

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-969

  • Global 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





欢迎加入AINLP竞赛交流群
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注竞赛


推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

登录查看更多
40

相关内容

近期必读的六篇 ICML 2020【因果推理】相关论文
专知会员服务
87+阅读 · 2020年9月8日
【CVPR 2020-商汤】8比特数值也能训练卷积神经网络模型
专知会员服务
25+阅读 · 2020年5月7日
【CVPR2020】L2 ^GCN:图卷积网络的分层学习高效训练
专知会员服务
37+阅读 · 2020年3月31日
注意力图神经网络的多标签文本分类
专知会员服务
111+阅读 · 2020年3月28日
【机器学习课程】Google机器学习速成课程
专知会员服务
164+阅读 · 2019年12月2日
Kaggle比赛实战教程
专知
14+阅读 · 2018年7月30日
反欺诈中所用到的机器学习模型有哪些?
理解XGBoost机器学习模型的决策过程
炼数成金订阅号
4+阅读 · 2017年12月22日
难?不难?机器学习套路就这三个!
聊聊架构
3+阅读 · 2017年10月25日
为什么『无监督集成学习』乏人问津?
AI研习社
10+阅读 · 2017年10月24日
标签传播算法(Label Propagation)及 Python 实现
Python开发者
6+阅读 · 2017年9月18日
入坑机器学习,十个知识点你不得不知
人工智能头条
7+阅读 · 2017年9月15日
Python机器学习Kaggle案例实战
炼数成金订阅号
12+阅读 · 2017年8月10日
VIP会员
相关资讯
Kaggle比赛实战教程
专知
14+阅读 · 2018年7月30日
反欺诈中所用到的机器学习模型有哪些?
理解XGBoost机器学习模型的决策过程
炼数成金订阅号
4+阅读 · 2017年12月22日
难?不难?机器学习套路就这三个!
聊聊架构
3+阅读 · 2017年10月25日
为什么『无监督集成学习』乏人问津?
AI研习社
10+阅读 · 2017年10月24日
标签传播算法(Label Propagation)及 Python 实现
Python开发者
6+阅读 · 2017年9月18日
入坑机器学习,十个知识点你不得不知
人工智能头条
7+阅读 · 2017年9月15日
Python机器学习Kaggle案例实战
炼数成金订阅号
12+阅读 · 2017年8月10日
Top
微信扫码咨询专知VIP会员