专栏首页纸鱼AI解锁竞赛新姿势-伪标签技术

解锁竞赛新姿势-伪标签技术

1 简介

伪标签技术现在几乎在所有的Kaggle数据竞赛中都会被提到或者使用到,而且很多情况下都可以帮助选手拿到更好的分数,伪标签技术作为一种半监督的方法,其实在很久之前就已经被提出来使用了,那么为什么伪标签技术究竟是怎么做的呢?为什么有效呢?什么时候有效,什么时候可能无效?阅读本文,帮你更好地理解这种神奇的操作。

1.1 三种伪标签操作

关于伪标签的使用,从kaggle赛后的讨论,或者从kaggle GM的分享中,我们发现当训练集的数据不是非常多的时候,使用能带来不错的提升;当数据集比较多的时候,有时候也会有帮助,但提升并不会非常明显,那么该操作是怎么做的呢?

1.1.1 基础版

  1. 使用有标签的数据集训练得到自己最好的模型(可以是单个也可以是多个),然后对测试集进行预测;
  2. 筛选出测试集合中的高概率的预测样本(例如二分类中,我们选出预测概率大于0.99的样本,并标注为1);
  3. 将伪标签样本加入模型一起训练,然后预测提交。

上述这种操作,一般效果不会比直接使用有标签的样本训练效果差,所以早期大家也都是这么用的。

1.1.2 升级版

上面的操作,有一个升级版本,迭代版本。基本的操作是类似的,就是会迭代多轮。

  1. 使用有标签的数据集训练得到自己最好的模型(可以是单个也可以是多个),然后对测试集进行预测;
  2. 筛选出测试集合中的高概率的预测样本(例如二分类中,我们选出预测概率大于0.99的样本,并标注为1);
  3. 将伪标签样本加入模型一起训练再得到自己最好的模型,然后对测试集进行预测,再回到步骤2.

这个操作,如果有效的话,第一轮和第二轮还是较为明显的,但是一般第三轮之后效果就变化不大了(参考kaggle GM在kaggle Days上的分享),在某些特定情况下,该操作带来的提升相较于第一版还是挺明显的。

1.1.3 微调版本¶

上面两个版本大多数情况下效果不错,但也有一个问题,就是大家实践中会发现,每次筛选样本的时候,概率阈值较难定,而且影响很大,那么怎么办呢?此处我们再讲述一个微调版本。

  1. 使用有标签的数据集训练得到自己最好的模型(可以是单个也可以是多个),然后对测试集进行预测;
  2. 不再做筛选,我们把所有预测的样本拿过来,重新训练,训练的时候,我们将loss修改为:loss(训练集合) + a * loss(伪标签集合);
  3. 微调a,提交测试。

这种方法在神经网络的模型中经常使用,而且大量实践中也都取得了不错的效果。

1.2 伪标签技术为什么有效?

1.2.1 Chris的解释

很多人很好奇,为什么伪标签技术是有效的,Chris有一篇关于伪标签为什么有效的解释,

With more points, QDA can better estimate the center and shape of each ellipsoid (and consequently make better preditions afterward).Pseudo labeling helps all types of models because all models can be visualized as finding shapes of target=1 and target=0 in p-dimensional space. See here for examples. More points allow for better estimation of shapes.

好奇的可以去参考他的notebook。

1.2.2 如果不是非常明白,我们看一下论文的解释

伪标签技术是一种半监督的方法,那么半监督学习是希望用无标签的数据来提升模型的泛化性能,而cluster assumption中说,如果我们的决策边界在低密度(low-density)区域的时候,我们就可以提升模型的泛化性能。伪标签技术和entropy 正则非常相似。熵正则化(Grandvalet和Bengio,2005)是另一种半监督学习技术,它鼓励分类器对未标记的数据进行自信预测。例如,我们希望一个未标记的点被分配到一个特定类中的高概率,而不是分散在多个类中的概率。其目的是利用数据按类聚类的假设(在半监督学习中称为“聚类假设”)。因此,邻近点具有相同的类,不同类中的点之间的距离更大,使得真正的决策边界穿过输入空间的低密度区域

可视化

  • 未加入伪标签
  • 加入伪标签

从上面两张图看来,伪标签可以使得我们的获得更好的泛化效果。

1.2.3 如果还是不明白...

我们把a设置为0,那么微调版本就是我们原始的问题,也就是说优化原来的问题使我们伪标签技术的一个特例,再换句话说,我们微调版本的最优解包含了原来监督版本的最优解,所以伪标签技术是大概率会有效。

1.3 何时伪标签技术有奇效,何时无效?

1.3.1 伪标签技术何时有效?

从作者的实验中,我们发现,当我们的数据样本相对较少的时候,那么我们的伪标签技术带来的提升是非常大的,当我们的数据足够多的时候,伪标签技术能带来的提升相对有限。作者在论文中,使用100张图片训练可以拿到1.5%左右的提升,600张图片可以拿到0.15%的提升,因为600张图片差不多就可以refine得到我们的结构。

1.3.2 伪标签什么时候会失效?

从论文中,我们发现100张图片可以带来很大的提升,但是也极其不稳定,也就是说伪标签对于初始的预测是十分敏感的,所以如果我们的初始预测很差的时候(例如我们的训练样本极少(例如5,6个样本),预测很差的情况,那么伪标签技术很大概率会失效。

2 参考资料

  1. Chris:https://www.kaggle.com/cdeotte/pseudo-labeling-qda-0-969
  2. Grandvalet and Bengio (2005). Semi-supervised learning by entropy minimization.
  3. Lee (2013). Pseudo-Label: The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks.
  4. Oliver et al. (2018). Realistic Evaluation of Semi-Supervised Learning Algorithms.
  5. Why does using pseudo-labeling non-trivially affect the results?:https://stats.stackexchange.com/questions/364584/why-does-using-pseudo-labeling-non-trivially-affect-the-results
  6. 伪标签(Pseudo-Labelling)介绍:一种半监督机器学习技术:http://www.atyun.com/8381.html
  7. 伪标签半监督学习:https://www.jianshu.com/p/fd4cae0d0e85

本文分享自微信公众号 - 纸鱼AI(gh_5cb3929923da)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Facebook:既能对话又能行动的冒险游戏研究平台LIGHT | EMNLP 2019

    Jack Urbanek、Angela Fan等(FAIR、法国洛林国家信息及其应用研究所(LORIA-Nancy)、伦敦大学学院)

    linhw
  • 超全AI论文合集!涵盖NLP/CV/ML/多模态等众多方向!不用烦心寻找领域经典论文!

    GitHub上汇聚了许多研究者发布的相关领域的资源清单,比如"awesome-relation-extraction", "awesome-sentiment-...

    linhw
  • 【论文解读】基于图Transformer从知识图谱中生成文本

    论文Text Generation from Knowledge Graphs with Graph Transformers发表于2019年自然语言处理顶级会...

    linhw
  • JavaWeb(十三)简单标签

    用户定义的一种自定义的jsp标记 。当一个含有自定义标签的jsp页面被jsp引擎编译成servlet时,tag标签被转化成了对一个称为 标签处理类 的对象的操作...

    leeqico
  • HTML中的容器标签

    什么是容器标签?在HTML开发中我们常常会使用一类标签作为容器放置一些内容,我们把这类标签称之为容器标签,可以作为容器标签的包括列表标签、表格标签、框架标签、布...

    一墨编程学习
  • HTML标签

    HTML(英文Hyper Text Markup Language的缩写)中文译为“超文本标签语言”,主要是通过HTML标签对网页中的文本、图片、声音等内容进行...

    星辰_大海
  • HTML标签分类

    在HTML页面中,带有“<>”符号的元素被称为HTML标签,如 <HTML>、<head>、<body>、<head>等都是HTML骨架结构标签。所谓标签就是放...

    爱知汇
  • 用户画像实践:神策标签生产引擎架构

    导读:用户画像是建立在数据基础之上的用户模型,是产品改进、精准营销等业务场景中不可或缺的重要基础。而构建用户画像的过程就是要给用户打上各种维度的标签,并基于标签...

    木东居士
  • 【CSS选择符】后代选择符

    在学习后代选择符之前,首先要了解一下组成一个网页的HTML家谱,每个HTML标签标示其中一个家庭成员。网页中的第一个HTML标签(标签),相当于所有其他标签的始...

    企鹅号小编
  • 前端基础-HTML

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    cwl_java

扫码关注云+社区

领取腾讯云代金券