对比学习发展历程综述 p1 自用笔记
学习 bryanyzhu 老师的 对比学习综述 大致了解对比学习的使用场景。
第一阶段:百花齐放
InstDisc:里程碑式的任务,取得不错的无监督表征学习的结果,提出“代理任务” -- 个体判别任务的概念,提出MemoryBank的思想。为后续对比学习的工作提供灵感和模板。

将一个batch图片进入网络后降维至128D作为正样本(样本间互为负样本),同时也在MMBank中抽取负样本,使用NCEloss做对比学习,做反向传播更新网络和特征。这里MMbank里面的特征,会随之网络的更新做动量式的更新。
InvaSpread:SimCLR前身,未使用MemoryBank的概率,只使用单个batchsize里的图片进行对比学习,也是最基本的对比学习模板。

文中选取正负样本的方式可以学习:也是个体判别任务,对于batchsize为256 - x1,2,3,4,5...,则做一次数据增强,得到256个新的 x' 1,2,3,4,5...,则对于该个体判别任务而言,x’1 为 x1的正样本,其余的510个图片为x1的负样本(这里是成对的图片,构建损失函数的方式有别于InstDisc),这样可以只用一个编码器,一个端到端的训练把整个实验跑完。不需要用需要额外的什么MMBank,也只需要一个编码器,没有其他的特征构造。
CPC:Contrastive Predictive Coding不使用个体判别方法进行对比学习,使用生成式的代理任务 - - 预测型的任务。是一个通用型的方法,可用于音频,图片,文字与强化学习中使用。

这里从Xt-3 到 Xt的时刻通过编码器genc输入后,得到的输入特征向量,然后这里选择了一个会联系上文信息的网络架构,可以是RNN或者LSTM作为gar,对上文的序列进行信息的提取,得到一个Ct作为输出,由于理论上后续的音频信息与前面的输入信息存在逻辑上的关系,所以CPC在这里尝试用这个Ct去“预测”后续的Xt+1,2,3等时刻的genc的特征输出,而这里如何体现出对比学习呢,即用真正的该时刻的输入得到的特征作为正样本,他应该和你的预测是相似的,而这里负样本定义可以很随意,可任意选取输入得到的特征作为负样本,他应该和你的预测是不相似的。这样可以完成一个表征学习。
这里的思想也可以用于图片,句子等等,用patch或者单词块去替换语音段。
CMC: “一个物体的很多视角都可以作为正样本 ——原图像 深度图 表面法线图 分割图 等等”多模态做对比学习。

人观察世界通过很多传感器,而每一个视角都给我们提供信息,而每个视角都是带有噪声的,而且一般是不完整的,但最重要的信息是在这些多视角中共享的,如语义信息,几何形状,轮廓,物理定律。那这样的思路,我们就可以用一个物体的多视角的图片训练一个网络,能从所有视角中抓住主要信息的模型。在训练中,同一个物体的不同视角互为正样本,其他则为负样本。
摘要写的好 可以学习他的讲故事方法。