阅读背景
SimCLR在2020年2月第一次挂在arxiv上,被ICML 2020接收
FixMatch在2020年1月第一次挂在arxiv上,被NIPS 2020接收
概括总结
SelfMatch方法和 FixMatch 都是NIPS 2020的文章,前者是work shop,后者是conference。
- 核心方法,是将自监督的contrastive learning 和 半监督的 consistency regularization 结合,具体是SimCLR+FixMatch 的流程:首先在unlabel data上进行SimCLR的自监督预训练,再在label data 和unlabel data 上进行FixMatch 的FT训练。
- 效果上,加上SimCLR 预训练,对FixMatch 会有不同程度的提升作用,当label data数据量较少时,提升作用较明显。同时作者发现加上SimCLR 预训练,会让模型更快地得到较好的结果。
- 整体评价:
- 方法的创新度不是很够,相当于给FixMatch换上了一个自监督训的预训练weight,SimCLR后新出现的很多自监督weight,以及最近新提出的效果很好的transformer,都可以这样试着用一下;
- 此外,根据作者实验结果,本文方法在label data数据量较少时,更换预训练weight对FixMatch的提升作用是挺大的,当label data数量增大时,这样的提升效果就不那么显著了;
- 还有很重要的一点,本文关于contrastive learning 和 consistency regularization 为什么结合后会有更好的效果,作者只是猜测说这两个方向是互补的,缺乏足够的理论解释;
- 不过本文也提出了一个比较好的尝试方向,那就是给consistency regularization 更换好的预训练weight,这是可以尝试的
阅读过程记录
-----预习提问----
1. contrastive 和 consistency两个方向的联系?
2. SelfMatch 为什么会比 S4L 好?方法异同在哪里?都是用到了自监督预训练weight
3. p-label方法,为了避免 over-fitting and noisy labels 问题,都进行了哪些改进?
4. conss方向,引入的p-label,都在哪些方法中有体现?
5. linear evaluation protocol on ImageNet,是在所有训练集上训的吗?
----粗读:总结结论----
1. SelfMatch 方法的核心是将自监督的contrastive learning 和 半监督的 consistency regularization 结合,具体:
-
- 结合方式:自监督的contrastive pre-train + 半监督 consistency FT
-
- 具体采用方法:contrastive 部分用的 SimCLR , consistency 部分用的 FixMatch
2. 作者提到说selfmatch,不仅能达到更高的acc, 而且整个算法可以更快达到较好效果,原因猜测是说 contrastive 和 consistency 这两个part 是互补的(complementary)
3. 本文detribution(整体来看创新点不多):
-
- 提出SelfMatch,将contrastive learning 和 半监督的 consistency regularization 结合
- SelfMatch效果不错
4. related works:
-
- 关于p-label:原始的p-label方法 suffers from the over-fitting and noisy labels
- 关于consistency:原始方法是进行stochastic transformation function并计算L2距离,一些新方法引入了p-label 和更advanced 的数据增强方法
----精读:要点记录----
关于consistency和contrastive两部分的关系
1. 作者认为这两部分是互补的,整理在表格中:
-
- 前者是最大化互信息,后者是最小化差异
- data aug方面,前者对称的,后者是不对称的
关于SelfMatch 和 S4L 的对比
1. 两个方法,整体来说整体思路都是自监督初始化+半监督FT,具体实操上各部分的target不同。异同点总结如下:
相同点:
- 方法结构一样:都包含了自监督pre-train + 半监督FT 这样的结构
- 半监督FT都包含了consistency regularization 过程
不同点:
- 自监督pre-train 实际 target 不同:
- S4L用的是pre-text task;
- SelfMatch是contrastive learning
- 自监督contrastive和半监督conss的结合方式不同:
- S4L分三步,从第一步开始,自监督contrastive loss和半监督conss的VAT就一起训练了
- SelfMatch中,先训自监督contrastive,再训半监督conss
- 半监督 consistency 输入部分有细微不同:
- S4L用的是VAT,目的是维持adversarial consistency;
- SelfMatch维持的是data augmentation consistency
2. 关于SelfMatch 为什么会比 S4L效果好,作者的解释是:
-
- 自监督预训练weight方面:SelfMatch的是 target-agnostic,S4L中的预测rotate勉强算是target-specific的,作者认为前者可以学到更好的特征表示,应用于下游任务中
- 半监督consistency方面:SelfMatch的是 data augmentation consistency,S4L是adversarial consistency,作者认为前者结构更简单并且优化空间更大
消融实验
- SimCLR \ FixMatch \ 两者结合,在CIFAR-10(4000 label)上的accuracy对比
num of label data | SimCLR | FixMatch | SelfMatch (SimCLR + FixMatch) |
250 | 94.93±0.65 | 95.13±0.26 | |
4000 | 91.36 | 95.74 | 95.94±0.08 |
50000 | 92.69 |
结论:这样看好像在4000 或者250 label data上,FixMatch 本身效果已经不错了,加上SimCLR提升不大