StarNet:关于 Element-wise Multiplication 的高性能解释研究 | CVPR 2024
论文揭示了
star operation
(元素乘法)在无需加宽网络下,将输入映射到高维非线性特征空间的能力。基于此提出了StarNet
,在紧凑的网络结构和较低的能耗下展示了令人印象深刻的性能和低延迟
来源:晓飞的算法工程笔记 公众号
论文: Rewrite the Stars
- 论文地址:https://arxiv.org/abs/2403.19967
- 论文代码:https://github.com/ma-xu/Rewrite-the-Stars
- 作者的介绍:神经网络中,element-wise mutiplication为什么效果好?CVPR’24
Introduction
最近,通过元素乘法融合不同的子空间特征的学习范式越来越受到关注,论文将这种范例称为star operation
(由于元素乘法符号类似于星形)。
为了便于说明,论文构建了一个用于图像分类的demo block
,如图 1 左侧所示。通过在stem
层后堆叠多个demo block
,论文构建了一个名为DemoNet
的简单模型。保持所有其他因素不变,论文观察到逐元素乘法(star operation
)在性能上始终优于求和,如图 1 右侧所示。
在这项工作中,论文证明star operation
具有将输入映射到极高维的非线性特征空间的能力,从而解释star operation
的强表达能力。论文不依赖直观或假设的高级解释,而是深入研究star operation
的细节。通过重写和重新表述star operation
计算过程,论文发现这个看似简单的运算实际可以生成一个新的特征空间,含大约 \((\frac{d}{\sqrt{2}})^2\) 线性独立维度。
与增加网络宽度(又称通道数)的传统神经网络不同,star operation
类似于在不同通道上进行成对特征乘法的核函数,特别是多项式核函数。当应用到神经网络中并通过多层堆叠时,每一层都会带来隐式维度复杂性的指数增长。只需几层,star operation
就可以在紧凑的特征空间内实现几乎无限的维度。在紧凑的特征空间内计算,同时受益于隐含的高维度,这就是star operation
的独特魅力所在。
根据上述见解,论文推断star operation
本质上更适合高效、紧凑的网络,而不是常规使用的大型模型。为了验证这一点,论文提出了一种概念验证的高效网络StarNet
,其特点是简洁和高效。StarNet
非常简单,缺乏复杂的设计和微调的超参数。在设计理念上,StarNet
与现有网络明显不同,如表 1 所示。利用star operation
,StarNet
甚至可以超越各种精心设计的高效模型,如MobileNetv3
、EdgeViT
、FasterNet
等。这些结果不仅从经验上验证了论文对恒星运行的见解,而且强调了其在实际应用中的实用价值。
论文简要总结并强调这项工作的主要贡献如下:
- 证明了
star operation
的有效性,如图 1 所示,揭示了star operation
具有将特征投影到极高维隐式特征空间的能力,类似于多项式核函数。 - 从分析中汲取灵感,确定了
star operation
在高效网络领域的实用性,并提出了概念验证模型StarNet
。无需复杂的设计或精心选择的超参数即可实现高性能,超越了许多高效的设计。 - 基于
star operation
存在大量未探索的可能性,论文的分析可以作为指导框架,引导研究人员远离随意的网络设计尝试。
Rewrite the Stars
Star Operation in One layer
在单层神经网络中,star operation
通常写为 \((\mathrm{W}_{1}^{\mathrm{T}}\mathrm{X}+\mathrm{B}_{1})\ast(\mathrm{W}_{2}^{\mathrm{T}}\mathrm{X}+\mathrm{B}_{2})\),通过逐元素乘法融合两个线性变换的特征。为了方便起见,将权重矩阵和偏置合并为一个实体 \(\mathrm{W} = \Bigg\begin{array}{c}{\mathrm{W}}\{\mathrm{B}}\end{array}\Bigg\),同样地,通过 \(\mathrm{X} = \Bigg\begin{array}{c}{\mathrm{X}}\{\mathrm{1}}\end{array}\Bigg\),得到star operation
\((\mathrm{W}_{1}^{\mathrm{T}}\mathrm{X})\ast(\mathrm{W}_{2}^{\mathrm{T}}\mathrm{X})\)。
为了简化分析,论文重点关注涉及单输出通道转换和单元素输入的场景。具体来说,定义 \(w\_1, w\_2, x \in \mathbb{R}^{(d+1)\times 1}\),其中 \(d\) 为输入通道数。这可以随时进行 \(\mathrm{W}\_1, \mathrm{W}\_2 \in \mathbb{R}^{(d+1)\times(d^{\prime}+1)}\) 扩展以适应多个输出通道,以及处理多元素输入 \(\mathrm{X} \in \mathbb{R}^{(d+1)\times n}\)。
一般来说,可以通过以下方式重写star operation
:
\begin{array}{l}
{{w_{1}^{\mathrm{T}}x\ast w_{2}^{\mathrm{T}}x}}
&
(1)
\
{{=\left(\sum_{i=1}^{d+1}w_{1}^{i}x^{i}\right)\*\left(\sum_{j=1}^{d+1}w_{1}^{i}w\_{2}^{j}x^{j}\right)}}
&
(2)
\
{{=\sum_{i=1}^{d+1}\sum_{j=1}^{d+1}w_{1}^{i}w_{2}^{j}x^{i}x^{j}}}
&
(3)
\
=\underbrace{{\alpha_{(1,1)}x^{1}x^{1}+\cdots+\alpha_{(4,5)}x^{4}x^{5}+\cdots+\alpha_{(d+1,d+1)}x^{d+1}x^{d+1}}}_{(d+2)(d+1)/2\ \mathrm{items}}
&
(4)
\end{array}
\]
其中 \(i,j\) 作为通道下标,\(\alpha\) 为个子项的系数:
{\alpha}_{(i,j)}=\left{\begin{array}{c c}{{{w}_{1}^{i}{w}_{2}^{j}}}&{{\mathrm{if}\;i==j,}}\ {{{w}_{1}^{i}{w}_{2}^{j}+{w}_{1}^{j}{w}\_{2}^{i}}}&{{\mathrm{if}\;i!=j.}}\end{array}\right.
\quad\quad(5)
\]
重写star operation
后,可以将其展开为 \(\frac{(d+2)(d+1)}{2}\) 个不同子项的组合,如等式 4 所示。值得注意的是,除了 \(\alpha\_{(d+1,:)}x^{d+1}x\) 的每个子项(这里是 \(x^{d+1}\) 偏置项)都与 \(x\) 呈非线性关联,表明它们是单独的隐式维度。
因此,在 \(d\) 维度空间中使用计算效率高的star operation
,可以得到\({\frac{(d+2)(d+1)}{2}}\approx(\frac{d}{\sqrt{2}})^2\)(\(d\gg 2\))的隐式维度特征空间。从而在显著放大特征维度的同时,不会在单层内产生任何额外的计算开销,这个突出的属性与内核函数有着相似的理念。
Generalized to multiple layers
通过堆叠多个层,可以递归地将隐式维度以指数方式增加到几乎无限。
对于宽度为 \(d\) 的初始网络层,应用一次star operation
(\(\sum_{i=1}^{d+1}\sum_{j=1}^{d+1}w_{1}^{i}w_{2}^{j}x^{i}x^{j}\)),可得到 \(\mathbb{R}^{(\frac{d}{\sqrt{2}})^{2^{1}}}\) 的隐式特征空间内。
让 \({O}\_{l}\) 表示第 \(l\) 个star operation
的输出,可得:
\begin{array}{l l}
{{O_{1}=\sum_{i=1}^{d+1}\sum_{j=1}^{d+1}w_{(1,1)}^{i}w\_{(1,2)}^{j}x^{i}x^{j}\qquad\in\mathbb{R}^{({\frac{d}{\sqrt{2}}})^{2^{1}}}}}
&(6)
\
{{O_{2}=\mathrm{W}_{2,1}^{\mathrm{T}}\mathrm{O}_{1}\ast\mathrm{W}_{2,2}^{\mathrm{T}}O\_{1}}}\qquad\qquad\qquad\,\,{{\in\,\mathbb{R}^{({\frac{d}{\sqrt{2}}})^{2^{2}}}}}
&(7)
\
{{O_{2}=\mathrm{W}_{3,1}^{\mathrm{T}}\mathrm{O}_{2}\ast\mathrm{W}_{3,2}^{\mathrm{T}}O\_{2}}}\qquad\qquad\qquad\,\,{{\in\,\mathbb{R}^{({\frac{d}{\sqrt{2}}})^{2^{3}}}}}
&(8)
\
\cdots
&(9)
\
{{O_{2}=\mathrm{W}_{l,1}^{\mathrm{T}}\mathrm{O}_{l-1}\ast\mathrm{W}_{l,2}^{\mathrm{T}}O\_{l-1}}}\qquad\qquad\quad\,\,{{\in\,\mathbb{R}^{({\frac{d}{\sqrt{2}}})^{2^{l}}}}}
&(10)
\end{array}
\]
也就是说,通过堆叠 \(l\) 层可以隐式获得 \(\mathbb{R}^{({\frac{d}{\sqrt{2}}})^{2^{l}}}\) 维特征空间。例如,给定一个宽度为 128 的 10 层网络,通过star operation
获得的隐式特征维数近似为 \(90^{1024}\) ,相当于无限维度。因此,通过堆叠多个层,即使只有几个层,star operation
也可以以指数方式大幅放大隐式维度。
Special Cases
实际上,并非所有star operation
都遵循公式 1 那样,两个分支都进行变换。例如,VAN
和SENet
包含一个identity
分支,而GENet-
\(\theta^{-}\)无需任何需学习的变换(池化、最近邻插值后乘回原特征)即可运行。
- Case I: Non-Linear Nature of \(\mathrm{W}_{1}\) and/or \(\mathrm{W}_{2}\)
在实际场景中,大量研究(例如Conv2Former
、FocalNet
等)通过合并激活函数将变换函数 \({\mathrm{W}}_{1}\) 和/或 \({\mathrm{W}}_{2}\) 变为非线性。尽管如此,最重要的其实是看通道间的处理是否像公式 2 那样实现,是则其隐式维度仍然保持不变(大约为 \(\frac{d}{\sqrt{2}})^2\) )。
- Case II: \(\mathrm{W}\_{1}^{\mathrm{T}}\mathrm{X}\ast \mathrm{X}\)
当移除 \(\mathrm{W}\_{2}\) 变换时,隐式维度从大约 \(\frac{d^{2}}{2}\) 减少到 \(2d\)。
- Case III: \(\mathrm{X}\ast \mathrm{X}\)
在这种情况下,star operation
将特征从特征空间 \({{x}^{1},{x}^{2},\cdots,\;{x}^{d}} \in\mathbb{R}^{d}\) 转换为 \({{x}^{1}{x}^{1},{x}^{2}{x}^{2},\cdots,\;{x}^{d}{x}^{d}} \in\mathbb{R}^{d}\) 的新特征空间。
有几个值得注意的方面需要考虑:
star operation
及其特殊情况通常会(尽管不一定)与空间交互集成,比如通过池化或卷积实现线性变换。但许多这些方法只强调扩大感受野带来的好处,往往忽视隐式高维空间赋予的优势。- 组合这些特殊情况是可行的,如
Conv2Former
合并了Case I
和Case II
,以及GENet-
\(\theta^{-}\)混合了Case I
和Case III
。 - 虽然
Case II
和Case III
可能不会显著增加单层的隐式维度,但使用线性层(主要用于通道通信)和skip
连接依然可以通过堆叠多个层来实现高隐式维度。
Proof-of-Concept: StarNet
鉴于star operation
的独特优势—在低维空间中计算的同时产生高维特征,论文确定了其在高效网络架构领域的实用性。因此,论文提出StarNet
作为概念验证模型,特点是极其简约的设计和显著减少的人为干预。尽管StarNet
很简单,但它展示了卓越的性能,强调了star operation
的功效。
StarNet Architecture
StarNet
采用 4 级分层架构,利用卷积层进行下采样,并使用修改后的demo block
进行特征提取。为了满足效率的要求,将Layer Normalization
替换为Batch Normalization
,并将其放置在深度卷积之后(可以在推理时融合)。受到MobileNeXt
的启发,论文在每个块的末尾加入了一个深度卷积。通道扩展因子始终设置为 4,网络宽度在每个阶段加倍。遵循MobileNetv2
设计,demo block
中的GELU
激活被替换为ReLU6
。
Experimental
Star Operation
StarNet
如果本文对你有帮助,麻烦点个赞或在看呗~undefined更多内容请关注 微信公众号【晓飞的算法工程笔记】
StarNet:关于 Element-wise Multiplication 的高性能解释研究 | CVPR 2024的更多相关文章
- 向量的一种特殊乘法 element wise multiplication
向量的一种特殊乘法 element wise multiplication 物体反射颜色的计算采用这样的模型: vec3 reflectionColor = objColor * lightColor ...
- Understanding Convolution in Deep Learning
Understanding Convolution in Deep Learning Convolution is probably the most important concept in dee ...
- [转]An Intuitive Explanation of Convolutional Neural Networks
An Intuitive Explanation of Convolutional Neural Networks https://ujjwalkarn.me/2016/08/11/intuitive ...
- An Intuitive Explanation of Convolutional Neural Networks
https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/ An Intuitive Explanation of Convolu ...
- Sequence Models
Sequence Models This is the fifth and final course of the deep learning specialization at Coursera w ...
- [C7] Andrew Ng - Sequence Models
About this Course This course will teach you how to build models for natural language, audio, and ot ...
- [C6] Andrew Ng - Convolutional Neural Networks
About this Course This course will teach you how to build convolutional neural networks and apply it ...
- [C4] Andrew Ng - Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
About this Course This course will teach you the "magic" of getting deep learning to work ...
- 机器学习经典算法具体解释及Python实现--K近邻(KNN)算法
(一)KNN依旧是一种监督学习算法 KNN(K Nearest Neighbors,K近邻 )算法是机器学习全部算法中理论最简单.最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值 ...
- CSS选择器笔记,element element和element > element 的区别
看官方解释 element element 例子: div p 官方解释:div内部所有的p元素 就是说 只要p在div内部.如果 p在span内部,span在div内部,p也算在div内部 < ...
随机推荐
- 加速鸿蒙生态共建,蚂蚁mPaaS助力鸿蒙原生应用开发创新
6月21日-23日,2024华为开发者大会(HDC 2024)如期举行.在22日的[鸿蒙生态伙伴SDK]分论坛中,正式发布了[鸿蒙生态伙伴SDK市场],其中蚂蚁数科旗下移动开发平台mPaaS(以下简称 ...
- VUE中watch的详细使用教程
1.watch是什么? watch:是vue中常用的侦听器(监听器),用来监听数据的变化 2.watch的使用方式如下 watch: { 这里写你在data中定义的变量名或别处方法名: { han ...
- HTTP协议 学习:0-有关概念
HTTP协议 学习:0-有关概念 背景 实际上,HHTP协议是一种比较简单的协议,它的本质上是一个文本协议,在实际开发中,我们重点关注解析对方发来的内容的过程(字符串匹配). 参考资料: HTTP H ...
- SDL3 入门(4):选择图形引擎
SDL2 创建渲染器时只能指定使用软件渲染还是硬件加速,无法选择使用哪种图形引擎实现硬件加速.SDL3 对此做了优化,可以在创建渲染器时指定 rendering driver 也就是图形引擎,比如在 ...
- 【简单总结】SLAM 算法的 Benchmark 及相关数据集的结果对比
前言与参考 主要是copy一下总结,方便自己后续找方案特定使用,所有的出处均在标题处和原链接跳转,此处仅做各个benchmark收集使用,如果有原作者觉得侵权,请联系我 将全力配合相关内容和链接删除 ...
- unp.h的安装以及第一个程序的运行
unp.h的安装以及第一个程序的运行 源代码下载以及编译 点击此处下载源代码 解压到本地文件夹,如果访问不了GitHub的话就用我搬到gitee的仓库吧 git clone https://gitee ...
- 3568F-系统启动阶段LOGO显示
- B码对时方案,基于TI AM62x异构多核工业处理器实现!
什么是IRIG-B码对时 IRIG-B(inter-range instrumentationgroup-B)码是一种时间同步标准,通常用于精确的时间测量和数据同步,广泛应用于电力.通信.航空等领域. ...
- 煤矿安全大模型:微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答
煤矿安全大模型----矿途智护者 使用煤矿历史事故案例,事故处理报告.安全规程规章制度.技术文档.煤矿从业人员入职考试题库等数据,微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答. ...
- 韦东山freeRTOS系列教程之【第七章】互斥量(mutex)
目录 系列教程总目录 概述 7.1 互斥量的使用场合 7.2 互斥量函数 7.2.1 创建 7.2.2 其他函数 7.3 示例15: 互斥量基本使用 7.4 示例16: 谁上锁就由谁解锁? 7.5 示 ...