论文阅读【SWINBERT: End-to-End Transformers with Sparse Attention for Video Captioning】

SWINBERT: End-to-End Transformers with Sparse Attention for Video Captioning

  • 发表 :CVPR 2022
  • idea:之前的方法都是使用其他任务上训练的特征提取器对video进行特征提取,所提取的特征可能与视频描述任务并不是绝对的匹配,即特征提取不参与训练。这篇文章的作者提出使用transformer对原生视频进行特征提取,然后再进行解码,实现端到端的训练。此外,实验发现performance随着采样的帧数增加而变好,但是为了缓解帧冗余提出了一种自适应的attention mask(可学习的)作为正则化的一种手段。
  • 代码:SwinBERT

详细设计

在这里插入图片描述

(1)框架概述

首先通过VidSwin(事先在Kinetics action recognition任务上训练好了)来提取原生视频的特征,得到M个video tokens。M video tokens与N word tokens(这里在训练的时候可能也模仿transformer使用了teacher forcing)一起输入到Multimodal Transformer Encoder(实质是transformer encoder)中进行解码,类似的,masked attention会用在word tokens(不允许作弊)。

(2)Sparse Attention Mask

为了缓解帧冗余对计算性能以及performance的影响,作者引入了一种可学习的Sparse Attention Mask
在这里插入图片描述
如上图所示,MultiModal transformer encoder的输入包含两部分:N word tokens and M video tokens。所以整个attention mask的size为 ( N + M ) ∗ ( N + M ) (N+M)*(N+M) (N+M)(N+M),上图中的 V V V(size: M ∗ M M*M MM)就是learnable attention mask,主要是为了控制video tokens之间的注意力。而word tokens对于 video tokens之间的注意力没有限制,以更好地利用视觉信息。
这部分的正则化 L S P A R S E L_{SPARSE} LSPARSE损失如下
在这里插入图片描述
λ λ λ是超参, V i , j V_{i,j} Vi,j是激活后的值(在实验中使用的是sigmod)

补充:引入稀疏性的优点
学习通过减少无意义连接的可能性来加强不同tokens之间最重要的关系,同时更多地关注包含丰富时空信息的活动视频令牌。通过这种方式,该模型可以生成更具表现力和描述性的自然语言句子。在学习过程中,稀疏约束将正则化模型训练,以发现视频序列的底层结构。

(3)训练与测试
  • 训练:
    作者在训练的时候使用了Masked Language Modeling(损失为 L m i n L_{min} Lmin)以帮助跨模态学习,即用预定义的特殊标记[mask]替换一定百分比的单词标记。然后,我们要求MultiModal Transformer预测masked ones。最终的损失包括正则化损失 L S P A R S E L_{SPARSE} LSPARSE和Masked Language Modeling的损失 L m i n L_{min} Lmin

  • 测试:
    测试部分与transformer的测试类似,上一步预测的word作为下一步的输入,是串行的。

实验
  • 对比实验
    在这里插入图片描述
    在这里插入图片描述
    结果非常好,提升10个点左右

  • 消融实验
    在这里插入图片描述

### DETR 模型概述 DETR (Detection Transformer) 是一种基于变压器架构的目标检测方法,它通过将目标检测视为集合预测问题来简化传统的两阶段管道[^3]。该模型的核心思想在于使用编码器-解码器结构,其中自注意力机制能够显式建模序列中所有成对交互关系,这使得其特别适合处理诸如消除重复预测之类的集合预测约束。 #### 编码器-解码器架构 DETR 使用了一种基于变压器的编码器-解码器架构。输入图像被划分为固定数量的 patches,并传递到 CNN 提取特征图。随后,这些特征图被展平并送入变压器编码器部分进行全局上下文建模。接着,在解码器端引入一组可学习的位置嵌入(称为查询),用于表示潜在的对象位置和属性。最终,解码器输出一系列边界框坐标以及对应的类别标签。 以下是实现 DETR 的基本代码框架: ```python import torch from torchvision.models.detection import detr_resnet50 # 加载预训练的 DETR 模型 model = detr_resnet50(pretrained=True) # 设置为评估模式 model.eval() # 输入张量形状 (batch_size, channels, height, width) input_tensor = torch.rand(1, 3, 800, 800) # 进行推理 outputs = model(input_tensor) print(outputs) ``` 此代码片段展示了如何加载一个预先训练好的 DETR 模型,并对其进行简单的前向传播操作以获取预测结果。 #### 训练流程优化 为了进一步提升性能,研究者们还提出了一些改进措施。例如,在小样本场景下,可以通过迁移学习技术增强泛化能力;或者设计专门针对稀有类别的损失函数来缓解数据不平衡现象[^4]。 ### 应用实例:全景分割 除了常规的目标检测任务外,DETR 同样可以扩展至更复杂的视觉理解领域——比如全景分割。具体而言,只需稍作调整即可让同一套网络同时完成语义分割与实例分割两项子任务。下面给出一段展示如何利用官方 Colab 笔记本运行 DEMO 的链接说明[^1]: [Panoptic Colab Notebook](https://github.com/facebookresearch/detr/blob/main/notebooks/panoptic.ipynb).
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值