【multi-model】moco系列&SimCLR&BEiT

moco和SimCLR都属于对比学习,对比学习是属于无监督学习,不需要手动标注label,通过对原图像进行增强,产生新的图像,和其他图像做对比来计算loss,使同一张图片增强之后的两者之间的loss更近,不同图片之间的loss更远;
一、moco

关键词:内存银行、动量更新、队列

流程结构:

注意:

1、x_q和x_k是x0经过的不同的图像增强

2、Encoder和Momentum encoder的结构是一样的,为了保证编码的维度一致

3、Momentum encoder更新公式:θ_k = m*θ_k + (1-m)*θ_q, m是系数,默认0.99,θ_k是Momentum encoder,θ_q是Encoder

4、quene如果是1024*4096大小的,1024是指每个样本用1024维度的参数表征,4096的样本容量,每次有新的样本进来会更新指针,如果超过4096个,会替换掉最老的一批

5、相似度是余弦相似度

6、infoNCE Loss:

其中k+就是正样本相似度,ki就是所有样本的相似度,所以ki = 正样本相似度和负样本相似度,因此实际操作起来,需要将政府样本相似度cat一下,T是温度系数

7、内存银行目的,增加负样本数量,让效果更好
二、simCLR

关键词:图像增强,MLP、更大的batch

流程结构:

注意:

1、simCLR中用到的图像增强:随机裁剪然后将大小调整回原始大小,随机颜色失真,以及随机高斯模糊

2、中间涉及到的Encoder和MLP都是同一个网络

3、如果batch为N,那么会产生2N个增强后的图片,那么负样本就有2(N-1)个

4、batch越大效果越好,后面加MLP是因为验证之后效果好: ‌提升特征表达能力、优化对比学习目标、与数据增强的协同作用

5、如果是应对下游任务,那么会用Encoder完之后的hi和hj去做下游任务,而不是MLP完之后的zi和zj

6、Loss:

三、mocoV2

mocoV2实际上是moco和simCLR的合体

改动点:

1、参考simCLR的MLP层,mocoV2在encoder后面的fc之前加了一个线性层和一个relu,新增的分类器的训练用全部的 ImageNet label训练,这仅影响无监督训练阶段;线性分类或迁移阶段不使用此MLP头部;

2、在 MoCo v1 的基础上又添加了 blur augmentation
四、mocoV3

关键点:vit、双向对比、取消内存银行

流程结构:

注意:

1、mocoV3取消了内存银行,改为比较大的batchsize,比如4096

2、Encoder部分,用VIT换掉了Resnet50

3、认为x1和x2没有贵贱之分,因此采用双向的相似度计算,两个相似度矩阵相加

4、动量更新部分和loss计算部分之前一样,没有变化
五、BEiT

BEiT是基于掩码重建的自监督学习

关键点:VIT、dVAE、MIM

流程结构:

注意:

1、dVAE:离散变分自编码器(discrete Variance Auto-Encoder,dVAE)是一个早在2016年就被提出的无监督模型,它的核心模型是一个自编码器,由编码器(Encoder)和解码器(Decoer)组成。其中编码器的作用是将图像编码成一个特征向量,解码器的作用是使用这个特征向量对图像进行重建。dVAE正是通过这种图像的编码和解码实现模型的预训练的。

2、dVAE是预训练的,tokenizer和decoder部分是训练得来的

3、输入图像,分成很多patches,进入vit进行运算,同时每个patch会经过dVAE的tokenizer,得到编码,将vit的结果和tokenizer的结果进行对比求loss

4、分成不同的patch之后,还需要做MIM,就是随机对patch块进行掩码mask(约40%),掩码之后的patch放入transformer

5、损失函数:

相关推荐
Mxsoft61911 分钟前
某次联邦学习训练模型不准,发现协议转换字段映射错,手动校验救场!
人工智能
再卷也是菜32 分钟前
C++篇(21)图
数据结构·c++·算法
星轨初途37 分钟前
C++入门(算法竞赛类)
c++·经验分享·笔记·算法
shayudiandian41 分钟前
用PyTorch训练一个猫狗分类器
人工智能·pytorch·深度学习
这儿有一堆花1 小时前
把 AI 装进终端:Gemini CLI 上手体验与核心功能解析
人工智能·ai·ai编程
子午1 小时前
【蘑菇识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·python·深度学习
模型启动机1 小时前
Langchain正式宣布,Deep Agents全面支持Skills,通用AI代理的新范式?
人工智能·ai·langchain·大模型·agentic ai
Python私教1 小时前
别让 API Key 裸奔:基于 TRAE SOLO 的大模型安全配置最佳实践
人工智能
Python私教1 小时前
Vibe Coding 体验报告:我让 TRAE SOLO 替我重构了 2000 行屎山代码,结果...
人工智能
prog_61031 小时前
【笔记】和各大AI语言模型写项目——手搓SDN后得到的经验
人工智能·笔记·语言模型