论文阅读——InternImage(cvpr2023)

arxiv:https://arxiv.org/abs/2211.05778

github:https://github.com/OpenGVLab/InternImage

一、介绍

大部分大模型都是基于transformer的,本文是一个基于CNN的视觉基础模型。使用可变性卷积deformable convolution作为核心操作,使得模型有大的有效的感受野和自适应的空间集合。

稍微改动了一下deformable convolution v2 (DCNv2),然后用这个DCNv3结合其他设计和一些前沿方法设计了一个block模块,然后堆叠和扩大这些模块增加参数提高表示能力。

二、InternImage Model

1、Deformable Convolution v3

Convolution vs. MHSA(multi-head self-attention):

从长期依赖的角度,即使有非常深的模型,基于CNN的模型仍然无法获得像ViTs这样的长期依赖性,这限制了它的性能。

从自适应空间聚合的角度,MHSA权重是根据输入动态的,常规的卷积权重是静态的且有非常强的归纳偏差(inductive biases),如位置、周围的结构等,由于这些归纳偏差,卷积模型收敛的比较快并且比vit模型需要更少的数据集,但是也限制了CNN模型学习更一般更鲁棒特征的能力。

2、DCNv2

DCNv2作为常规卷积扩展,加载预训练模型,然后微调得到更好的性能来使用,这并不适用于从头开始训练的大规模视觉基础模型。于是,从以下三个方面扩展了DCNv2,得到DCNv3:

1)卷积神经元之间的权重共享:将原始的卷积分解为Depthwise卷积与Pointwise卷积

2)引入多组机制:多组机制首先出现在一组卷积中。将空间聚合过程分为G组,每一组有单独的采样偏移∆pgk和模块尺度mgk。这样不同组在同一卷积层可以获得不同空间聚合模式,可以得到更强的特征表示。

3)沿采样点归一化modulation scalars(Normalizing modulation scalars along sampling points):DCNv2是通过sigmoid函数元素级归一化,因此每个modulation scalar范围是[0,1],这样所有采样点的modulation scalar求和不稳定,范围[0,K],这会导致梯度不稳定。沿采样点归一化modulation scalars就可以使得所有采样点的modulation scalar求和在0-1之间,使训练过程稳定。

综上,得到的DCNv3为:

3、Model

4个stage,每个stage有三个超参数,所以模型原本应该有12个超参数,最佳超参数搜索空间很大,于是作者总结了一下以前的模型设置的,总结了四个规律,如上图右下角,然后最后得出只需要4个超参数就可以:s (C1, C' , L1, L3),然后根据实验得出最佳超参数为(64, 16, 4, 18)。

有了模型之后,因为要训练一个很大参数的基础模型,所以考虑怎么使得模型变大,增加参数。参数缩放规则,也就是根据什么使模型变大,作者考虑了两种方式,深度,即L,多叠加几层stage,和宽度,即C,即每层提取的特征增加,或者是两个维度按某种比重α, β,φ结合:

最终实验找到最佳α, β是α=1.09, β=1.36

相关推荐
_志哥_21 小时前
Superpowers 技术指南:让 AI 编程助手拥有超能力
人工智能·ai编程·测试
YongGit1 天前
OpenClaw 本地 AI 助手完全指南:飞书接入 + 远程部署实战
人工智能
程序员鱼皮1 天前
斯坦福大学竟然开了个 AI 编程课?!我已经学上了
人工智能·ai编程
星浩AI1 天前
Skill 的核心要素与渐进式加载架构——如何设计一个生产可用的 Skill?
人工智能·agent
树獭非懒1 天前
告别繁琐多端开发:DivKit 带你玩转 Server-Driven UI!
android·前端·人工智能
阿尔的代码屋1 天前
[大模型实战 07] 基于 LlamaIndex ReAct 框架手搓全自动博客监控 Agent
人工智能·python
小小小怪兽1 天前
🔨聊一聊Skills
人工智能·agent
穿过生命散发芬芳1 天前
OpenClaw:开启OpenCloudOS 操作系统智能运维初体验
人工智能·aigc
老金带你玩AI1 天前
Claude Code自动记忆来了!配合老金三层记忆系统全开源!加强Plus!
人工智能
Halo咯咯1 天前
无限免费 OpenClaw:接入本地模型后,你的 AI Agent 就可以 24 小时自动干活(Mac Mini 可用)
人工智能