【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、损失函数:

相关推荐
AngelPP19 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年19 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼19 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS19 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区20 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈20 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang21 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx
颜酱1 天前
单调栈:从模板到实战
javascript·后端·算法
shengjk11 天前
NanoClaw 深度剖析:一个"AI 原生"架构的个人助手是如何运转的?
人工智能