没有合适的资源?快使用搜索试试~ 我知道了~
资源受限下的神经网络架构搜索
1资源受限的神经网络架构搜索:子模块化假设是否有帮助?熊云阳Ronak Mehta Vikas Singh威斯康星大学麦迪逊分校yxiong43@wisc.eduronakrm@cs.wisc.eduvsingh@biostat.wisc.edu摘要神经网络架构的设计通常基于使用试错和经验反馈的人类专业知识,或者通过在不同的离散架构选择上执行的大规模强化学习策略来解决。在后一种情况下,优化通常是不可微的,并且也不太适合无导数优化方法。目前使用的大多数方法都需要相当大的计算资源。如果我们希望网络还能满足资源约束,那么上述挑战就会加剧,因为搜索现在必须在准确性与资源的某些预算约束之间进行平衡。我们制定这个问题作为一个集函数的优化基于这一观察,我们适应离散优化算法,以获得神经网络架构搜索的启发式方案,在那里我们有资源限制的架构。这个简单的方案在CIFAR-100和ImageNet上应用时,识别出资源受限的架构,其性能比为移动设备设计的当前最先进的模型要好得多。具体来说,我们发现高性能的架构,更少的参数和计算的搜索方法,是更快。1. 介绍针对给定学习任务的最先进神经网络架构的设计通常涉及大量工作:人类专业知识以及强大计算能力。人们普遍认为试错过程是乏味的,通常需要基于经验反馈在其他情况下,它也可能是测试时模型的内存占用或速度的函数这种架构搜索过程成为当我们寻求资源受限的网络以最终部署在小型设备上时,准确性和资源效率需要仔细平衡。此外,每种类型的移动终端具有其自身的硬件特性,并且可能需要不同的体系结构以实现最佳的准确性-效率权衡。出于这些考虑,研究人员正致力于开发自动化架构搜索和设计过程的算法。通过明智地使用这种架构搜索方案(通常与人类经验一起)识别的许多模型目前在分类[3,31,44]和对象检测[31]方面提供了出色的性能。尽管经由上述过程识别的架构的性能优越,但众所周知的是,这些搜索算法是耗时且计算密集的。作为参考,即使对于CIFAR-10这样的较小数据集,[44]也需要3150个GPU天来实现强化学习(RL)模型。已经提出了许多方法来加速架构搜索算法。一些策略包括向搜索空间添加特定结构以减少搜索时间[25,36],在各种架构之间共享权重[5,30],以及为每个不同的架构施加权重或性能预测约束[3,4,26]。这些想法在各种特定情况下都有帮助,但大搜索空间的固有问题和相关的可扩展性困难仍然存在。请注意,许多基于RL、进化方案、MCTS [28]、SMBO [25]或贝叶斯优化[18]的搜索方法通常是计算密集型的一个原因是,架构搜索通常被设置为大型离散域上的此外,许多架构搜索方法[8,25,44]不直接考虑某些资源边界(例如,FLOP的数量),但是搜索空间可以被预处理以过滤掉搜索空间的那些区域因此,很少有方法被广泛用于识别移动/嵌入式设备的部署就绪架构当感兴趣的资源是内存时,19011902选择是首先训练网络,然后挤压或压缩它以用于目标部署设备[2,9,12,37,40]。关键的想法。在这里,我们对这个问题采取了稍微不同的攻击路线,它松散地基于2000年代早期/中期广泛用于计算机视觉的思想[21]。首先,我们远离了用于架构搜索的黑盒优化,类似于最近其他作品中采用的策略[14,18,25,28,33]。相反,我们认为架构是由原始的基本块组成的。假设块之间的“连接”或连接是固定的,而每个块提供的实际功能是一个决策变量-这正是我们将执行的搜索。然后,目标是确定块的分配,使得整体架构满足两个简单的属性:(a)它满足用户提供的资源界限,以及(b)对于用户感兴趣的任务是准确的。虽然我们将使声明更正式不久,很容易看到,上述问题可以很容易地被视为一个集函数。每个空块可以分配给特定类型的功能模块。一旦所有的块都被分配给某个功能模块,我们就有了一个“建议”网络架构,可以通过训练完成或提前停止来评估其准确性[24,41]。不同的分配只会产生具有不同性能配置文件的不同体系结构。通过这种方式,可以查询/采样集合函数(其中精度可以被认为是函数评估)。我们发现那个恩皮里-它可以很容易地扩展到许多不同的资源限制架构的搜索应用程序。我们的贡献是:(1)我们将资源约束结构搜索(RCAS)描述为一个集函数优化,并基于已知的约束子模块优化的有效思想设计了一个启发式算法。(2)我们描述了一些方案,通过这些方案,算法可以容易地满足由于特定部署平台(FLOP的数量、功率/能量)而施加的约束。(3)在搜索结果方面,实现了显著的体系结构搜索效率。在CIFAR-100上,我们的算法在2个GPU上只需要两天就可以获得与Mo-bileNetV 2相似复杂度的架构。在ImageNet上,我们的算法在2个GPU上运行了8天,并确定了一个在复杂性和性能上与MobileNetV2相似的架构(4)我们证明了RCAS在CIFAR-100 上 学 习 的 体 系 结 构 可 以 直 接 转 移 到ImageNet中,并具有良好的性能。2. 预赛2.1. 架构搜索我们的目标是在移动卷积神经网络(MCNN)的设计中包含计算约束。考虑可用于特定预测任务的有限计算预算,B。设计高效MCNN的问题可以被视为寻求适合所述预算B的最准确的CNN模型:当我们评估这个集合函数的行为时,它通常表现出良好的边际收益或收益递减MaxCNNf(cnn) 受 成本(cnn)≤B(1)特性. 此外,性能(准确性)通常在增加功能时,其中f表示得分函数,通常是保持的样本集合上的验证准确度Xvalid:=(xi,yi)m,模块到当前空的块(类似于添加一个ele-block)。1个Pmi=1也就是说, f(cnn)=mi=11[cnnw(xi)=yi]. 参数w一套)。 这些属性是次模的核心-这是计算机视觉中许多经典方法中的一个关键概念。当然,在数学上,我们的集合函数不是次模的。然而,我们的实证研究表明,集合函数通常表现良好。因此,类似于启发式应用凸优化技术的非凸问题,我们利用子模块优化算法的架构搜索算法设计。主要贡献和成果。我们采用了一个简单的贪婪算法与性能保证的子模优化使用训练集Xtrain学习,通常具有代理交叉熵损失和随机梯度下降。资源限制。 模型成本通常是[10]类似于算法空间和时间复杂性:首先是参数的数量,其次是计算的数量,乘加(MAdd)或每秒浮点运算(FLOPs)。考虑到这一点,我们可以更具体地定义预算约束。对于预算B,假设存在对应的最大数量的MAdsBm和参数Bp的数量:用于优化建筑搜索,MaxCNN(cnn)(2)数据集性能。这种设计选择实际上使相对于使用数量级更少的计算资源的现有技术的方法,实现非常有利的性能,同时与其他最近的有效搜索 方 法 , 例 如 ENAS 、 Prox- ylessNAS 、 DARTS 和FBNet [6,27,30,38]竞争这种贪婪搜索也比许多现有的搜索方法简单得多:不需要控制器[3,30,43,44]、超网络[4]或性能预测器[25]。S.T.MAds(cnn)≤Bm,P aram(cnn)≤Bp其中MAds(cnn)表示乘加的数量,Param(cnn)表示模型cnn的参数数量。这些格式中给出了典型的硬件约束,通过物理内存规格或处理器速度和缓存限制。现代CNN是通过构建各种类型的基本块的序列来构建的。在网络设计中,可以1903在基本块的类型、块顺序和块的数量方面有多种选择。示例包括ResNet块、3x3卷积层、batchnorm层等。[11]第10段。给定一个大的各种基本块的集合,我们将我想找到一个子集S,它会导致性能良好、成本低的CNN。区块可能有不同的相关成本,在MAds和参数的数量。2.2. 次模优化在一组块上的搜索,最大限度地提高精度,并保持在预算内是NP-难的,即使当成本的每个块的参数和计算的数量是平等的所有元素。然而,使用子模优化的思想,我们可以推导出最小值-{1,. ..,L}在位置n∈ N={1,. ..,N}为ln,V表示N个元素(块)的有限集,F表示定义在V的幂集上的集函数,F:LV→ R.给定一组块,S ∈LV(例如, S={32,11}),我们建立模型CNNcnn(例如,述第一块类型1(11)和第二个类型3(32)),并取CNN的验证准确度为F(S)的值,F(S)=f(cnn)。 那么准确性就是我们从块集合到实数的映射,对于每个S∈LV,CNN是基于S用选定的块构建。 我们的总搜索空间大小为LN。对于每个块集合S,相关联的成本c(S)不能超过指定预算B。使用上述准确性和成本的概念,我们的目标是解决问题,用于架构搜索的TIC。MaxS✓VF(S)受c(S)≤B(5)定义1函数F:2V→R,其中V是有限集,2V表示V的幂集,是次模的,如果对每个A <$B <$V且v∈V\B,它成立,F(A <${v})−F(A)≥F(B <${v})−F(B)(3)直观地说,子模函数有一个自然的收益递减属性。在一个已经很大的集合中添加额外的元素不如在集合很小。子模函数的一个子类是单调函数,其中对任意A <$B <$V,F(A)≤F(B).子模函数具有许多其他属性,包括在非负线性组合下封闭。典型的子模优化maxS VF(S)涉及在所选集合上给定一些约束的情况下找到子集S V:基数约束|S|r是最简单的。在这些情况下,形式优化是NP难的。子模函数F(S)的一般形式,并且需要复杂的和特定于问题的算法来找到好的子模函数。解[19]。然而,它已被证明,贪婪算法可以获得良好的效果在实践中。从空集开始,该算法迭代地将元素vk添加到集合Sk-1,并更新:精度目标F(S)具有重要的特性,因为我们可以在SGD训练期间找到最佳可能的参数设置(全局最优)。F是单调的,即,F(A)≤F(B),对任意A<$B <$V。直观地说,增加块(使网络更大)只能提高总体准确性对于每个S,我们可以得到其对应的参数P aram(S)的数量或乘法的数量添加MAds(S)。在实践中,SGD的培训可能无法达到全局最优:在这种情况下,添加块可以而不是提高准确性。然而,我们自己的经验结果和现有文献中的结果表明,这种非递减行为通常是正确的,即,在ResNet [11]中。将全局最优的每个成本-精度对表示为(ci,fi),i= 1,. ..,LN,并将三个虚拟点(0,0),(cLN,0),(cLN,max{f1,. ..,fLN})。这个集合可以被看作是一个凸包,其中对于每个成本,我们在凸包上分配其关联的正值如果F(S)总是可以到达其关于c(S)的凸包点,则精确最佳目标同时满足非负性和非递减性,单调性这正是与子模块化相关的收益递减特性:将块添加到较小的一组选定块A至少与将其添加到较大的选定块B的情况一样地提高精度。vk=argmax v2V\Sk−1F(Sk-1<${v})−F(Sk-1),(4)如果我们让CNN的准确度为0,当没有选择块时,F(k)=0,那么我们立即发现,其中F(Sk-1<${v})-F(Sk-1)是将v添加到前一集合Sk-1的F的边际改进。[22]的结果表明,对于非负单调子模函数,贪婪算法可以找到一个集合Sr,使得F(Sr)≥(1−1/e)max| S|rF(S). 我们利用这个结果,为寻找好的体系结构推导出算法。3. 子模块神经结构搜索假设需要填充N个块表示类型为l∈L=1904引理1对于任何选定的块A、B、V和块v∈ V\B,则F(A)≥0(6)F(A {v})−F(A)≥0(7)F(A <${v})−F(A)≥F(B <${v})−F(B)(8)其中F到达其凸壳点w.r.t.代价因此,神经结构搜索问题可以解决的问题,最大化一个非负的nondecreas- ing功能,受参数和计算预算约束。1905P aram(v)1P aram(v)22.2(4)节中描述的简单贪婪算法假设所有区块的成本相等自然地,在c(S)=v2Sc(v),它可以任意地表现得算法1 经济高效的贪婪CNN搜索(CEG)函数CEG(V,F,B,c(·))S←argmaxv2VF(v)迭代地添加块,直到预算耗尽。一包含大量参数的块,或者c㈤当c(S)≤B时,v?=argmaxv2V\SF(S[{v})-F(S)精确度为fo的被动MAds将优于更便宜的块offering准确的c yfo-prone. 为了处理这些背包约束,可以将(4)中的边际增益更新修改为边际增益比,S←S{v?}end while返回Send functionc㈤vk=argmax v2V\Sk−1F(Sk-1<${v})−F(Sk-1)c㈤(九)改进的贪婪算法与边际收益率规则试图最大化的成本/效益比,并停止时,预算耗尽。然而,即使有了这种修改,贪婪算法仍然可以执行任意差的全局最优。例如,考虑在两个块v 1和v 2之间拾取的参数成本,Param(v1)=p,Param(v2)=p。如果我们计算出输入...0.05 0.2 0.1 0.12 0.1 0.110.4 0.1 0.09 0.1 0.15 0.19...…输出当F(v1)=3时,添加块的准确性,F(v2)=0.050.3 0.1 0.12 0.1 0.11 0.1 0.15 0.192p,则成本/效益比为F(v1)-F(;)= 3和…F(v2)-F(;)=2. 修改后的贪婪算法将挑选块v1。 如果选择了v1并将其添加到当前集合,并且我们没有足够的预算来下一次添加v2,则我们只能实现精确的y3。 然而,最佳解决方案是选择v2givena n ybudget小于p+p。幸运的是,贪婪算法可以进一步适应。0.12 0.1 0.11...0.1 0.150.1...我们使用精确的参数比计算S_∞APR(APR)利用规则(9)和代价参数(v),利用与代价MAds ( v ) 相 同 的 准 确 度 MAds 比 ( AMR ) 得 到S_MAds比,并采用一致代价(UC)贪婪算法。租m与规则Eq. (4)得到S_(10)UC。新修改的成本有效贪婪(CEG)算法返回达到最大准确度的模型。有了这些规则,CEG仍然可以实现一个常数比近似。定理1若F是一个非减集函数,且F(?) =0,则CEG算法实现了最优值的恒定比率1(1−1)图1:我们的懒惰成本效益贪婪搜索的概述。颜色对应于不同的基本块类型,而空框表示网络中要考虑填充块的位置。数字低块表示在该位置填充的块的边际效益。步骤1搜索所有块。步骤2选择具有最高边际效益的块13,用于填充位置3。第3步更新下一个最高的边际效益,增加13步骤4选择最高边际benefit block,21,用于填充位置1。 步骤5更新下一个最高边际收益,添加{13,21},3N。然而,3N的边际效益不是最高的,所以我们没有选择这个区块,搜索继续。一旦预算耗尽,就可以获得最终的架构(未填充的块用标识操作替换)。2emax{F(SUC), F(SAPR), F(SAMR)}(10)3.1. 提前停止训练≥1 1(1−)max2eMAds(S)BmParam(S)BpF(S)运行时间与函数eval成线性关系。评估时间。 这段时间包括全部培训时间,证据在补充中如果我们考虑时间-如果算法的时间复杂度为O(T)(T是SGD训练网络的时间),则CEG的运行时间为O(|V| ΦT),其中|V|=LN是总数对于块,Φ=max1kLN{BP、BM{\fn方正粗倩简体\fs12\b1\bord1\shad1\3cH2F2F2F} 的通过SGD学习网络权重,以实现接近全局最优的测试集 精 度 。 这 是昂 贵 的 , 所 以 即 使 是“低”数量的O(|V|2)在实际情况下,要搜索的CNN的数量是禁止的,其中一个可能无法访问大型GPU群集,参数(ek)MAds(ek)CEG算法的时间复杂度为O(T |V|2)的情况。虽然这是一个相当大的改进,我们最初的组合方法,模拟-简单的技术/经验观察使我们能够通过在训练期间提前停止并使用惰性函数评估来扩展和加速CEG算法1906训练时间。在这种情况下,为了减少学习CNN的权重以进行准确度函数评估的时间,我们减少了epoch的数量,并通过提前停止来训练网络我们的实验表明,这会导致学习到的体系结构类似于训练到最优的体系结构。1907c㈤3.2. 惰性函数求值通过提前停止和缓存,虽然我们可以在添加任何块时快速评估精度函数F(S),但我们仍然需要进行大量的函数评估才能运行CEG。运行时间至少与总块数成线性关系,在最坏的情况下,如果选择的块的数量可以是算法2 懒惰的成本有效的贪婪搜索函数LAZY-CEG(V,F,Bp,Bm,c(·))S ←PriorityQueue Q← PriorityQueue()对所有v ∈V做第一次迭代如果Param(v)≤Bp且MAdds(v)≤Bm,则push({v,F(v)})作为块的总数LN。如果我们选择K个块来构建CNN,|V| blocks,O(K| V|)评价是必要的。可以利用子模块性属性进一步执行少得多的功能评估。添加任何一个块的边际效益可以写为,对于所有v∈V \ S,|S)=F(S <${v})−F(S)。利用子模块性的关键思想是,结束if结束forS←S{ Q.pop()}当Q∈Q:Param(S ∈ {v})≤Bp且MAdds(S ∈{v})≤Bm时,进行Lazy更新v?←Q.pop()如果v?V \ S,则我们选择的区块的增长,边际效益永远不会增加,这意味着如果A B V,它保持,(v)|A)≥ 100(v| B)。因此,我们不需要更新然后F(S[{vy})-F(S)如果c(vy)S ← S {v?}≥F(S[{Q.top()})-F(S)c㈤(v)|S)对于每个网络,在添加新块v 0之后,以及我们可以执行惰性评估。 这个懒惰的成本效益其他?F(S[{vy})-F(S)贪婪算法(LCEG),Alg. 2,可以描述为如下:1.应用规则Eq. 4搜索所有LN块,并按优先级队列以降序保持所有边际效益的有序列表二、选择优先队列的顶部元素作为第一次迭代时的第一个选定块3. 重新评估(v| S)对于先前中的顶部元素v,Q.push({v,如果结束end while返回Send functionc(vy)})城市排队4.如果增加块v,则|S)大于优先级队列中的顶部元素,因此选择块v。否则,将其与更新后的(v)一起插入|(S)回到队列中。5.重复步骤2-4直到预算耗尽.的概述LCEG可以在图1中看到。在许多情况下,重新评估的|S)将产生一个新的但不会小得多的值,并且顶部元素将他们经常站在顶端。通过这种方式,我们通常可以找到下一个要添加的块,而不必重新计算所有块。因此,这种懒惰的评估导致F的评估要少得多,这意味着我们在尝试添加一个块时需要训练的网络要少得多。最后的算法包括利用我们的LCEG程序。算法3中定义了资源受限架构搜索RCAS。4. 实验在ImageNet上直接搜索CNN模型是昂贵的,并且可能需要几天才能找到网络架构(即使没有资源限制)。以前的工作[31,44]建议我们可以在较小的代理任务上执行我们的架构搜索实验,然后将搜索过程中发现的性能最好的架构转移到目标任务。然而,[36]表明,在约束条件下找到一个好的代理任务并CIFAR-10 [23]和斯坦福犬数据集[20]证明这些数据集不是ImageNet的好代理任务,当预算约束被考虑到ac中时,1908算法3资源受限架构搜索(RCAS)函数RCAS(V,F,Bp,Bm)SUC←LAZY-CEG(V,F,Bp,Bm,const(·))SAPR←LAZY-CEG(V,F,Bp,Bm,Param(·))SAMR←LAZY-CEG(V,F,Bp,Bm,M Adds(·))returnargmax{SUC,SAPR,SAMR}end function算RCAS在这个问题设置中表现出色,允许我们在更大的数据集CIFAR-100上执行架构搜索事实上,我们还可以直接在ImageNet训练集上执行架构搜索,以直接评估和比较所学习的架构。在这些大规模的情况下,我们在CIFAR-100和ImageNet上训练了更少的步骤。我们在CIFAR-100和ImageNet上的实验分为两个步骤:架构搜索和架构评估。在第一步中,我们使用RCAS搜索块架构在第二步中,挑选的块用于构建CNN模型,我们从头开始训练并评估测试集上的性能。最后,我们扩展了从CIFAR-100中学习到的网络架构,并在ImageNet上评估了性能,与通过RCAS直接应用于ImageNet的架构进行了比较1909层输入操作者输出分组扩展层H×W ×C11x1 gconv2d组=ge,ReLU6高×宽 ×(C1 ×t)脱附层高×宽 ×(C1 ×t)3x3 dwise stride =s,ReLU6高/秒×宽/秒 ×(C1×t)分组投影层高/秒×宽/秒 ×(C1×t)线性1x1 gconv2d群=gpH/s×W/s ×C2表1:在资源受限架构搜索中使用的基于深度的参数和性能高效的基本块。基本块的结构源自基于深度的MobileNetV2块,改变扩展因子t并使用群卷积。基本块从C1通道变换到C2通道,具有扩展因子t、扩展组ge和具有步幅s的投影组gp。4.1. 架构搜索由于我们的主要目的是寻找低成本的移动神经网络,因此包括以下基本块(广泛使用深度卷积)用于架构搜索,通过使用不同的扩展比和群卷积进行扩展和投影,与MobileNetV2块不同(见表1)。每种类型的块如图2所示,由不同类型的层组成。我们有L= 6个不同的基本块来选择,N= 36个位置可以填充,用于在参数和MAdds约束下构建网络,以实现低成本的体系结构搜索。图1概述了如何挑选基本块来填充头寸。在体系结构搜索过程中,只能选择一个基本块来填充一个位置,否则程序将不会插入任何块。输入对于第k个拾取的块,是第(k-1)个拾取的块的输出,自然地堆叠并形成网络。架构搜索中的标准实践[31]建议使用单独的验证集来测量准确性:我们从训练集中随机选择每个类10个图像作为固定验证集。在RCAS的架构搜索过程中,我们使用积极的学习率计划在代理训练集的10个epoch上训练每个可能的模型(在每个位置添加一个具有不同选项的基本块),通过准确度集函数F(S)在固定验证集上。我们使用随机梯度下降(SGD)来训练每个可能的训练涅斯捷罗夫动量设为0.9我们采用了多步学习率的时间表,初始学习率为0。1和乘法衰减率g= 0。1在时期4、7和9用于快速学习。我们将权重衰减的正则化参数设置为4。0e-5,followingInceptionNet[34].+高×宽×3C高×宽×3CH×W ×C+高×宽×3C高×宽×3CH×W ×C+高×宽×6C高×宽×6CH×W ×C4.2. 架构评估应用我们的RCAS,我们得到一个选定的架构下给定的参数和MAdds预算。为了评估所选的架构,我们从头开始训练它,并在测试集上评估计算效率和准确性考虑到移动预算限制,我们将我们选择的架构与移动基线,MobileNetV 2和Shuf-fleNet进行比较[13,32]。我们将参数数和MAds作为计算效率,并报告了典型移动平台(iPhone 5s)上的延迟和模型大小。我们对所选架构的性能进行评估,类型1类型2类型3+CIFAR-100和ImageNet数据集。遵循先前的工作[34],我们使用验证数据集作为测试集ImageNet分类准确性的代理我们的RCAS算法和随后的资源约束CNN(RC-Net)是使用PyTorch [29]实现的。我们使用内置高×宽×6C高76%参数MAdds高×宽×6C高74%H×W ×C72%Type 4 Type 5 Type 6百分之七十1.25M1.50M1.75M2.00M2.25M2.50M60M70M80M90M100米110米图2:RCAS中使用的6种基于深度的基本块。图3:存储了沿着搜索路径的架构。RCAS使用更少的参数(约45%)和更少的MAdd(约35%)来实现相似的精度。+×W ×6C×W ×6CH×W ×CGconv 1× 1ge= 1依赖转换3×3Gconv 1× 1gp= 1+高×宽 ×12C高×宽 ×12CH×W ×CGconv 1 ×1ge= 2依赖转换3 ×3Gconv 1 ×1gp= 4RCNetMobileNetV2ShuffleNetRCNetMobileNetV2ShuffleNet依赖转换3×3Gconv 1× 1ge= 1Gconv 1× 1ge= 2Gconv 1× 1gp= 2依赖转换3×3Gconv 1× 1gp= 2依赖转换3×3Gconv 1× 1ge= 1Gconv 1× 1ge= 1Gconv 1× 1gp= 2Gconv 1× 1gp= 1依赖转换3×3精度1910架构Top-1准确度Top-5准确度参数MAdds搜索方法成本(GPU天数)MobileNetv274.2 93.32.4M91.1M手动-ShuffleNet(1.5)70.0 90.82.3M91.0M手动-NASNet-A70.0 86.03.61M132.0MRL1800DARTS(在CIFAR-10上检索)75.9 93.83.40M198.0M基于梯度4RCNet(检索CIFAR-100)76.1 94.01.92M87.3MRCAs2表2:与CIFAR-100上最先进的图像分类器的比较。我们搜索的模型比其他手动方法表现得更好考虑到MobileNetV2参数和MAds约束,我们的模型仍然优于DARTS,参数减少了2.44%,MAds减少了2.50%此外,RCAS和RCNet在CIFAR-100上的运行速度比DARTS快得多。302826240.0 0.21.1GPU时间(天)1.7 2.0基线模型和我们的RCNet之间的性能比较如表2所示。RCNet在MobileNetV2和ShuffleNet上实现了显著的改进,计算量更少,参数更少。我们的RCNet实现了与MobileNetV2相似的精度,参数减少了45%,计算减少了35%(见图3)。由于参数减少了20%,RCNet实现了1. 9%的准确度提高。CIFAR的搜寻进度100可以在图4中看到。具有早停止的子模性质成立吗在CIFAR-100上,我们发现我们的程序显示单声道-图4:RCAS在CIFAR-100上的搜索进度。随着时间的推移,我们会跟踪最新的架构,并以MobileNetV2和最终的DARTS架构为参考。1×1卷积和组卷积实现。这些方法很容易在其他深度学习框架中重现,如Caffe [17]和TensorFlow [1],使用内置层,只要1×1标准卷积和组卷积可用。对于CIFAR-100,我们使用与搜索期间类似的参数设置,除了最大时期数为200和学习速率调度在时期 60、120和180处更新。对于ImageNet,我们使用初始学习率0.01,并在200和300个时期衰减,最大训练时期为400。我们使用与ResNet相同的默认数据增强模块进行公平比较。随机裁剪和水平翻转用于训练图像,调整或裁剪为224×224像素(ImageNet)和32×32像素(CIFAR-100)。在测试时,训练好的模型在中心作物上评估。4.3. CIFAR-100CIFAR-100数据集[23]由50,000个训练RGB图像和10,000个测试RGB图像组成,具有100个类。图像大小 为 32×32 。 我 们 采 用 最 先 进 的 移 动 网 络 架 构MobileNetV2作为我们的基准。所有超参数和预处理都设置为相同,以便进行公平的比较。32×32的图像被转换为40×40,用4个像素补零,然后随机裁剪为32 ×32。水平翻转和RGB平均值减法也适用。我们评估了前1名和前5名的准确性,并比较了MAds和基准参数的数量。在500个基于随机块添加(在我们的6种类型中)的网络 中 , 张 力 和 收 益 递 减 超 过 准 确 性 的 平 均 值 :56.96%,57.98%,58.81%,59.47%、59.94%、60.35%、60.70%、60.72%。 可能是在提前停止的情况下,我们可能不会在算法中的给定步骤处识别绝对最佳块,但是如所证明的,根据经验,我们发现所识别的最终架构与现有技术相比具有竞争力。区块多样性有帮助吗?为了显示块多样性的收益,我们使用我们的方法只搜索块类型5。在CIFAR-100上,我们获得了75的top-1精度。8%,比原始检索模型的76. 1%,在相同的条件下。这表明了块多样性在资源受限的CNN模型中的重要性。我们的搜索程序有帮助吗?为了显示搜索过程的收益,我们使用搜索到的解决方案,并将最后几个块替换为随机块。与1. 8 M参数和1073. 0 M MAds,随机区组解仅产生74。CIFAR-100的前1名准确率为9%,而原始搜索解决方案为76。百分之一。随机增加一个区块只能得到75。1%top-1准确度,100%。9M参数和1088M MAds。4.4. ImageNet有1. ImageNet数据集中来自1000个类的28M训练图像和50K验证图像[7]。按照CIFAR-100的程序,我们学习了训练集上的RCNet架构,并使用模型的相应参数和MAdd报告了前1和前5的验证准确度。我们学到的RCNet体系结构的细节可以在补充中看到。 我们比较我们与 其 他 低 成 本 模 型 ( 例 如 , 2003 年 。 4M 参 数 和1000MMAdd)。RCNet实现了方法RCNetMobileNet DARTS误差(%)1911架构前1精度Top-5精度参数MAdds搜索方法成本(GPU天数)[35]第三十五话69.8 89.96.6M小行星1448手动-[15]第十五话70.6 88.24.2M575M手动-[42]第42话71.5-3.4M292M手动-[16] 2016年世界杯足球赛71.0 90.02.9M274M手动-[32]第三十二话72.0 91.03.4M300M手动-ANTNet [39]73.2 91.23.7M322M手动-NASNet-A [44]74.0 91.65.3M564MRL1800AmoebaNet-A [31]74.5 925.1M555MRL1800MNasNet-92(在ImageNet上搜索)[36]74.8 92.14.4M388MRL-Proxyless-R [6]74.6 92.2--RL9PNASNet [25]74.2 91.95.1M588M森博∼255DPP-Net-Panaca(在CIFAR-10上搜索)[8]74.0 91.84.8M523M森博8†DARTS(在CIFAR-10上搜索)[27]73.1 91.04.9M595M基于梯度4†FBNet-C [38]74.9-5.5M375M基于梯度9RCNet(在ImageNet上搜索)72.2 91.03.4M294MRCAs8RCNet-B(在ImageNet上搜索)74.7 92.04.7M471MRCAs9表3:ImageNet分类的性能结果。给定3. 4M参数和300MMAdds约束,RCAS在ImageNet上使用8 GPU天找到模型搜索,比其他自动化方法快得多,RCNet比具有类似复杂度的“手动”方法表现更好通过5M参数和500MMAdds约束,RCNet-B以更少的计算资源实现了与MNasNet-92相当的精度。RCNet-B比DPP-Net-Panaca高0. 7%和1. 6%具有相似的计算资源(标记为†的方法在CIFAR-10上搜索,而我们的方法直接在ImageNet上搜索)。与MobileNetV2相比持续改进0。2% Top-1准确率和ShuffleNet(1. 5%),0。百分之七。与最具资源效率的模型CondenseNet(G=C= 4)相比,我们的RCNet在1. 2%的精度增益。使用CIFAR-100找到的模型,我们用ImageNet重新训练了相同的模型。性能与MobileNetV2相当,具有类似的复杂性,表明我们的程序可以有效地转移到新的和具有挑战性的数据集。在这里,与最先进的RL搜索方法相比,自适应RCNet获得了有利的更多细节可以在补充中找到。RCAS构建的最终模型包括18个基本块,按以下顺序分为6种类型:[5, 1, 4, 5, 1, 5, 2, 4, 1, 6,4, 6, 5, 3, 3, 6, 3, 6]备注。这里有一些有趣的观察。首先,考虑到有限的参数和MAds预算,RCAS选择了非常少的成本较高的块。此外,与选择较少的低维块相比,选择过多的高维块会降低模型的性能。有关搜索路径的其他详细信息请参阅补充资料。其次,将指定的最大成本设置为大约MobileNetV2的大小,我们识别出类似数量的块。然而,所确定的区块是多种多样的。常见的移动架构由相同类型的块的复制组成MobileNetV2。这可能表明,块迪-模型MAddsCoreML模型 大小推理时间MobileNetV2300米十四岁7MB一百九十七2msRCNet294海里十四岁6MB一百八十三5ms表4:在实际设备iPhone 5s上运行的推理时间。正如预期的那样,我们的搜索模型RCNet使用与MobileNetV2相似的平均推理时间。多样性是设计资源受限的移动神经网络的有价值的组成部分。4.5. 推理时间我们在基于iOS的手机iPhone 5s(1.3 GHz双核AppleA7处理器和1GB RAM)上测试实际推理速度,并与基线模型Mo-bileNetV 2进行比较。为了运行这些模型,我们将训练好的模型转换为CoreML模型,并使用Apple的机器学习平台进行部署我们在表4中报告了我们 的 模 型 的 推 理 时 间 正 如 预 期 的 那 样 , RCNet 和MobileNetV2具有相似的推理时间。5. 结论移动架构搜索正在成为计算机视觉中的一个重要主题,其中算法越来越多地被集成和部署在异构的小型设备上。借用子模块化的思想,我们提出了算法资源受限的架构搜索。通过模型大小和复杂性定义的资源约束,我们证明了我们可以有效地搜索表现良好的神经网络架构。在CIFAR-100和ImageNet上,我们识别出了与现有方法相匹配或优于现有方法的移动架构,但参数和计算要少得多。我们的算法很容易实现,并可以直接扩展到其他资源受限的应用中,以确定有效的网络架构。代码/补充可在https://github.com/yyxiongzju/RCNet上获得。致谢。这项工作得到了NSF CA-REER奖RI 1252725,UW CPCP(U 54 AI 117924)和通过T32 LM012413向RM提供NIH博士前奖学金。我们感谢Jen Birstler在图表和情节方面的帮助,以及KaruSankaralingam向我们介绍这个主题。1912引用[1] Mart´ın Abadi, Paul Barham , Jianmin Chen , ZhifengChen , Andy Davis , Jeffrey Dean , Matthieu Devin ,Sanjay Ghe-mawat,Geoffrey Irving,Michael Isard,etal. Tensorflow:A大规模机器学习系统。在第12届{USENIX}操作系统设计和实现研讨会({OSDI}16)中,第265-283页[2] Anubhav Ashok、Nicholas Rhinehart、Fares Beainy和Kris M Kitani。N2N学习:通过策略梯度强化学习进行网络到网络压缩。arXiv预印本arXiv:1709.06030,2017年。[3] Bowen Baker 、 Otkrist Gupta 、 Nikhil Naik 和 RameshRaskar。使用强化学习设计神经网络架构。arXiv预印本arXiv:1611.02167,2016。[4] Andrew Brock、Theodore Lim、James M Ritchie和NickWeston。通过超网络的一次性模型架构搜索arXiv预印本arXiv:1708.05344,2017。[5] Han Cai,Tianyao Chen,Weinan
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功