Skip to main content
  1. PaperReading/
  2. Survey/

Contrastive Learning & Meta Learning

Survey

对比学习
#

InstDisc:提出了个体判别的代理任务,核心思想是每张图片都是一个类
#

batch_size=256, 256个正样本,4096个负样本 Backbone是ResNet50,2048降维到128 200个epoch,温度0.07,学习率1e-2

数据结构:memory bank

InvaSpread:端到端,SimCLR前身
#

端到端,正负样本来自同一个mini batch,正样本是任一图片及其变换,负样本是其他图片及其变换

因为字典不够大(batchsize只有256),数据增广不够,没有加MLP,因此效果不好

MoCo:提出了“字典查找”的概念,认为对比学习本质上是在构建一个大字典
#

用队列取代memory bank

使用动量编码来解决大字典内key的不一致,由于key的编码器更新缓慢,因此可以认为一致

损失函数:infoNCE

普适性强,Q和K的编码器可以不同,输入可以是任意模态

simCLR:成功实现了端到端的对比学习
#

只有一个编码器

  1. 更多的数据增强:对比学习非常依赖数据增强
  2. 对比学习时增加了一个MLP层(迁移到下游任务时去除)
  3. 更大的batchsize:从而实现端到端训练

MoCov2
#

MoCo+数据增强+MLP+cos schedule

batch=256时,效果远优于sim CLR

simCLRv2
#

模型更大

MLP:fn-ReLu-fn

动量编码器

Meta Learning
#

参考:Meta-Learning in Neural Networks*: A Survey(2020)

Meta-learning经常被理解为learn to learn,可以分为两个阶段:内循环和外循环。

内循环阶段,模型利用训练样本拟合某个特定任务;在外循环阶段,对外循环的某个目标函数进行优化。

内循环和外循环迭代交替进行。

MAML: Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks(2017)
#

与传统机器学习的区别

  • 传统机器学习:训练集和测试集是同一个task,在训练集样本上训练模型,希望模型在测试集样本上表现好
  • MAML:task不同,在训练集可见的task上训练模型,希望在未见过的task上效果好
    • 利用训练集的task学习一个初始化参数,使这个参数在未见过的任务上finetune几轮,就能达到较好的效果

两个阶段:meta-train(内循环+外循环迭代更新,support set & query set)、meta-test(在具体任务上finetune)

9ab4c4bd-11ee-4a95-b377-f58ca4480c6a