伪标签(用于深度神经网络的简单高效的半监督学习方法)
未标记的数据由监督学习网络标记,即所谓的伪标记。然后使用标记数据和伪标记数据训练网络。
文章图片
伪标签 (Pseudo-Labels)
伪标签是对未标记数据的进行分类后的目标类,在训练的时候可以像真正的标签一样使用它们,在选取伪标签的时使用的模型为每个未标记样本预测的最大预测概率的类:
文章图片
伪标签可以用于带有 Dropout 的微调阶段。预训练网络以监督方式同时使用标记和未标记数据进行训练:
文章图片
其中 n 是 SGD 标记数据中的样本数,n' 是未标记数据中的样本数;C 是分类总数;
fmi 是标注数据的输出,ymi 是对应的标签;
f'mi 为未标注数据,y'mi 为对应的伪标签;
α(t) 是在 t 时期平衡它们的系数。如果 α(t) 太高,即使是标记数据也会干扰训练。而如果 α(t) 太小,我们就不能利用未标记数据的好处。所以α(t)在训练期间缓慢增加,以帮助优化过程避免局部最小值不佳:
文章图片
实验结果
t-SNE 可视化
文章图片
使用MNIST 数据集。神经网络有 1 个隐藏层。ReLU 用于激活,Sigmoid Unit 用于输出。隐藏单元的数量为 5000。使用 600 个标记数据和 60000 个未标记数据进行伪标签标记后再次进行训练。
尽管在这两种情况下训练误差为零,但通过使用未标记数据和伪标签进行训练,测试数据的输出明显更好。
熵
文章图片
MNIST 上标记(训练)数据、未标记数据和测试数据的网络输出的条件熵。
DropNN:在没有未标记数据的情况下进行训练。(Drop 意味着 Dropout。)
+PL:使用未标记的数据进行训练。
虽然在这两种情况下标记数据的熵接近于零,但通过 Pseudo-Label 训练,未标记数据的熵会降低,此外,测试数据的熵也会随之降低。
错误率
具有 600、1000 和 3000 个标记训练样本的 MNIST 测试集上的分类错误。
文章图片
标记训练集的大小减少到 100、600、1000 和 3000。对于验证集,分别选取 1000 个标记示例。
使用相同的网络和参数进行了 10 次随机分割实验。在 100 个标记数据的情况下,结果在很大程度上取决于数据拆分,因此进行了 30 个实验。
【伪标签(用于深度神经网络的简单高效的半监督学习方法)】尽管简单,但所提出的方法优于小标记数据的传统方法。训练方案没有Manifold Tangent Classifier 复杂,并且不使用样本之间计算量大的相似度矩阵。
总结
这是一篇2013年的论文。虽然论文很老了,但是论文所给出的伪标签的方式在现在(2022年)还是一直在使用,所以对于这方面不了解的小伙伴推荐查看。
[2013 ICLRW] [Pseudo-Label (PL)] Pseudo-Label: The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks
https://www.overfit.cn/post/ae4de5629d074b4b972ad41c629adf3f
作者:Sik-Ho Tsang
推荐阅读
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- [丰声]简字·第14期|[丰声]简字·第14期 精要主义(有限时间精力只用于有意义的事)
- 第二阶段day1总结
- whlie循环和for循环的应用
- 今日份H5
- 适用于小白(VSCode搭建Vue项目,最详细的搭建步骤哦)
- “始作俑者”是伪命题
- 初识html标签
- 只有长期的坚守,才能成为一个有标签的人
- 【杂序】最虚伪莫过于兄弟情义