最近对半监督学习很感兴趣,尤其是关于半监督学习在卷积神经网络中的应用。这里首先列出相关的文献,后面继续补充对于每一篇文献的介绍以及使用效果。
论文:Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks (ICML 2013) ,链接:http://deeplearning.net/wp-content/uploads/2013/03/pseudo_label_final.pdf
核心思想:通过网络对无标签数据进行预测,然后将预测结果进行锐化,得到伪标签(Pseudo-Label )。这里采用的锐化方法是一种极端的锐化方式——将预测结果最大概率位置置为1,其余地方置为0(相当于对向量求无穷范数)。最后将锐化后的伪标签和无标签数据组成新数据对加入训练。考虑到开始的网络预测结果可能不准确(置信度低),因此无标签数据对在误差函数中对应的权重比较低,随着训练epoch增加权重逐渐增加。
论文:Semi-Supervised Learning with Ladder Networks (NIPS 2015),链接:https://arxiv.org/abs/1507.02672
核心思想:无监督方法开始的时候都采用在无标签数据上进行 Auto-Encoder预训练,然后在有标签数据上进行监督训练。这种方式效果不好的原因在于无监督的预训练其根本目的在于最大限度地保留所有特征用于恢复自身,而为了完成某种任务的监督训练所需要的信息可能只是其中一部分,一种更加高明的方式应该是最大限度保留所有该任务需要的特征而不是所有特征。为此论文设计了一种形状像梯子一样的网络结构,在编码解码恢复自身的特征只有一部分用于监督训练。
论文:Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results (NIPS 2017),地址:https://arxiv.org/abs/1703.01780
论文:Temporal Ensembling for Semi-supervised Learning (ICLR 2017),链接:https://arxiv.org/pdf/1610.02242
论文:Virtual Adversarial Training: A Regularization Method for Supervised and Semi-Supervised Learning (TPAMI),链接:https://arxiv.org/abs/1704.03976
核心思想:前面通过各种随机扰动(在图片里面就是crop、rotate、flip、亮度变换等),使得没有标签的图像通过网络之后得到的target尽可能一致(从变化中找到不变量),以此来作为约束或者正则项。由于这样的做法在训练过程中形成了一个闭环,可以将这样的约束写成loss的形式,训练起来也很方便。但是显然这样的方法太过于随机,找到的随机扰动可能不是问题的痛点,因此这里采用对抗生成的方法,用一个网络去寻找无标签数据的痛点,相对于前面的随机扰动来说,通过网络生成的随机扰动更加具有针对性,约束也更强。
论文:MixMatch: A Holistic Approach to Semi-Supervised Learning,链接:https://arxiv.org/abs/1905.02249
核心思想:google的文章,基本上将前面的方法进行了概括
论文:Unsupervised Data Augmentation for Consistency Training,链接:https://arxiv.org/pdf/1904.12848
总结:虽然论文结果说得天花乱坠,但是一到实际场景好像就不行,比如自己随便造一个数据集,可能就有问题。论文里经常用这么几个数据集minist、cifar10、cifar100等,那其他数据集呢?为什么不使用下呢?所以这本身也说明了一个问题,就是半监督学习可能需要一定的假设才能成功(说白了就这几个数据集才有效)。如果有一天,当大家在kaggle比赛中都争先恐后地采用这种半监督方法的时候,那就是半监督真正大放异彩的时候。