©PaperWeekly 原创 · 作者|燕皖
单位|渊亭科技
研究方向|计算机视觉、CNN
在监督学习中,模型都是需要有一个大量的有标签的数据集进行拟合,通常数据成本、人力成本都很高。而现实生活中,无标签的样本的收集相对就很容易很多。因此,近年来,利用大量的无标签样本和少量的有标签样本的半监督学习备受关注。
本文主要介绍一种半监督的方法——Self-training,其主要思路是:先利用有标签数据训练得到模型,然后对无标签数据进行预测,置信度高的数据可以用于加入训练集,继续训练,直到模型符合要求。首先介绍了两种经典的 Self-training 方法,然后介绍了 Self-training 在 Kaggle 比赛上的实践。
Pseudo-label
论文标题:The Simple and EfficientSemi-Supervised Learning Method for Deep Neural Networks
论文来源:ICML 2013
论文链接:http://deeplearning.net/wp-content/uploads/2013/03/pseudo_label_final.pdf
代码链接:https://github.com/iBelieveCJM/pseudo_label-pytorch
1.1 训练策略
Pseudo-label 是 2013 年提出的一个非常简单有效的Semi-Supervised Learning 方法,其主要思想是在一批有标签和无标签的图像上,同时训练一个模型。训练流程如下:
Step 1:首先,同时使用有标记和未标记的 data,以有监督的方式训练 pretrained model。总损失是有标记和无标记损失项的加权和,前面是有标签数据的损失部分,后面的无标签数据的损失部分,如下:
其中,y 代表已标记数据的标签,y′ 代表了未标记数据的伪标签。
通常,为了确保模型已经从标记的数据中学习了足够多的信息,alpha_t 在最初的 N epoch 中,设置为 0,然后逐渐增加到 M epoch 后保持不变。如下式: