华为诺亚极简网络,靠13层就拿下83%精度(附源代码)

news2024/11/23 20:15:03

点击蓝字 关注我们

关注并星标

从此不迷路

计算机视觉研究院

3b817eae3fd0d97e39810561e1772edf.gif

b2f405de84b74e1ee515dd6797c2d6c0.gif

公众号ID计算机视觉研究院

学习群扫码在主页获取加入方式

f61ce1f426f1cda30a11dd6ea0b3f065.png

论文地址:https://arxiv.org/pdf/2305.12972.pdf

项目代码:https://github.com/huawei-noah/VanillaNet

https://gitee.com/mindspore/models/tree/master/research/cv/vanillanet

计算机视觉研究院专栏

Column of Computer Vision Institute

基础模型的核心是“越多越好”的哲学,计算机视觉和自然语言处理领域的惊人成功就是例证。然而,优化的挑战和transformer模型固有的复杂性要求范式向简单性转变。

深度学习算法架构越复杂越好吗???

9a9906bd2267418c74f31e594a05973d.gif

01

总  述

在这项研究中,研究者就介绍了VanillaNet,一种在设计中融入优雅的神经网络架构。通过避免高深度、shortcuts和自注意力机制等复杂操作,VanillaNet简洁而强大。每一层都经过精心制作,紧凑而直接,在训练后对非线性激活函数进行修剪,以恢复原始架构。VanillaNet克服了固有复杂性的挑战,使其成为资源受限环境的理想选择。其易于理解且高度简化的体系结构为高效部署开辟了新的可能性。大量实验表明,VanillaNet的性能与著名的深度神经网络和vision transformer不相上下,展示了极简在深度学习中的力量。

4fe8d0b2118dd443e929a50d24b14282.png

VanillaNet的这一富有远见的旅程具有重新定义景观和挑战基础模型现状的巨大潜力,为优雅有效的模型设计开辟了一条新的道路。

02

背  景

在过去的几十年里,人工神经网络取得了显著的进步,这是由于网络复杂性的增加会提高性能。这些网络由具有大量神经元或transformer块的多层组成,能够执行各种类似人类的任务,如人脸识别、语音识别、目标检测、自然语言处理和内容生成。现代硬件令人印象深刻的计算能力使神经网络能够以高精度和高效率完成这些任务。

785ca469929c3239f3b9a2585b3bbc16.png

因此,人工智能嵌入式设备在我们的生活中越来越普遍,包括智能手机、人工智能摄像头、语音助手和自动驾驶汽车。诚然,该领域的一个显著突破是AlexNet的开发,它由12层组成,在大规模图像识别基准上实现了最先进的性能。在这一成功的基础上,ResNet中的残差,使深度神经网络能够在图像分类、目标检测和语义分割等广泛的计算机视觉应用中进行高性能训练。在这些模型中加入人工设计的模块,以及网络复杂性的持续增加,无疑增强了深度神经网络的代表能力,导致了关于如何训练具有更复杂架构的网络以实现更高性能的研究激增。

于是,研究者提出了VanillaNet,这是一种新颖的神经网络架构,强调设计的优雅和简单,同时在计算机视觉任务中保持卓越的性能。VanillaNet通过避免过多的深度、shortcuts和复杂的操作来实现这一点,从而产生了一系列精简的网络,这些网络解决了固有的复杂性问题,非常适合资源有限的环境。为了训练提出的VanillaNets,对其简化架构所带来的挑战进行了全面分析,并制定了“深度训练”策略。

这种方法从包含非线性激活函数的几个层开始。随着训练的进行,逐渐消除了这些非线性层,从而在保持推理速度的同时易于合并。为了增强网络的非线性,提出了一种有效的、基于级数的激活函数,该函数包含多个可学习的仿射变换。应用这些技术已经被证明可以显著提高不太复杂的神经网络的性能。VanillaNet的这项开创性研究为神经网络设计的新方向铺平了道路,挑战了基础模型的既定规范,并为精细有效的模型创建建立了新的轨迹。

03

新框架分析

随着人工智能芯片的发展,神经网络推理速度的瓶颈将不再是FLOP或参数,因为现代GPU可以很容易地进行并行计算,而且计算能力很强。相比之下,它们复杂的设计和巨大的深度阻碍了它们的速度。为此,研究者提出了vanilla network,即VanillaNet,其架构如下图所示。遵循了流行的神经网络设计,包括主干、主体和全连接层。与现有的深度网络不同,在每个阶段只使用一层,以尽可能少的层建立一个极其简单的网络。

下图展示了6层的VanillaNet的结构,它的结构十分简洁,由5个卷积层,5个池化层,一个全连接层和5个激活函数构成,结构的设计遵循AlexNet和VGG等传统深度网络的常用方案:分辨率逐渐缩小,而通道数逐渐增大,不包含残差,自注意力等计算。

91ce3e790006424c49435e7ed82ff20d.png

04

极简网络的训练策略

深度训练策略的主要思想是在训练过程开始时用激活函数训练两个卷积层,而不是单个卷积层。随着训练时期的增加,激活函数逐渐减少为恒等映射。在训练结束时,可以很容易地将两个卷积合并为一个卷积,以减少推理时间。这种思想在细胞神经网络中也得到了广泛的应用。

c2767719b02e4696b2beb35a7eceeb4e.png

上面公式由一个传统非线性激活函数(如ReLU等)和恒等映射加权得到。我们首先将每个批量归一化层及其之前的卷积转换为单个卷积。

fa6cc3f7662d741fb69b2a960cb861b7.png

在将卷积与批量归一化合并后,开始合并两个1×1卷积。将x和y表示为输入和输出特征,卷积可以公式化为:

85fd20f3f7fa3e6342c48818020b0c4f.png

在网络训练的初始阶段,非线性激活函数会占主导地位,使得网络在开始训练时具有较高的非线性,在网络训练的过程中,恒等映射的权值会逐渐提升,此时该激活函数会逐渐变为线性的恒等映射,通过以下公式简单推导:

e383efba9970a961b12733a3680b3bdf.png

不具有非线性激活的两个卷积层就可以被融合为一层,从而达到了” 深层训练,浅层推理 “的效果。

Series Informed Activation Function

此外,研究者还提出了一种基于级数启发的激活函数,来进一步增加网络非线性,具体的,假设A(x)为任意现有的非线性激活函数,级数激活函数通过对激活函数进行偏置和加权,得到多个激活函数的叠加,从而使得单个激活函数具有更强的非线性:

bc1ad2a130583664aff0a57f98613605.png

为了进一步丰富级数的逼近能力,使基于级数的函数能够通过改变其邻居的输入来学习全局信息,这与BNET类似。具体而言,给定输入特征x,其中H、W和C是其宽度、高度和通道的数量,激活函数公式化为:

c0cb3073149eb0c38ebf35597d6ea326.png

与相应的卷积层相比,研究者进一步分析了所提出的激活函数的计算复杂性。对于具有K核大小、Cin输入通道和Cout输出通道的卷积层,计算复杂度为:

9b72bebc49b18e2f07e32df3b81b10bc.png

05

新框架的实验

Ablation study on the number of series

4de4f2e9780605e167d81f72ac7b0539.jpeg

不同网络上的消融研究如下:

a83ac32a60d594c87dd7d68a2f50054b.png

ImageNet-1K trained models如下:

d1775cbc94eea44a7b1c997f9cdf8da9.png

通过ResNet-50和VanillaNet-9对分类样本的注意力图进行可视化。展示了他们错误分类样本和正确分类样本的注意力图,以进行比较:

b4b5c429effffd9fa900f6c48492926f.png

ImageNet-1K training settings:

df90776b2557ed4c7259ee4aea2498e7.png

© THE END 

转载请联系本公众号获得授权

e623b124789af96ae7828c2c61baa48c.gif

计算机视觉研究院学习群等你加入!

8dfac1980d6cc37ce21b57357a3de64f.jpeg

5f75eccf37e84f3b91d00e3e9a94699d.png

304ac04dc31881343eea100cce5473ca.png

e844d8817adcd281370426922f745e19.png

dd2ae44e4a74d59549e2b18853cc227b.png

点击“阅读原文”,立即合作咨询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/644859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【裸机开发】系统时钟分路 PLL2_PFDx、PLL3_PFDx 配置实验(二)—— 寄存器分析篇

上一篇介绍了 系统时钟的来源、时钟树 以及 PLL1 分路的配置步骤。我们注意到,PLL2、PLL3是固定倍频,无法修改,但是他们下分的 PFDx 分路是可以修改的。只不过我们在初始化的时候,依然按照官方给定的频率进行初始化。 目录 一、了…

2023年,程序员如何构建持续增长的被动收入?

大家好,我是晓衡! 我致力于帮助开发者通过技术,实现被动收入,并利用复利效应获得收益最大化。 经过 6 年的探索和实践,取得了一定的成效。 01 起点 我是从 2018 年 7 月份开始全职做这个 Cocos 内容公众号,…

room数据库升级

直接添加表字段,不升级会报异常如上图。 1.表字段或减少表字段 2.增加表 如上等情况需要升级数据库 方法如下(以添加表字段为例): Database( entities [XXInfo::class], version 2 // 旧版本为1 ) init { …

Linux:grep、wc命令和管道符

1、grep命令:从文件中根据关键词过滤文件行,语法: grep [-n] 关键词 文件路径 选项-n是可选的,表示在结果中输出匹配到的行的行号关键词:必填,表示要过滤的关键词文件路径:必填,表示…

海思如何编译驱动

一、安装海思的SDK 这一步在海思的说明文档中有,运行sdk.unpack 二、配置内核 进入osdrv/opensource/kernel/ 根据里面的说明文档,没有内核就去下载内核,如果在www.kernel.org网站下载内核十分慢,推荐使用镜像列表下载&#xff0c…

web动画(Animation) - 过渡效果transition

内容目录: 过渡动画;过渡动画的属性; 一、过渡动画 过渡(transition)作用:- 通过过渡可以指定一个属性发生变化时的切换方式- 通过过渡可以创建一些非常好的效果,提升用户的体验现在我们通过一…

Qt6之样式表2

一、样式选择器类型 一般情况下组件最终都会产生父子、子孙等关系,此时样式选择器类型非常重要,它决定着你的类型是否互相直接独立、互相影响和便捷高效的快速设置样式。 1、如下图常见的一个工具栏,切换时鼠标划过是灰色,选中后是…

QTYX量化系统实战案例分享|每日增量涨停股池叠加形态分析-202306第三弹

前言 “实战案例分享系列”是和大家分享一些股票量化分析工具QTYX在实战中的应用案例(包括失败的案例),这样能够帮助大家更好地去理解QTYX中的功能设计,也能更好地帮助大家搭建出属于自己的量化交易系统。 关于QTYX的使用攻略可以…

给大家分享下什么是「API接口」

作为产品经理,了解清楚接口的相关知识是非常有必要的,毕竟总不想被技术大佬认为自己时什么都不懂的需求搬运工。那就往下看下去吧 -----拿去餐馆吃饭的例子 模拟网络请求流程 厨师是后端提供API,服务员是前端请求调用API,我们是用…

Pyside6-第八篇-QLabel文本标签

本篇是Pyside6的第八篇,本章来看看另一个知识点。 文本标签QLabel。它不仅仅可以用于文本,还可以显示富文本和图像。它是一个多功能的小部件,可以根据需要显示不同类型的内容。 部分源码 class QLabel(QFrame):"""QLabel(self…

T9481 T8300 T8110C罗克韦尔自动化可信通信接口

​ T9481 T8300 T8110C罗克韦尔自动化可信通信接口 T9481 T8300 T8110C罗克韦尔自动化可信通信接口 DCS有哪些通讯方式?各有什么缺点? dcs作为大型控制系统,它采用的通信方式无非就是数字通信和模拟通信。数字通信它在DCS使用就是在监视层和…

PCB封装设计实践和文件模板

在之前的文章 详解AD(Altium Designer 23)中的机械层 - 1、详解AD(Altium Designer 23)中的机械层 - 2 中,我们详细介绍了AD中机械层的相关设置,今天结合PCB封装的设计,给出一些实践建议,并分享一个文件模板。 PCB封装设计 PCB&…

SpringBoot 集成 canal

什么是 Canal 阿里巴巴 B2B 公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了同步杭州和美国异地机房的需求,从 2010 年开始,阿里系公司开始逐步的尝试基于数据库的日志解析&#…

Linux常用指令和知识

ls 显示工作目录底下的所有文件/文件夹 使用命令ls, 会直接显示HOME目录下的所有文件 如果不加任何参数,那么ls指定的目录是初始的HOME目录(因为初始的工作目录为HOME目录): 使用ls / 会显示根目录底下的所有文件 如何查看根目录: 三个参数: -a -h -l -a 选项表示all的意思,列…

Python 基于招聘数据可视化系统

1 简介 Python 基于招聘数据可视化系统,视频效果如下: 基于Python的招聘信息可视化系统,附源码 随着国内的经济不断的快速发展,现在学生的就业压力也在逐年增加,网络上的招聘信息非常的丰富,但是对于学生而…

百城巡展 | 人大金仓6月阔步新征程全力开新局

6月上旬,人大金仓“百城巡展”走过天津、杭州、成都,吸引线上线下逾6660人参与,并有14家新成员单位加入金兰生态组织,共同支撑用户更多关键性应用需求,为人大金仓开拓新市场、赋能新行业、构建新生态迈出坚实的一步。 …

驾驶舱数据指标体系设计

大数据时代下,各行各业面对众多的顾客和复杂多变的市场需求,要想及时适应市场变化,掌握市场动态,就需要对各个环节的数据进行分析,得到科学有效的结论来指导决策,这就离不开领导驾驶舱。 — 01 — 什么是…

Vue中如何进行数据可视化图表展示

Vue中如何进行数据可视化图表展示 数据可视化是现代化的数据分析和展示方式,可以使数据更加直观、易于理解和传达。Vue作为一款流行的前端框架,提供了丰富的插件和工具来实现数据可视化图表展示,其中最常用的是Echarts和D3.js。 本文将介绍…

Mind2Web: 首个全面衡量大模型上网能力的数据集

夕小瑶科技说 原创 作者 | 智商掉了一地、ZenMoore 在互联网的浩瀚世界中,存在着无数复杂而扑朔迷离的任务等待我们去解决。如果要设计一个解决很多问题的通用智能体(AI agent),无论是关于购物、旅行、学习还是娱乐,…

张驰咨询:如何评估六西格玛咨询公司的专业水平和实际效果?

六西格玛是一个能够帮助企业改进业务流程,提高质量和效率的方法论和工具,也是一种经营管理思想。在选择六西格玛咨询公司时,就需要考虑以下几个方面。 1、咨询公司的信誉和口碑 首先要查明咨询公司的资质和信誉。可以从市场上那些知名度比较…