MAE-DET学习笔记

article/2025/11/10 21:22:16

MAE-DET学习笔记

MAE-DET: Revisiting Maximum Entropy Principle in Zero-Shot NAS for Efficient Object Detection

Abstract

在对象检测中,检测主干消耗了整个推理成本的一半以上。最近的研究试图通过借助神经架构搜索(NAS)优化主干架构来降低这一成本。然而,现有的用于对象检测的NAS方法需要数百到数千GPU小时的搜索,这使得它们在快节奏的研究和开发中不切实际。在这项工作中,我们提出了一种新的zero-shotNAS方法来解决这个问题。所提出的方法名为MAE-DET,通过最大熵原理自动设计有效的检测主干,而无需训练网络参数,将架构设计成本降低到几乎零,同时提供最先进的(SOTA)性能。在这种情况下,MAEDET最大化了检测主干的差分熵,从而在相同的计算预算下为目标检测提供了更好的特征提取器。仅经过一天GPU的全自动设计后,MAE-DET在多个检测基准数据集上创新了SOTA检测主干,几乎不需要人工干预。与ResNet-50主干相比,MAE-DET在使用相同数量的FLOP/参数时,mAP性能提高+2.0%,在相同mAP下,在NVIDIA V100上速度提高1.54倍。代码和预训练模型可在https://github.com/alibaba/lightweight-neuralarchitecture-search.

Introduction

在计算机视觉中,寻找更好更快的物体检测深度模型从来都不是过时的任务。深度对象检测网络的性能在很大程度上取决于特征提取主干(Li等人,2018;Chen等人,2019b)。目前,大多数最先进的(SOTA)检测主干(He等人,2016年;谢等人,2017年;朱等人,2019年;李等人,2021a)都是由人类专家手动设计的,这可能需要数年的时间来开发。由于检测主干在许多检测框架中消耗了总推理成本的一半以上,因此优化主干架构以在不同硬件平台(从服务器端GPU到移动端芯片组)上实现更好的速度精度权衡至关重要。为了减少时间成本和人力,出现了神经架构搜索(NAS)来促进架构设计。多种NAS方法在设计SOTA图像分类模型方面已证明其有效性(Zoph等人,2018;Liu等人,2018年;Cai等人,2019年;Tan&Le,2019;Fang等人,2020年)。这些成功的故事激励了最近的研究人员使用NAS以端到端的方式设计检测主干(Chen等人,2019b;Peng等人,2019;Xiong等人,2021;Du等人,2020;Jiang等人,2020)。

迄今为止,用于检测任务的现有NAS方法都是基于训练的,这意味着它们需要训练网络参数以评估目标数据集上网络候选的性能,这一过程消耗了大量的硬件资源。这使得基于培训的NAS方法在现代快节奏的研发中效率低下。为了降低搜索成本,最近提出了无训练方法,在一些文献中也称为zero-shot NAS(Tanaka等人,2020;Mellor等人,2021;Chen等人,2021c;Lin等人,2021)。zero-shot NAS无需训练网络参数即可预测网络性能,因此比基于训练的NAS快得多。作为一种相对较新的技术,现有的zero-shot NAS方法大多在分类任务上得到验证。将zero-shot NAS应用于检测任务仍然是一个完整的挑战

在这项工作中,我们首次尝试引入zero-shot NAS技术来设计高效的对象检测主干。我们表明,直接将现有的zero-shot NAS方法从图像分类转移到检测主干设计将遇到根本困难。虽然图像分类网络只需要预测类别概率,但对象检测网络需要额外预测多个对象的边界框直接架构传输次优。为此,提出了一种新的zero-shot NAS方法,称为MAximum-Entropy DETection (MAE-DET),用于搜索目标检测主干。MAE-DET背后的关键思想受到最大熵原理的启发(Jaynes,1957;Reza,1994;Kullback,1997;Brillouin,2013)。非正式地说,当检测网络被制定为信息处理系统时,当其熵在给定的推理预算下达到最大值时,其容量被最大化,从而导致用于对象检测的更好的特征提取器。基于这一观察,MAE-DET通过搜索网络深度和宽度的最佳配置而无需训练网络参数,最大化检测主干的差分熵(Shannon,1948)。

最大熵原理是物理学和信息论的基本原理之一。除了深度学习的广泛应用之外,许多理论研究试图从最大熵原理来理解深度学习的成功(Saxe等人,2018;Chan等人,2021;Yu等人,2020)。受这些先驱作品的启发,MAE-DET建立了从最大熵原理到zero-shot 目标检测NAS的联系。这导致了一个概念上简单的设计,但具有强大的经验性能。仅使用标准的单分支卷积块,MAE-DET就可以胜过以前由更复杂的工程构建的检测主干。这一令人鼓舞的结果再次验证了一个古老的学说:简单更好。

虽然最大熵原理已被应用于各种科学问题,但它在zero-shot NAS中的应用是新的。特别是,将该原理直接应用于物体检测将带来若干技术挑战。第一个挑战是如何估计深度网络的熵。熵的精确计算需要知道高维空间中深层特征的精确概率分布,这在实践中很难估计。为了解决这个问题,MAE-DET估计差分熵的高斯上界,这只需要估计特征图的方差。第二个挑战是如何有效地提取不同尺度对象的深度特征。在真实世界的物体检测数据集中,如MS COCO(Lin等人,2014),物体大小的分布依赖于数据且不均匀。为了在主干设计中引入这种先验知识,我们在熵估计中引入了多尺度熵先验(MSEP)。我们发现MSEP显著提高了检测性能。MAE-DET的总体计算需要检测主干的一个正向推断,因此与以前基于训练的NAS方法相比,其成本几乎为零。

这项工作的贡献总结如下:

•我们重新讨论了zero-shot 目标检测NAS中的最大熵原理。提出的MAE-DET概念简单,但无需华丽的点缀就可提供卓越的性能。

•MAEDET使用不到一天的GPU和2GB内存,在COCO上实现了比以前的NAS方法具有竞争力的性能,速度至少快50倍。

•MAE-DET是第一种在多个检测框架下的多个基准数据集上具有SOTA性能的zero-shot NAS对象检测方法。

Related work

Backbone Design for Object Detection

最近,由 backbone,neck and head 组成的物体检测模型的设计因其有效性和高性能而日益流行(Lin等人,2017a;b;Tian等人,2019;Li等人,2020;2021b;Tan等人,2020年;Jiang等人,2022)。流行的检测器直接使用为图像分类设计的主干来从输入图像中提取多尺度特征,例如ResNet(He等人,2016)、ResNeXt(Xie等人,2017)和可变形卷积网络(DCN)(Zhu等人,2019)。尽管如此,从图像分类迁移的主干在对象检测中可能是次优的(Ghiasi等人,2019)。为了解决这一问题,提出了几种针对对象检测进行优化的架构,包括Stacked Hourglass(Newell等人,2016)、FishNet(Sun等人,2018)、DetNet(Li等人,2018年)、HRNet(Wang等人,2020a)等。尽管性能良好,但这些手工构建的架构严重依赖于专家知识和繁琐的试错设计。

Neural Architecture Search

神经架构搜索(NAS)最初是为了自动设计图像分类的网络架构而开发的(Zoph等人,2018年;Liu等人,2018;Real等人,2019;Cai等人,201九;Chu等人,2021;Lin等人,2020年;Tan&Le,2019年;Chen等人,2021a;Lin等,2021)。使用NAS设计对象检测模型还没有得到很好的探索。目前,现有的检测NAS方法都是基于训练的方法。一些方法侧重于搜索检测主干,如DetNAS(Chen等人,2019b)、SpineNet(Du等人,2020)和SP-NAS(Jiang等人,2020),而其他方法侧重于查找FPN颈部,如NAS-FPN(Ghiasi等人,2019)、NASFCOS(Wang等人,2020b)和OPANet(Liang等人等人,2021)。这些方法需要对目标数据集进行训练和评估,这需要大量的计算。MAE-DET是第一种用于目标检测主干设计的零炮NAS方法。

Preliminary

在本节中,我们首先将深度网络表述为具有连续状态空间的系统。然后我们定义了这个系统的微分熵,并展示了如何估计该熵通过其高斯上界。最后,我们介绍了香草网络搜索空间的基本概念,以设计我们的检测主干。

Continuous State Space of Deep Networks

深度网络 F ( ⋅ ) : R d → R F(·):R^d → R F():RdR将输入图像 x ∈ R d x∈R^d xRd映射到其标签 y ∈ R y∈R yR。网络的拓扑可以抽象为图 G = ( V , E ) \mathcal{G}=(\mathcal{V}, \mathcal{E}) G=(V,E),其中顶点集 V \mathcal{V} V由神经元组成,边缘集 E \mathcal{E} E由神经元之间的尖峰组成。对于任何 v ∈ V v∈\mathcal{V} vV e ∈ E e∈\mathcal{E} eE h ( v ) ∈ R h(v)∈R hvR h ( e ) ∈ R h(e)∈R heR分别表示赋予每个顶点v和每个边e的值。集合 S = h ( v ), h ( e ): ∀ v ∈ V , e ∈ E S={h(v),h(e):∀v∈\mathcal{V},e∈\mathcal{E}} S=hv),he):vVeE定义了网络F的连续状态空间。

根据最大熵原理,我们希望在给定的计算预算下最大化网络F的差分熵。集合S的熵H(S)测量系统(网络)F中包含的总信息,包括潜在特征 H ( S v )= h ( v ) : v ∈ V H(S_v)={h(v):v∈\mathcal{V}} HSv)=hv:vV和网络参数 H ( S e )= h ( e ): e ∈ E H(S_e)={h(e):e∈ \mathcal{E}} HSe)=he):eE中包含的信息。对于目标检测主干设计,我们只关心潜在特征 H ( S v ) H(S_v) HSv的熵,而不关心网络参数 H ( S e ) H(S_e) HSe的熵值。非正式地说, H ( S v ) H(S_v) HSv度量F的特征表示能力,而 H ( S e ) H(S_e) H(Se)度量F的模型复杂性。因此,在本工作的剩余部分中,F的差分熵默认指熵 H ( S v ) H(S_v) HSv

Entropy of Gaussian Distribution

高斯分布的微分熵可以在许多教科书中找到,例如(Norwich,1993)。假设x从高斯分布 N (µ, σ 2 ) N(µ,σ^2) Nµσ2采样。那么x的微分熵由下式给出

image-20230129212307321

从等式1中,高斯分布的熵仅取决于方差。在下文中,我们使用H(x)代替H*(x),因为常数在我们的讨论中无关紧要。

Gaussian Entropy Upper Bound

由于概率分布 P ( S v ) P(S_v) PSv是一个高维函数,因此很难直接计算其熵的精确值。相反,我们建议估计熵的上限,由以下众所周知的定理给出(Cover&Thomas,2012):

Theorem 1.对于平均值µ和方差 σ 2 σ^2 σ2的任何连续分布 P ( x ) P(x) Px,当 P ( x ) P(x) P(x)为高斯分布 N ( µ, σ 2 ) N(µ,σ^2) N(µσ2)时,其微分熵最大化。

定理1说,一个分布的微分熵是由具有相同均值和方差的高斯分布上界的。将此与方程(1)相结合,我们可以通过简单地计算特征图方差,然后使用方程(2)获得网络的高斯熵上界,从而容易地估计网络熵 H ( S v ) H(S_v) HSv

image-20230129212930616

Vanilla Network Search Space

根据之前的工作,我们在香草卷积网络空间中设计了骨干网(Li等人,2018;Chen等人,2019b;Du等人,2020;Lin等人,2021)。该空间是深度学习早期提出的最简单的空间之一,现在被广泛用于检测主干。它也是许多理论研究中的流行原型(Poole等人,2016;Serra等人,2018;Hanin& Rolnick,2019)。

香草网络由多个卷积层堆叠而成,随后是RELU激活。考虑具有D层权重 W 1 、 … 、 … W D W^1、…、… W^D W1WD的香草卷积网络,输出图像是 x 1 、 … 、 … x D x^1、…、… x^D x1xD 输入图像为 x 0 x^0 x0。设φ(·)表示RELU激活函数。然后,正向推断由(2)式给出

为了简单起见,我们将卷积层的偏差设置为零。

Simple is Better

香草卷积网络的实现非常简单。大多数深度学习框架(Paszke等人,2019;Abadi等人,2015)在GPU上提供了优化良好的卷积算子。卷积网络的训练得到了很好的研究,例如添加残差链路(He等人,2016)和批量归一化(BN)(Ioffe&Szegdy,2015)将大大提高收敛速度和稳定性。虽然我们有意坚持简单的香草设计,但MAEDET中使用的构建块可以与其他辅助组件相结合,以“现代化”主干以提高性能,例如挤压和激励(SE)块(Hu等人,2018)或自我关注块(Zhao等人,2020)。由于MAE-DET的简单性,这些辅助组件可以很容易地插入主干,而无需特别修改。再次,我们故意避免使用这些辅助组件,以保持我们的设计简单和通用。默认情况下,我们只使用残余链路和BN层来加速收敛。这样,很明显,MAE-DET的改进确实来自于更好的主干设计。

Maximum Entropy Zero-Shot NAS for Object Detection

在本节中,我们首先描述如何计算深度网络的差分熵。然后,我们引入多尺度熵先验(MSEP)来更好地捕捉真实世界图像中对象大小的先验分布。最后,我们提出了通过定制进化算法(EA)设计的完整MAE-DET主干。

4.1. Differential Entropy for Deep Networks

在本小节中,我们介绍了由深度网络生成的最终特征图的差分熵计算。首先,所有参数由标准高斯分布N(0,1)初始化。然后,我们随机生成一幅充满标准高斯噪声的图像,并执行前向推理。基于第3节中的讨论,网络F的(高斯上界)熵H(F)由下式给出

image-20230129213904431

请注意,方差是在最后一个预激活特征图 h D h^D hD上计算的

对于深度香草网络,直接使用方程(3)可能会导致数值溢出。这是因为每一层都以一个大的因子放大输出范数。Zen-NAS也报告了同样的问题(Lin等人,2021)。受Zen NAS中提出的BN重新缩放技术的启发,我们提出了一种没有BN层的替代解决方案。在推断过程中,我们通过一些常数 γ l γ^l γl直接重新缩放每个特征图 x l x^l xl,即 x l = φ ( h l ) / γ l x^l=φ(h^l)/γ^l xl=φhl/γl,然后通过以下方式补偿网络的熵

image-20230129214048225

γ l γ^l γl的值可以任意给定,只要正向推理不上溢或下溢。在实践中,我们发现简单地将 γ l γ^l γl设置为特征图的欧几里德范数效果很好。该过程如图1所示。最后,H(F)乘以特征图的大小作为该特征图的熵估计。

image-20230129214426695

Compare with Zen-NAS

MAEDET和Zen NAS背后的原则根本不同。Zen NAS使用输入图像的梯度范数作为排名得分,并提出使用两个前馈推断来近似用于分类的梯度范数。相比之下,MAEDET使用基于熵的分数,这只需要一个前馈推理。有关更多实证比较,请参见实验部分。

4.2. Multi-Scale Entropy Prior (MSEP) for Object Detection

在真实世界的图像中,对象大小的分布并不均匀。为了引入这种先验知识,检测主干有5个阶段,其中每个阶段将特征分辨率降采样到一半。MSEP从每个阶段的最后一层收集特征图,并将相应的特征图熵加权和作为新的测量。我们将这种新的度量命名为多尺度熵。该过程如图2所示。在该图中,主干提取不同分辨率的多尺度特征C=(C1,C2,…,C5)。然后,FPN颈部熔断器C作为检测头的输入特征P=(P1,P2,…,P7)。然后,主干F的多尺度熵Z(F)由下式定义:

image-20230206214422314

其中H(Ci)是i=1,2,··,5时Ci的熵。权重α=(α1,α2,··,α5)在平衡不同尺度特征的表现力之前存储多尺度熵。

image-20230206214235259

How to choose α

作为图2中的具体示例,P3和P4的部分由P5的上采样生成,P6和P7由P5(由C5生成)的下采样直接生成。同时,基于C5携带足够的上下文来检测各种尺度上的对象这一事实(Chen等人,2021b),C5在主干搜索中很重要,因此最好为权重α5设置更大的值。然后,在附录D中探索了α和相关分析的不同组合,表明**α=(0,0,1,1,6)**对于FPN结构足够好。

4.3. Evolutionary Algorithm for MAE-DET

结合以上所有内容,我们在算法1中提出了MAE-DET的NAS算法。MAE-DET使用定制进化算法(EA)。为了提高进化效率,提出了一种从粗到细的策略来逐步减少搜索空间。首先,我们随机生成N个种子架构来填充种群P。如图3所示,种子架构Ft由一系列构建块组成,例如ResNet块(He等人,2016)或MobileNet块(Sandler等人,2018)。然后我们随机选择一个区块并用其突变版本替换它。我们在EA的早期阶段使用粗突变,并在T/2 EA迭代后切换到精细突变。在粗突变中,块类型、内核大小、深度和宽度被随机突变。在精细突变中,只有内核大小和宽度发生突变。

image-20230206214903536

在突变之后,如果新结构的推断成本不超过预算(例如,FLOP、参数和延迟),并且其深度小于预算L,则将把Ft附加到群体P中。最大深度L防止算法生成过深的结构,这将具有不合理结构的高熵,性能将更差。在EA迭代期间,通过丢弃最小多尺度熵的最差候选,将总体保持在一定大小。在进化结束时,返回具有最高多尺度熵的主干。

5. Experiments

image-20230206214958721

image-20230206215007219

image-20230206215543121

image-20230206215549787

image-20230206215627062

image-20230206215637348

image-20230206215656018

6.Conclusion

在本文中,我们重新讨论了用于目标检测的zero-shot NAS中的最大熵原理。所提出的MAEDET以比先前基于训练的NAS方法快几个数量级的搜索速度实现了具有竞争力的检测精度。虽然现代对象检测主干涉及更复杂的构建块和网络拓扑,但MAE-DET的设计在概念上简单且易于实现,展示了“简单就是更好”的理念。在各种数据集上的大量实验和分析验证了其优异的可移植性。


http://chatgpt.dhexx.cn/article/6iG870BH.shtml

相关文章

MAE论文解读

文章目录 创新点算法原理MaskingMAE encoderMAE decoder重构目标 实验Baseline: ViT-Large.消融实验Mask token自监督方法比较迁移至目标检测任务及语义分割任务 结论 论文: 《Masked Autoencoders Are Scalable Vision Learners》 代码: https://github.com/facebookresearc…

MSE与MAE

均方误差 均方误差(MSE)是最常用的回归损失函数,计算方法是求预测值与真实值之间距离的平方和,公式如图。 下图是MSE函数的图像,其中目标值是100,预测值的范围从-10000到10000,Y轴代表的MSE取值范围是从0到正无穷&…

论文阅读|MAE

Masked Autoencoders Are Scalable Vision Learners 参考资料 Self-Supervised Learning 超详细解读 (六):MAE:通向 CV 大模型 - 知乎 (zhihu.com) Self-Supervised Learning 超详细解读 (目录) - 知乎 (zhihu.com)、 1. 有监督(Supervise…

MAE论文笔记

MAE论文笔记 Masked Autoencoders Are Scalable Vision Learners MAE模型和其他的结构的关系,可以认为是在ViT的基础上实现类似于BERT的通过完型填空获取图片的理解 标题和作者 Masked Autoencoders Are Scalable Vision Learners 其中的Autoencoders 中的auto是…

MAE

背景 作者开门见山说明了深度学习结构拥有越来越大的学习容量和性能的发展趋势,在一百万的图像数据上都很容易过拟合,所以常常需要获取几百万的标签数据用于训练,而这些数据公众通常是难以获取的。MAE的灵感来源是DAE(denosing autoencoder)…

RMSE(均方根误差)、MSE(均方误差)、MAE(平均绝对误差)、SD(标准差)

RMSE(Root Mean Square Error)均方根误差 衡量观测值与真实值之间的偏差。 常用来作为机器学习模型预测结果衡量的标准。 MSE(Mean Square Error)均方误差 MSE是真实值与预测值的差值的平方然后求和平均。 通过平方的形式便于…

【深度学习】详解 MAE

目录 摘要 一、引言 二、相关工作 三、方法 四、ImageNet 实验 4.1 主要属性 4.2 与先前结果的对比 4.3 部分微调 五、迁移学习实验 六、讨论与结论 七、核心代码 Title:Masked Autoencoders Are Scalable Vision LearnersPaper:https://arx…

MAE模型介绍

目录 介绍 模型 ​编辑 实验过程 结论 介绍 Masked Autoencoders Are Scalable Vision Learners Facebook Al的kaiming大神等人于2021年十一月提出了一种带自编码器(MAE),它基于(ViT)架构。他们的方法在imageNet上的表现要好于从零开始训练的VIT。 灵感来源&…

深度学习:MAE 和 RMSE 详解

平均绝对误差MAE(mean absolute error) 和均方根误差 RMSE(root mean squared error)是衡量变量精度的两个最常用的指标,同时也是机器学习中评价模型的两把重要标尺。 那两者之间的差异在哪里?它对我们的生活有什么启示…

RMSE、MAE等误差指标整理

1 MAE Mean Absolute Error ,平均绝对误差是绝对误差的平均值 for x, y in data_iter:ymodel(x)d np.abs(y - y_pred)mae d.tolist()#maesigma(|pred(x)-y|)/m MAE np.array(mae).mean() MAE/RMSE需要结合真实值的量纲才能判断差异。 下图是指,假如g…

MAE详解

目录 一、介绍 二、网络结构 1. encoder 2. decoder 3. LOSS 三、实验 全文参考:论文阅读笔记:Masked Autoencoders Are Scalable Vision Learners_塔_Tass的博客-CSDN博客 masked autoencoders(MAE)是hekaiming大佬又一新作,其做法很…

crontab用法详解

crontab命令用于设置周期性被执行的命令,适用于日志备份,清理缓存,健康状态检测等场合。 crontab的配置文件:/etc/crontab

linux的crontab用法与实例

linux的crontab用法与实例 crontab的适用场景 在Linux系统的实际使用中,可能会经常让系统在某个特定时间执行某些任务的情况,比如定时采集服务器的状态信息、负载状况;定时执行某些任务/脚本来对远端进行数据采集或者备份等操作。 首先通过…

定时任务 crontab 命令安装和用法整理

Crontab 概念 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令,类似于闹钟,可以定时执行任务。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中(是“cron table”的简写&#…

crontab用法与实例

crontab用法与实例 本文基于 ubuntu 18.04 在Linux系统的实际使用中,可能会经常碰到让系统在某个特定时间执行某些任务的情况,比如定时采集服务器的状态信息、负载状况;定时执行某些任务/脚本来对远端进行数据采集等。这里将介绍下crontab的配…

crontab的基本用法

1、 crontab -l 查看所有的定时任务 2、 crontab -e 编辑定时任务。 i 进入编辑模式 。esc退出编辑模式。:wq! 保存并退出。 报错信息: “/tmp/crontab.4qE940”:1: bad month errors in crontab file, can’t install. 说明定时任务编辑失败,文件中有错…

linux中crontab的用法

一:crontab 简介 crontab是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程…

1.4 - 操作系统 - Linux计划任务,CronTab用法详解

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「订阅专栏」:此文章已录入专栏《网络安全入门到精通》 CronTab计划任务 一、服务二、查看计划任务三、编辑计划任务四、删除计划任务五、配置文件Linux系统使用CronTab命令来操作计划任务。…

crontab 详细用法、定时任务 、时间规则

简介 Linux crontab和Windows task schedules非常的相似。Crontab可以用来在系统中定期的执行任务。比如:写了一个爬虫需要每天早上八点执行,就可以用到Crontab;安装的Tomcat服务器需要每天凌晨重启一次,也可以使用到Crontab。总之&#xff0…

crontab的使用方法介绍

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行 安装:apt-get install cron (服务器环境下默认都会安装) 使用:crontab -e 进入编辑页面(第一次进入会让你选择编辑…