GLIP,FLIP论文阅读

Scaling Language-Image Pre-training via Masking(FLIP,2023)👍

请添加图片描述

贡献:

1.图像端引入MAE的随机MASK,image encoder只处理未mask的patches(和之前的MAE方法一致),减少了输入序列长度加速训练,减少memory开销。

text端没引入mask是因为text信息比较dense(图片信息比较稀疏),mask掉效果反而不好,之后是选择mask掉text
padding的地方提升了精度。

2.做了三个方面的scale:说明model和data的scale还是很重要的,不同数据集相同大小也会对模型造成影响

  • model scaling:vit变大,效果很直观的好
  • data scaling:将预训练数据集从LAION-400M扩展到更大的数据集LAION-2B(固定训练过程采样的样本总量)
  • schedule scaling:增加训练过程的采样数据量(从12.8B->25.6B,即训练epochs从32增加至64

请添加图片描述
下图绿色划线:增大VIT有利于transfer learning,增加数据量有利于做zero shot
请添加图片描述

模型

请添加图片描述

Ablation study

请添加图片描述

(a)我觉得可能提升的一个因素是bz大了,负样本也多了,效果好,作者不做相同bz的实验
(d)说明了减少mask率微调几个epoch有有助于提升精度


GLIP:Grounded Language-Image Pre-training(2022)👍

模型:

请添加图片描述

Language-Aware Deep Fusion:

1.image encoder 和 text encoder 抽取图像和文本的特征
请添加图片描述
2.对抽取的特征进行cross attention ,获得更好的交互后的特征:
请添加图片描述
X-MHA:cross-modality multi-head attention module,类似cross attention,qk算attn,各自的v分别算一次
请添加图片描述

请添加图片描述
上图(B)是在(A)的基础上添加了deep fusion,涨点还是很明显的,增加数据量涨点也很明显

gLIP 2 是基于 gLIP 的进一步改进版本,主要专注于提升模型在少样本学习场景中的表现。以下是关于 gLIP 2 的相关信息: ### gLIP 2 模型概述 gLIP 2 使用了微调后的 gLIP 模型作为其基础架构,并通过引入额外的学习目标来优化性能[^1]。具体而言,在训练过程中,除了对齐损失函数(由 Eq.3 定义),还加入了标准的交叉熵损失用于分割任务上的监督学习。这种组合方式有助于提高学生网络对于少量标注数据的学习能力。 #### 训练设置 为了验证方法的有效性,研究者采用了类似于 PartSLIP 中设定的方式来进行实验设计。他们选取了来自 PartNetE 数据集内的每种类别下的八个带标签形状实例进行训练。这些样例被用来指导学生网络调整参数以适应特定的任务需求。 #### 实现细节 以下是一个简单的实现框架示例,展示了如何利用 PyTorch 来构建这样一个系统: ```python import torch.nn as nn import torch.optim as optim class StudentNetwork(nn.Module): def __init__(self, base_model): super(StudentNetwork, self).__init__() self.base = base_model def forward(self, x): return self.base(x) # 假设我们已经加载了一个预训练好的GLIP模型 pretrained_glip = ... # 加载并初始化gLiP模型 student_net = StudentNetwork(pretrained_glip) criterion_align = CustomAlignmentLoss() # 自定义对齐损失 (Eq.3) criterion_ce = nn.CrossEntropyLoss() optimizer = optim.Adam(student_net.parameters(), lr=0.001) for epoch in range(num_epochs): for data in dataloader: inputs, labels = data optimizer.zero_grad() outputs = student_net(inputs) loss_align = criterion_align(outputs, targets_for_alignment) loss_ce = criterion_ce(outputs, labels) total_loss = loss_align + alpha * loss_ce # 调整alpha权重因子平衡两项损失 total_loss.backward() optimizer.step() ``` 上述代码片段演示了如何创建一个继承自预训练 gLIP 模型的学生网络类 `StudentNetwork` ,并通过结合两种不同的损失函数对其进行联合优化过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值