架构搜索文献笔记(7):《MemNAS:具有增长修剪的记忆高效神经结构搜索学习》

论文《MemNAS: Memory-Efficient Neural Architecture Search with Grow-Trim
Learning》-2020-CVPR
**
论文链接
代码链接

论文为机器翻译的,当时只想看个大概,好久以前的笔记

一、摘要及主要贡献

1.1 摘要

最近关于自动神经结构搜索技术的研究显示了显著的性能,与手工制作的神经结构竞争,甚至更好。然而;现有的大多数搜索方法倾向于使用残余结构和浅层和深层特征之间的连接。因此,一个生成的神经网络模型对于资源约束设备来说是非常重要的,因为这种模型需要大量内存来存储网络参数和中间特征映射,同时还需要过度的计算复杂性。

为了解决这一挑战,论文提出了MemNAS,一种新的基于生长和修剪的神经结构搜索框架,它不仅优化了推理网络的性能,而且还优化了内存需求。具体来说,在搜索过程中,论文考虑运行内存的使用,包括网络参数和基本的中间特征映射内存需求,作为优化目标和性能。此外,为了提高搜索的准确性,论文提取了多个候选架构之间的相关信息,对它们进行排序,然后选择性能和内存效率理想的候选架构。

在ImageNet分类任务中,MemNAS的准确率达到了75.4%,比MobileNetV2高0.7%,内存需求减少了42.1%。额外的实验证实,提出的MemNAS可以在不同的目标之间的准确性和内存消耗之间的权衡表现良好。

1.2 主要贡献

论文进行了一系列的实验,并证明了MemNAS可以构建一个性能竞争力但内存需求低于现有技术的神经网络。本项工作的贡献如下:

论文提出了一个神经架构搜索框架,该框架可以增长和修剪网络,用于自动构建一个内存高效和高性能的架构。

论文设计了一个结构相关控制器来预测候选网络的排名,这使平均NAS能够有效地在更大、更多样化的搜索空间中搜索最佳网络。

论文提出了一个记忆效率度量,定义了精度和内存需求的平衡,论文可以训练控制器和评估搜索过程中的神经网络。该度量考虑了参数和基本中间表示的内存要求。为了在没有目标硬件平台细节的情况下估计内存需求,论文还开发了一种基于寿命的技术,它可以计算推理操作的内存消耗的上限。
在这里插入图片描述

二、论文相关

2.1 增长和修剪候选架构

在平均NAS中,每一轮都基于前一轮选择的网络生成大量候选神经网络(称为基础网络)。这些生成的候选架构的集合构建了这一轮的搜索空间。使搜索空间能够包含不同的候选架构是很重要的。这是因为一个大的搜索空间可能会增加找到满足目标的最佳网络架构的机会
论文首先通过发展一个基础网络来生成新的候选架构。具体地说,论文以相同的方式向所有五个块中添加了一个新的单元格。论文还通过修剪基础网络来生成更多的候选对象。
论文考虑两种类型的修剪。首先,论文可以用标识操作层替换现有的操作层。其次,论文可以删除一条边。如果删除边缘使层失去输入边缘,或者单元格的输出不输入其他单元格,论文删除层和单元格(参见图1©底部,第二个最后一个修剪生成示例)。请注意,论文只在五块中的一个执行修剪。
通过增长,所有可能的候选人的搜索空间的大小可以表述为:
在这里插入图片描述
其中,I表示单元格中可用输入位置的数量,L表示可用操作层类型的数量,而C表示连接方法的数量。
另一方面,通过修剪,所有可能的候选者的搜索空间的大小可以表述为:
在这里插入图片描述
其中B是块的数量,li是块i中的层数,ci是块i中的单元格的数量,ei是块i的最终连接中现有输出的数量。
在这里插入图片描述

2.2 结构相关性控制器

论文的增长和修剪技术使医学NAS能够探索一个包含一套不同的神经网络结构的大型搜索空间。特别是,论文逐块修剪单层或边缘,在很大程度上增加了搜索空间的多样性和大小。因此,为了在不训练所有候选者的情况下找到最优的神经网络架构,构建一个控制器(或一个预测器)来准确地寻找顶级的k个候选者是至关重要的。为此目标,论文提出了一个结构相关控制器(SCC)。该控制器可以将每个候选网络的堆叠块映射到一个特征,然后根据用户指定的精度目标和内存需求来估计候选网络的排名。SCC的目标是提取候选网络之间的相对信息来评估相对性能,这比现有的控制器[15]单独预测每个候选网络的绝对分数更准确,然后根据绝对分数对前k进行排序。

SCC主要由两个递归神经网络(RNN)层组成:i)将每个候选者的块映射到一个特征的编码层,ii)排名层将所有候选者的特征映射到排名得分(图2)。在编码层中,论文首先将候选网络输入到嵌入层,获得一组元组,然后输入到编码层(编码器RNN)。其结果代表了每个候选网络fi的特征。论文对所有n个候选者重复这个过程,并生成fi∈{f1,f2,…,fn}。然后,由排名RNN(RNN)和全连接(FC)层组成的排名层一次接收候选网络的特征,并估计所有候选网络的排名分数。排名层的记忆能力提高了估计精度,因为它记忆了过去的候选网络的特征来估计当前网络的相对性能。SCC的损失函数定义为:
在这里插入图片描述
其中n表示输入架构的数量,iip表示候选架构i的估计结果,而yi表示内存效率度量。
论文设计了记忆效率度量i来将当前搜索一轮中的每个候选者与前一轮搜索中选择的神经网络进行比较。其制定为:
在这里插入图片描述
其中,a是神经网络的精度,r是缓冲中间表示的最大内存需求,而p是存储参数的最大内存需求。下标预先表示在前一轮搜索中选择的神经网络(即当前搜索轮的基础网络),而下标i表示当前搜索轮中的第i−候选网络。λ是一个用户指定的超参数,用于设置推理网络性能和内存需求之间的目标权衡。λ=0使均值NAS仅旨在最小化推理网络的内存需求,而λ=1仅是为了最大限度地提高精度性能。

2.3 候选架构选择

在SCC生成候选对象的前k列表后,MemNAS使用目标数据集和丢失函数对这些候选对象进行训练。在这项工作中,论文使用CIFAR-10和图像网络数据集进行分类,因此使用交叉熵损失函数LCE来训练候选对象

然后,论文计算每个候选的内存效率度量与实际精度性能,计算内存需求,并对其重新排序。然后,论文选择排名最高的候选人。论文通过训练SCC,结束了当前一轮的NAS。在这里,论文使用了论文刚刚训练过的顶级k候选者的数据和论文刚刚计算出的内存效率指标。论文在上述方程3中使用了损失函数Lossmem。更新SCC后,如果未满足完成条件,论文将开始新一轮的搜索。
2.3.1 内存需求估计
在每一轮搜索中,模块NAS按多个步骤计算和使用内存效率度量(yi),即使用SCC估计顶部的k候选者,训练SCC,并在一轮搜索结束时确定最佳候选者。如方程式4所示,该度量是对参数和中间表示的内存要求的函数。估计参数的内存需求是很简单的。例如,论文可以简单地计算权重数和每个权重的数据大小的乘积(例如,短整数的2字节)。然而,估计中间表示的内存需求并不简单,因为这些数据在推理操作过程中以更复杂的方式存储和丢弃。

动态也取决于硬件体系结构,如的大小,一种寄存器文件、片上数据存储器文件、缓存机制等。

因此,论文的目标是估计缓冲中间表示的内存需求,而不需要底层计算硬件体系结构的细节。为此,论文利用了所谓的寄存器寿命估计技术[33],其中数据的寿命被定义为从生成到删除的周期。为了使用前馈神经网络执行推理操作,计算平台计算从输入层到网络的输出层的每层输出。图层的输出必须存储在内存中,直到所有需要的后续层使用。在其使用寿命结束后,数据将被丢弃,这使得用于存储这些数据的内存硬件可以再次用于其他数据。

对于图1(b)所示的神经网络,绘制生命周期图(图3)。在垂直轴中,论文列出了神经网络的所有边缘,即中间表示。水平轴表示时间(T),假设一层计算需要一个单位时间(u)。在T=1u.t.,r1被生成并存储并馈入三层(dp3×3、Fac1×7和dp5×5)。假设r1的数据大小为1,则T=1u.t的内存需求。该参数为1。在T=2u.t.,三层完成计算并生成I2、I3和I5。这些数据确实需要被存储。然而,r1不再需要任何层,因此可以被丢弃。因此,在T=2u.t.处,所需内存的大小为3。论文可以继续将此过程进行到网络的最后一层,并完成生命周期图。最后一步是简单地查找随时间推移的最大的内存需求,在本例中为4。

在这里插入图片描述
图1(b):CIFAR-10的网络结构。神经网络体系结构有五个块。每个块包含几个步1和2的单元格。灰色背景中显示的每个单元格(Ci)由五个二进制向量的元组表示。ri表示一个块中的中间表示。

在这里插入图片描述
图3:使用寿命图示例。论文绘制图1(b)绘制神经网络块结构的寿命图。固体圆表示中间表示的产生,卤素电路表示中间数据的删除。为了简单起见,论文假设每个中间表示的数据大小(∈1、2…10)是1。最后一行表示每次的内存需求;其中最大的一行决定了硬件对中间数据表示的内存需求。

三、论文试验部分

3.1 试验一

表1:CIFAR-10结果比较。平均NAS(λ=0.5)和(λ=0.8)是不同的搜索结果,性能和内存需求之间的搜索目标权衡。总内存:包含参数内存和由论文基于寿命的方法计算的基本中间表示内存的内存需求。内存节约:由平均NAS计算的总内存需求节约(λ=0.5)。排名前1名的。

3.2 试验二

表2:ImageNet结果比较。对于基线模型,论文根据它们在精度和内存消耗之间的目标权衡,将它们分为两类。对于论文的模型,NAS-A和-B从搜索模型NAS(λ=0.5)和(λ=0.8)扩展,分别有16个块。排名前1名的。:ImageNet分类精度。在批量大小为1的像素电话上测量推理延迟。

在这里插入图片描述

3.3 试验三

图5:λ调制的结果。从0到1横扫λ,元NAS可以产生一系列具有良好扩展精度和内存需求的神经网络架构。中值0.5使MemNAS能够产生良好平衡的神经网络结构。实验使用了CIFAR-10数据集。图5:λ调制的结果。从0到1横扫λ,元NAS可以产生一系列具有良好扩展精度和内存需求的神经网络架构。中值0.5使MemNAS能够产生良好平衡的神经网络结构。实验使用了CIFAR-10数据集。

在这里插入图片描述

3.4 试验四

表3:控制器的比较。提出的SCC旨在估计相对排名分数,优于传统的估计每个神经网络候选者的绝对分数的控制器,然后使用分数对其进行排序。
在这里插入图片描述

四、论文总结

在这项工作中,论文提出了MemNAS,一种新的NAS技术,可以优化精度性能和内存需求。内存需求包括网络参数和中间表示形式的内存。

论文提出了一种新的候选生成技术,它不仅增长,而且修剪了每个搜索回合的基础网络,从而增加了搜索空间的大小和多样性。为了有效地在搜索空间中找到最佳的架构,论文提出了结构相关控制器,它根据架构之间的相对信息来估计候选者的排名。

在CIFAR-10上,论文的MemNAS达到了94%的最高1精度,类似于移动网络V2(94.1%)[21],而只需要小于1MB的参数内存。在图像网上,论文的MemNAS精度达到了75.4%的前1精度,比移动网V2[21]高出0.7%,内存需求减少了42.1%。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值