1、目的
探索基于contrastive/Siamese范式(而非masked auto-encoding范式)和ViT结构(而非卷积网络)的自监督学习
2、方法
MoCo v3
1)random data augmentation
2)query encoder ,key encoder
3)学习目标是retrieve corresponding "key"。损失函数用InfoNCE:
4)不用memory queue,因为batch足够大
5)encoder = backbone + projection head + prediction head。是的moving average,但去除了prediction head
3、训练稳定性
训练的稳定性不会导致网络不收敛,而会导致准确性下降
1)batch size过大时导致训练不稳定
2)learning rate = 。学习率越小,训练越稳定,但可能under-fitting;学习率越大,训练越不稳定
3)optimizer
LAMB(AdamW-counterpart of LARS)对lr的要求比较高,最终还是选用AdamW
4)提升稳定性的trick
gradient spike先出现在first layer,然后在几个iteration之后出现在last layer,说明训练不稳定性起源于shallower layers
固定random patch projection层可以提升稳定性,而BatchNorm、WeightNorm、(阈值不够小的)gradient clip作用不大
将3通道16x16的patch编码为768-d的输出,信息损失可以忽略不计,因此即便用随机参数初始化也可以
4、其他
去除position embedding只轻微影响准确性,说明位置信息还没有被充分探索