参数量下降85%,性能全面超越ViT:全新图像分类方法ViR

简介: ViT 还不够完美?来自华东师范大学等机构的研究者提出了全新的图像分类方法 ViR,在模型和计算复杂性方面都优于 ViT。
ViT 还不够完美?来自华东师范大学等机构的研究者提出了全新的图像分类方法 ViR,在模型和计算复杂性方面都优于 ViT。

近一年来,视觉 Transformer(ViT)在图像任务上大放光芒,比如在图像分类、实例分割、目标检测分析和跟踪等任务上显示出了卓越的性能,展现出取代卷积神经网络的潜力。

但仍有证据表明,在大规模数据集上应用多个 Transformer 层进行预训练时,ViT 往往存在以下两个方面的问题:

  • 一是计算量大,内存负担大;
  • 二是在小规模数据集上从零开始训练时存在过拟合问题。

具体而言,对大规模数据集进行预训练和对下游任务进行调整对于虚拟信息处理来说是必不可少的,这往往会导致计算量过大和冗余,并且会增加额外的参数,从而增加内存负担。此外,具有多个 Transformer 编码层的 ViT 经常出现过拟合,特别是当训练数据有限的情况下。

为了解决这些问题,来自华东师范大学等机构的研究者们提出了一种新的图像分类方法,即 Vision Reservoir (ViR) 。通过将每个图像分割成一系列具有固定长度的 token,ViR 构建一个具有几乎完全连接拓扑的纯库,以替换 ViT 中的 Transformer 模块。为了提高网络性能,研究者还提出了两种深度 ViR 模型。

image.png


论文链接:https://arxiv.org/pdf/2112.13545.pdf

研究者在几个图像分类基准上进行了 ViR 和 ViT 的对比实验。在没有任何预训练过程的情况下,ViR 在模型和计算复杂性方面都优于 ViT。具体来说,ViR 的参数规模约为 ViT 的 15% 甚至 5% ,内存占用约为 ViT 的 20%-40% 。ViR 性能的优越性可以用 Small-World 特性、 Lyapunov 指数和内存容量来体现。

通常,ViR 可以通过比 ViT 编码器数量更少的层来获得相当好的表现,如下图 1 所示。

image.png

图 1:在 CIFAR100 数据集上执行 ViR 和 ViT 的时间消耗比较。与未经预训练的 ViT 相比,ViR 的初始准确性和最终准确性均有所提高。深度 ViR 是并行结构。在相同的深度下,ViR 的时间成本远远低于 ViT。

方法介绍

ViT 本质上是通过将图像 patch 视为时间序列,核心创新在于使用内核连接运算(比如点积)来获得图像 patch 之间的内在关联,如图像不同部分之间的空间和时间 (顺序) 一致性。这一点促使研究者想到了构建一个类脑网络,即储备池计算(Reservoir Computing,RC),它结合了内在的时空动态,具有更低的计算和内存消耗、更少的训练参数和更少的训练样本。

在 ViR 的设计中,研究者首先介绍了在储备池中使用的拓扑结构,并展示了一些公式和特征以阐明其工作机理。然后,研究者描述了所提出的 ViR 网络,并进一步给出了深度 ViR 的实例。最后,他们从几个方面分析了 ViR 的内在特性。

ViR 遵循与 ViT 相似的基础 pipeline,整体网络架构如图 2 所示:

image.png

图 2:模型概述。首先将输入图像分割成具有适当大小的 patch,然后将每个 patch 压缩成一系列序列向量,作为 ViR 的时间输入。为了获得更好的性能,ViR 的核心包含一个残差 block,可以堆叠成深度结构。

图 2 描述了所提出的图像分类模型,其关键组成部分是 ViR 的核心,该核心由具有上述内部拓扑结构的储备池和差 block 组成。

通过进一步堆栈储备池,研究者获得了深度的 ViR,进一步增强了网络性能。如下图 4 所示,第一个是由 L 储备池组成的系列储备池。

image.png

图 4:深度 ViR 的结构。上部为串行储备池,下部为并行储备池。

实验

研究者在 MNIST、 CIFAR10 和 CIFAR100 三个经典数据集上,对所提出的 ViR 模型和常用的 ViT 模型进行了对比。同时也对模型中的参数进行了比较,分析了模型的收敛速度和内存占用情况。此外还在 CIFAR10-C 上进行了鲁棒性测试。在实验中,原始的 ViT 命名为 ViT-base ,并做了一些更改,如下表 1 所示。

image.png

表 1: ViR 和 ViT 的系统参数。N 是一个储层中的神经元数,α 是 w 的谱半径的标度参数,SD 是输入矩阵 v 的稀疏度,ri,rj,rk 和 jump size 在论文的第 3.1 小节中有详细说明。在 ViT 这一行中,对于所有测试的数据集,patch size 是相同的。

在没有任何预训练的情况下,研究者通过在 MNIST、 CIFAR10 和 CIFAR100 上执行图像分类任务,将 ViR1、 ViR-3、 ViR-6 和 ViR-12 与 ViT-1、 ViT-3、ViT-6 和 ViT-12 进行比较。下表 3 显示了分类的准确性和参数量的对比。

image.png

表 3:ViR 模型和 ViT 模型在各个图像分类数据集上的比较。数字后缀表示 ViT 的 ViR 层或编码器的数量。「m」是百万级的单位符号表示。

image.png

图 6:MNIST 和 CIFAR100 数据集在 4 × 4、14 × 14 和 16 × 16patch size 下的内存占用比较。

对于模型鲁棒性,研究者从两个方面进行了评估:即输入图像的损失和系统超参数的干扰。

image.png

表 4: 输入图像对于鲁棒性的影响。

更多细节详见论文原文。

00.jpg

相关文章
|
JSON 前端开发 JavaScript
AVUE:前端搬砖神器,一套基于vue+elementUI的框架
AVUE:前端搬砖神器,一套基于vue+elementUI的框架
2197 0
AVUE:前端搬砖神器,一套基于vue+elementUI的框架
|
3月前
|
人工智能 物联网 测试技术
智能化测试基础架构:软件质量保障的新纪元
本文介绍了智能化测试基础架构的核心构成与优势。该架构融合AI、领域工程与自动化技术,包含智能测试平台、测试智能体、赋能引擎和自动化工具链四部分,能自动生成用例、调度执行、分析结果,显著提升测试效率与覆盖率。其核心优势在于实现专家经验规模化、质量前移和快速适应业务变化,助力企业构建新一代质量保障体系。建议从构建知识图谱和试点关键领域智能体起步,逐步推进测试智能化转型。
|
5月前
|
人工智能 安全 Android开发
手机也能跑通义Qwen3大模型,手把手教你部署!
全球开源模型冠军Qwen3与端到端全模态模型Qwen2.5-Omni现已成功在手机上跑通!借助MNN支持,适配Android、iOS及桌面端,实现低延迟、本地化、高安全的AI体验。用户可通过自定义Sampler设置、System Prompt和Max New Tokens调节模型输出风格与长度。
2583 11
|
数据采集 分布式计算 大数据
Java语言在大数据处理中的应用
传统的大数据处理往往依赖于庞大的数据中心和高性能的服务器,然而随着大数据时代的到来,Java作为一种强大的编程语言正在被广泛应用于大数据处理领域。本文将探讨Java语言在大数据处理中的优势和应用,以及其在分布式计算、数据处理和系统集成等方面的重要作用。
470 24
黑神话:悟空中的音效设计与音乐制作
【8月更文第26天】在《黑神话:悟空》这款游戏中,音效和背景音乐是构建沉浸式游戏体验的重要组成部分。本文将探讨游戏音效和背景音乐的创作过程,以及它们如何增强游戏氛围。
1250 0
|
11月前
|
机器学习/深度学习 编解码 Java
YOLO11创新改进系列:卷积,主干 注意力,C3k2融合,检测头等创新机制(已更新100+)
《YOLO11目标检测创新改进与实战案例》专栏已更新100+篇文章,涵盖注意力机制、卷积优化、检测头创新、损失与IOU优化、轻量级网络设计等多方面内容。每周更新3-10篇,提供详细代码和实战案例,帮助您掌握最新研究和实用技巧。[专栏链接](https://blog.csdn.net/shangyanaf/category_12810477.html)
YOLO11创新改进系列:卷积,主干 注意力,C3k2融合,检测头等创新机制(已更新100+)
|
Linux vr&ar C语言
Linux怎样更新Centos下Gcc版本支持C++17?
Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理) centos7直接yum安装的那个gcc版本为4.8.5,对于大多数的需求来说都是低了。系统安装镜像里的那个版本也是4.8.5。 在g++ 7 以上的版本中添加了对c++17 的支持,所以为了工作需要现在需要升级到高版本。
2261 1
|
JavaScript
成功 解决 @keyup.enter=“search()“ 在el-input 组件中不生效的问题
这篇文章讨论了在Vue 3中使用Element UI的`el-input`组件时,`@keyup.enter="search()"`事件绑定不生效的问题,并提供了通过使用`.native`修饰符来解决这个问题的方法。
成功 解决 @keyup.enter=“search()“ 在el-input 组件中不生效的问题
|
Dart JavaScript 前端开发
一个写了3年半flutter的小伙,突然写了2个月uniapp的感悟!
因为某些原因,在过去的三年半时间,我除了flutter之外,很少接触其他的框架,而最近突然写了2个月uniapp,有了些想法...