CN113424199A - 用于神经网络的复合模型缩放 - Google Patents

用于神经网络的复合模型缩放 Download PDF

Info

Publication number
CN113424199A
CN113424199A CN202080010508.3A CN202080010508A CN113424199A CN 113424199 A CN113424199 A CN 113424199A CN 202080010508 A CN202080010508 A CN 202080010508A CN 113424199 A CN113424199 A CN 113424199A
Authority
CN
China
Prior art keywords
coefficient
baseline
architecture
resolution
width
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080010508.3A
Other languages
English (en)
Inventor
谭明星
国·V·勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN113424199A publication Critical patent/CN113424199A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

描述了一种用于确定神经网络的为了执行特定机器学习任务的最终架构的方法。该方法包括:接收用于神经网络的基线架构,其中该基线架构具有网络宽度尺寸、网络深度尺寸以及分辨率尺寸;接收定义复合系数的数据,该复合系数控制用于缩放基线架构的额外计算资源;执行搜索以确定基线宽度系数、基线深度系数和基线分辨率系数,这些系数指定如何将额外计算资源分别指配给基线架构的网络宽度尺寸、网络深度尺寸以及分辨率尺寸;基于基线宽度系数、基线深度系数、基线分辨率系数以及复合系数来确定宽度系数、深度系数以及分辨率系数;以及基于对应的宽度系数、深度系数以及分辨率系数来生成缩放基线架构的网络宽度尺寸、网络深度尺寸以及分辨率尺寸的最终架构。

Description

用于神经网络的复合模型缩放
相关申请的交叉引用
本申请要求于2019年1月23日提交的美国临时申请序列号62/796,034的优先权。在先申请的公开内容被认为是本申请的公开内容的一部分并且通过引用并入本申请的公开内容中。
背景技术
本说明书涉及确定卷积神经网络的架构。
神经网络是采用一层或多层非线性单元来针对接收到的输入预测输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层(即下一个隐藏层或输出层)的输入。网络的每层根据相应参数集的当前值从接收到的输入生成输出。
一些神经网络是递归神经网络。递归神经网络是接收输入序列并且从该输入序列生成输出序列的神经网络。特别地,递归神经网络可以在计算当前时间步的输出时使用来自先前时间步的网络的内部状态的一些或全部。递归神经网络的示例是包括一个或多个长短期记忆(LSTM)的记忆块的LSTM神经网络。每个LSTM记忆块可以包括一个或多个单元,该一个或多个单元各自包括输入门、遗忘门以及输出门,这允许该单元存储该单元的先前状态,例如用于生成当前激活或被提供给LSTM神经网络的其它组件。
发明内容
本说明书描述一种被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统,该系统根据基线架构来确定神经网络的最终架构。如下所述,基于最终架构的目标计算资源使用来确定最终架构。这样,系统可以确定适合可供最终架构使用的低级计算资源(例如,每秒浮点运算的数目,FLOPS)的最终架构。此外,它可以以比可能需要大量超参数调整的常规方法更有效的方式来这样做。神经网络被配置成执行特定机器学习任务,诸如但不限于图像处理(例如,图像分类)。
本说明书中描述的主题可以在特定实施例中实现,以便实现以下优点中的一个或多个。卷积神经网络通常以固定计算成本开发,然后如果给定更多资源,则为了更好的准确性而扩大到更大的网络。在本说明书中描述的模型缩放技术使用简单但高效的复合系数,用于在给定目标资源约束的情况下将基线神经网络模型缩放至目标模型,同时维持模型效率。常规方法在缩放时任意地增加网络宽度或深度或分辨率,这导致低准确度和效率,并且由于平衡这三个因素所需的超参数调整而使得放大神经网络模型的过程低效且计算上昂贵。相反,所描述的技术使用复合系数来线性地缩放基线模型的网络宽度、深度以及分辨率,从而避免花费大量计算资源来进行超参数调整。此外,本文描述的模型缩放技术允许基线模型非常有效地放大,从而产生超过现有技术的准确度的更大的模型,同时具有比先前现有技术模型更少的参数。同时,这些较大的模型可以使用比先前现有技术模型所使用的运算更少的运算来执行特定机器学习任务,并且因此它们在训练和推断上更快。
在附图和下述描述中,阐述本说明书的主题的一个或多个实施例的细节。从说明书、附图和权利要求,该主题的其它特征、方面和优点将变得显而易见。
附图说明
图1示出了用于确定神经网络的为了执行特定机器学习任务的最终架构的示例神经架构搜索系统。
图2是用于确定神经网络的为了执行特定机器学习任务的最终架构的示例过程的流程图。
图3示出了神经网络的示例基线架构。
图4示出了神经网络的另一示例基线架构。
在各个附图中,相同的附图标记和名称表示相同的元件。
具体实施方式
本说明书描述了一种神经架构搜索系统,该神经架构搜索系统被实现为一个或多个位置中的一个或多个计算机上的计算机程序,该计算机程序根据基线架构来确定神经网络的最终架构。神经网络被配置成执行特定机器学习任务。
通常,神经网络被配置成接收网络输入并且处理该网络输入以针对该输入生成网络输出。
在一些情况下,神经网络是卷积神经网络,该卷积神经网络被配置成接收输入图像并且处理该输入图像以针对该输入图像生成网络输出,即,执行某种图像处理任务。
例如,任务可以是图像分类,并且由神经网络针对给定图像所生成的输出可以是对象类别集合中的每一个的分值,其中每个分值表示该图像包含属于该类别的对象的图像的估计可能性。
作为另一示例,任务可以是图像嵌入生成,并且由神经网络所生成的输出可以是输入图像的数值嵌入。例如,针对相应输入图像所生成的嵌入之间的嵌入空间中的接近度可以表示这些图像之间的相似性。
作为又一示例,任务可以是对象检测,并且由神经网络所生成的输出可以标识在该输入图像中在此处描绘特定类型的对象的位置。
在一些其它情况下,任务可以是视频分类,并且神经网络被配置成接收视频或视频的一部分作为输入,并且生成确定该输入视频或视频部分涉及什么主题的输出。
在一些其它情况下,任务可以是语音识别,并且神经网络被配置成接收音频数据作为输入,并且生成针对该给定口语话语确定该话语表示的一个或多个词语的输出。
在一些其它情况下,任务可以是文本分类,并且神经网络被配置成接收输入文本片段并且生成确定该输入文本片段涉及什么主题的输出。
图1示出了示例神经架构搜索系统100,该示例神经架构搜索系统100被配置成根据基线架构确定神经网络的最终架构,该神经网络被配置成执行特定机器学习任务。神经架构搜索系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中,可以实现下文所述的系统、组件和技术。
通常,神经架构搜索系统100是获得神经网络的基线架构102和定义复合系数103的输入数据104的系统,其中该复合系数控制用于缩放基线架构的额外计算资源,使用简单但高效的复合系数来均匀地缩放基线架构102的所有尺寸以生成用于神经网络的最终架构126以执行特定机器学习任务。
系统100可以以各种方式中的任何一种来接收基线架构102和输入数据104。例如,系统100可以例如使用系统100可用的应用编程接口(API)通过数据通信网络从系统的远程用户接收基线架构102和目标资源使用数据104作为上传。作为另一示例,系统100可以从用户接收输入,该输入指定已经由系统100维护的哪些数据应当用作标识基线架构102的数据以及哪些数据应当用作目标资源使用数据104。
输入数据104定义了复合系数103,该复合系数103控制用于缩放基线架构的额外计算资源。换句话说,与基线架构所使用的资源相比,复合系数103控制可以由缩放的最终架构使用的计算资源量。在一些情况下,系统100可以基于用户的约束来生成复合系数值。例如,如果用户想要使基线架构(102)大N倍,则系统可以生成复合系数φ=log2(N)。例如,如果用户想要将基线架构扩大4倍,则φ=2。如果用户想要将基线模型扩大32倍,则φ=5。
输入数据104还可以指定由最终架构所使用的计算资源的目标量。特别地,目标资源使用数据指定(i)目标存储器大小,该目标存储器大小指示用于创建最终架构所允许的最大存储器大小,即,由最终架构的参数和架构数据可以占用的最大存储器,以及(ii)目标运算的数目(例如,FLOPS),该目标运算的数目指示为了执行特定机器学习任务,最终架构可以执行的最大运算的数目。
基线架构102是已经被训练来执行特定机器学习任务的架构。基线架构102具有网络宽度尺寸、网络深度尺寸以及分辨率尺寸。基线架构102具有多个神经网络层。在一些实现方式中,基线架构102具有多个网络级,并且该多个网络级中的每一个具有多个神经网络层。网络级包括一组相同类型的神经网络层。这意味着,基线架构的每个网络级中的多个神经网络层共享相同架构,即,在相同大小的输入张量上执行相同类型的运算以生成相同大小的输出张量。
基线架构102的网络深度尺寸是基线架构的多个网络级中的层的数目的集合。基线结构102中的每个神经网络层被配置成接收来自前一层的输入张量,并且针对该输入张量生成输出张量,该输出张量作为输入被馈送到下一神经网络层。任何给定层的输入张量具有高度尺寸、宽度尺寸以及通道尺寸,该通道尺寸指定输入张量中的通道的数目。
基线架构102的网络宽度尺寸是与基线架构102的多个神经网络层的输入张量相关联的输入通道的数目的集合。
基线架构102的分辨率尺寸是基线架构102的该多个神经网络层的输入张量的高度尺寸和宽度尺寸的集合。
例如,基线架构102可以被表示为:
Figure BDA0003175485330000061
其中
Figure BDA0003175485330000062
表示层Fi在级i中重复Li次,(Hi,Wi,Ci)表示层Fi的输入张量X的形状,其中Hi是高度尺寸,Wi是宽度尺寸,并且Ci是通道尺寸。
图3示出了具有5级的基线架构102的示例。在该示例架构中,空间尺寸(高度和宽度尺寸)逐渐缩小,但是通道尺寸在层上扩展,例如从初始输入形状(224,224,3)扩展到最终输出形状(7,7,512)。
与主要集中于寻找最佳层架构Fi(即,寻找由层Fi执行的最佳类型的运算)的先前方法不同,本说明书中描述的模型缩放技术扩展网络长度(Li)、宽度(Ci)和/或分辨率(Hi;Wi)而不改变基线架构102中预定义的Fi。通过固定层Fi的类型的运算,这里描述的模型缩放技术相对于先前方法简化了新资源约束的设计问题。但是,仍然存在大的设计空间来探索针对每一层的不同Li;Ci;Hi;Wi的可能组合。为了进一步减小设计空间,系统100可以限制所有层必须以恒定比率均匀地缩放。
给定由输入数据104指定的计算资源的目标量,系统100旨在针对给定的计算资源约束使模型准确度最大化,该模型准确度可以被公式化为如下的优化问题:
Figure BDA0003175485330000063
Figure BDA0003175485330000064
Figure BDA0003175485330000065
Figure BDA0003175485330000066
其中w、d、r是用于分别缩放网络宽度、深度以及分辨率尺寸的宽度、深度以及分辨率系数;
Figure BDA0003175485330000071
是所获得的基线架构102中的预定义参数;target_memory指示用于创建最终架构所允许的最大存储器大小,并且target_flop指示为了执行特定机器学习任务,最终架构可以执行的最大运算的数目;
Figure BDA0003175485330000072
表示已经通过使用深度、宽度以及分辨率系数d,w,r缩放基线架构102的网络宽度、深度以及分辨率尺寸而创建的神经网络架构;FLOPS(N)表示为了执行特定机器学习任务而由神经网络架构N所执行的运算的数目;存储器(N)表示用于创建神经网络架构N所使用的存储器,即,由神经网络架构N的参数和架构数据占用的存储器。
通常,为了根据基线架构确定最终架构,系统100采用复合缩放方法,该方法使用复合系数φ以原则性方式均匀地缩放网络宽度、深度以及分辨率尺寸。例如,复合缩放方法可以表示为:
深度:d=αφ
宽度:w=βφ
分辨率:r=γφ (3)
s.t.α·β2·γ2≈2
α≥1,β≥1,γ≥1
其中α,β,γ分别是基线深度系数、基线宽度系数和基线分辨率系数。α,β,γ可以通过例如通过基于上述等式2和3的网格搜索的搜索来确定。直观地,φ控制还有多少更多的资源可用于模型缩放,同时α,β,γ指定如何将这些额外资源分别指配给网络深度、宽度以及分辨率尺寸。应注意,常规卷积运算的运算的数目(即,FLOPS)与d,w2,r2成比例,即,使网络深度尺寸加倍将使FLOPS加倍,但使网络宽度或分辨率尺寸加倍将使FLOPS增加四倍。当基线架构是卷积神经网络时,卷积运算将支配基线架构中的计算成本,因此利用等式3缩放基线架构将近似地使总FLOPS增加(α.β22)φ。该约束α.β22≈2确保对于任何复合系数φ,总运算(即FLOPS())将近似地增加2φ
为了确定最终架构126,系统100执行搜索(例如,网格搜索、随机搜索或其它搜索策略)以搜索基线深度系数α(110)、基线宽度系数β(108)和基线分辨率系数γ(112),它们指定如何将额外计算资源分别指配给基线架构的网络深度尺寸、网络宽度尺寸以及分辨率尺寸。下面参考图2详细描述执行搜索。
系统100基于复合系数103的值和基线宽度系数108生成宽度系数114,基于复合系数103的值和基线深度系数110生成深度系数116,并且基于复合系数103的值和基线分辨率系数112生成分辨率系数118。
例如,在一些实现方式中,系统100可以使用上述等式3来生成宽度、深度以及分辨率系数。
在一些其它实现方式中,如以下等式4中所示,系统100可以通过将基线宽度系数108与复合系数103的值的乘积与常数求和来生成宽度系数114。系统100可以通过将基线深度系数110与复合系数103的值的乘积与该常数求和来生成深度系数116。系统100可以通过将基线分辨率系数112与复合系数103的值的乘积与该常数求和来生成分辨率系数118。
等式4:
网络深度系数:d=1+α.φ
网络宽度系数:w=1+β.φ
网络分辨率系数:r=1+γ.φ
在针对复合系数生成深度、宽度以及分辨率系数(d,w,r)之后,系统100通过基于对应的深度、宽度以及分辨率系数缩放基线架构102的网络深度、网络宽度以及分辨率尺寸来生成最终架构126。特别地,系统100通过宽度系数缩放基线架构102的网络宽度尺寸,通过深度系数缩放基线架构102的网络深度尺寸,并且通过分辨率系数缩放基线架构102的分辨率以生成最终架构126。
然后,系统100可以输出指定神经网络的最终架构的架构数据150,即,指定作为最终架构的一部分的层、层之间的连接性以及由层执行的运算的数据。例如,系统100可以将架构数据150输出到提交训练数据的用户。在一些情况下,数据150还包括来自被识别为最终架构的候选架构的训练的最终架构的参数的训练值。
在一些实现方式中,代替或除了输出架构数据150之外,系统100训练具有最终架构的神经网络的实例(例如从头开始训练或微调作为训练被标识为最终架构的候选架构的结果而生成的参数值),并且然后使用经训练的神经网络来处理由用户例如通过由系统100提供的API所接收到的请求。即,系统100可以接收待处理的输入,使用具有最终架构的经训练的神经网络来处理输入,并且响应于接收到的输入提供由经训练的神经网络生成的输出或从所生成的输出导出的数据。
图2是用于确定神经网络的为了执行特定机器学习任务的最终架构的示例过程的流程图。为了方便,过程200将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,适当编程的神经架构搜索系统例如图1的神经架构搜索系统100能够执行过程200。
系统接收神经网络的基线架构(步骤202)。已经训练了基线架构以执行特定机器学习任务。基线架构具有网络宽度尺寸、网络深度尺寸以及分辨率尺寸。基线架构具有多个网络级,并且该多个网络级中的每一个具有多个神经网络层。基线架构的每个网络级中的该多个神经网络层共享相同架构。
基线架构的网络深度尺寸是基线架构的多个网络级中的层数的集合。基线结构中的每个神经网络层被配置成接收来自前一层的输入张量,并且针对该输入张量生成输出张量,该输出张量作为输入被馈送到下一个神经网络层。输入张量具有高度尺寸、宽度尺寸以及通道尺寸,该通道尺寸指定输入张量中通道的数目。
基线架构的网络宽度尺寸是与基线架构的多个神经网络层的输入张量相关联的输入通道的数目的集合。
基线架构的分辨率尺寸到基线架构的该多个神经网络层的输入张量的高度尺寸和宽度尺寸的集合。
系统接收定义复合系数的输入数据,该复合系数控制用于缩放基线架构的额外计算资源(步骤204)。换句话说,与基线架构所使用的资源相比,复合系数控制可以由缩放的最终架构使用的计算资源量。在一些情况下,系统可以基于用户的约束来生成复合系数值。例如,如果用户想要使基线架构(102)大N倍,则系统可以生成复合系数φ=log2(N)。例如,如果用户想要将基线架构扩大4倍,则φ=2。如果用户想要将基线模型扩大32倍,则φ=5。
输入数据还可以指定由最终架构所使用的计算资源的目标量。特别地,目标资源使用数据指定(i)目标存储器大小,该目标存储器大小指示用于创建最终架构所允许的最大存储器大小,即,最终架构的参数和架构数据可以占用的最大存储器,以及(ii)目标运算的数目,该目标运算的数目指示为了执行特定机器学习任务,最终架构可以执行的最大运算的数目。
为了生成最终架构,系统执行搜索(例如,网格搜索、随机搜索或其它搜索策略)以确定基线宽度系数β、基线深度系数α和基线分辨率系数γ,它们指定如何将额外计算资源分别指配给基线架构的网络宽度尺寸、网络深度尺寸以及分辨率尺寸(步骤206)。例如,假设复合系数值是1并且被给予两倍的资源可用于较大模型,则系统基于等式2和3执行对α,β,γ的网格搜索并且找到如下的这些基线系数的最佳值:在α·β2·γ2≈2.的约束下,α=1.2,β=1.1,γ=1.15。
为了执行网格搜索,系统重复执行以下步骤:
(a)选择基线宽度系数的搜索值、基线深度系数的搜索值以及基线分辨率系数的搜索值;
(b)(例如,通过使用等式3或4)分别基于(i)复合系数的给定值,以及(ii)基线宽度、深度以及分辨率系数的搜索值,生成搜索宽度系数w’、搜索深度系数d’和搜索分辨率系数r’;
(c)使用基线架构和搜索宽度系数、搜索深度系数以及搜索分辨率系数生成搜索候选架构(例如,通过用搜索宽度系数缩放基线架构的网络宽度尺寸;用搜索深度系数缩放基线架构的网络深度尺寸;以及用搜索分辨率系数缩放基线架构的分辨率);以及
(d)针对所述搜索候选架构确定性能分值,该性能分值表示搜索候选架构在特定机器学习任务上的性能。例如,性能分值可以是表示搜索候选架构在特定机器学习任务上的准确度的准确度分值。特别地,该系统可以在特定机器学习任务上训练具有搜索候选架构的神经网络的实例以确定具有该搜索候选架构的神经网络的实例的参数的值。然后,该系统可以基于神经网络的经训练的实例在特定神经网络任务上的执行来确定神经网络的经训练的实例的准确度分值。例如,准确度分值可以表示如由适当的准确度度量所测量的经训练的实例在验证集上的准确度。例如,当输出是序列时,准确性分值可以是复杂度度量(perplexity measure),或者当特定神经网络任务是分类任务时,准确性分值可以是分类错误率。作为另一示例,准确度分值可以是对实例的训练的最后两个、五个或十个时期的每一个的实例的准确度的平均值或最大值。
然后,系统选择与已经生成的所有搜索候选架构的性能分值中的最大性能分值相关联的搜索值作为基线深度、宽度以及分辨率系数的最终值。
系统可以通过从搜索的可能值的网格中采样每个系数(受约束)的值,在步骤(a)处选择基线宽度、深度以及分辨率系数的搜索值。例如,系统可以在α·β2·γ2≈2.的约束下从在1和2之间的可能值的网格中采样每个系数的值。
在获得基线宽度系数β、基线深度系数α和基线分辨率系数γ,之后,系统确定宽度系数、深度系数以及分辨率系数(步骤208)。
在一些实现方式中,所述系统可以使用等式3基于基线宽度、深度以及分辨率系数以及复合系数的值来生成宽度、深度以及分辨率系数。
在一些其它实现方式中,如等式4所示,系统可以通过将基线宽度系数与复合系数的值的乘积与常数求和来生成宽度系数。该系统可以通过将基线深度系数与复合系数的值的乘积与该常数求和来生成深度系数。该系统可以通过将基线分辨率系数与复合系数的值的乘积与该常数求和来生成分辨率系数。
系统通过分别基于对应的宽度、深度以及分辨率系数缩放基线架构的网络宽度、网络深度以及分辨率尺寸来生成最终架构(步骤210)。特别地,该系统通过宽度系数缩放基线架构的网络宽度尺寸,通过深度系数缩放基线架构的网络深度尺寸,并且通过分辨率系数缩放基线架构的分辨率以生成最终架构。
然后,根据标识出的最终架构的神经网络可以用于执行机器学习任务。另外或可替代地,表征标识出的最终架构的信息可以被输出(例如,到远程计算机系统)以用于在构建具有最终架构的神经网络中使用。
在一些实现方式中,系统可以通过针对多个不同复合系数执行过程200来生成多个较大架构。这可以允许系统或用户在给定可用于在任何给定时间运行架构的资源量(例如,给定由输入数据指定的计算资源的目标量)的情况下选择哪个较大架构最适合(例如,在所生成的该多个较大架构中哪个较大架构具有最佳性能分值)。
图4示出了可以用于使用上述模型缩放技术来生成各种最终架构的另一示例基线架构。基线架构300包括卷积神经网络层302,随后是多个FusedConv神经网络层304,随后是多个MBConv神经网络层306。
FuedConv是一种类型的卷积神经网络层,该卷积神经网络层包括常规卷积神经网络子层,随后是逐点卷积神经网络子层。在FusedConv中没有使用深度方向卷积神经网络子层。
MBConv是一种类型的卷积神经网络层,其包括逐点卷积神经网络子层,随后是深度方向卷积神经网络子层,随后是逐点卷积神经网络子层。MBConv的示例可以在Sandler,M.,Howard,A.,Zhu,M.,Zhmoginov,A.,和Chen,L.-C.Mobilenetv2:Inverted residualsand linear bottlenecks(倒置残差和线性瓶颈).CVPR,2018,以及Tan,M.,Chen,B.,Pang,R.,Vasudevan,V.,Sandler,M.,Howard,A.,和Le,Q.V.MnasNet:Platform-aware neuralarchitecture search for mobile(移动平台感知神经架构搜索).CVPR,2019中找到。
通过使用复合系数缩放基线架构300而生成的最终架构也可以被称为“EfficientNet-Edge TPU(高效网络边缘TPU)”架构,其被定制为在专用硬件加速器上最佳地运行,所述专用硬件加速器被设计为在设备上(例如,在Google’s Edge TPU(Google的边缘TPU)上)而不是在云中运行。通过这样的模型定制,EfficientNet-Edge TPU架构能够提供实时图像分类性能,同时实现通常仅在数据中心中运行的大得多的、计算量大的模型时才看到的准确度。
本说明书结合系统和计算机程序组件使用术语“配置”。对于被配置成执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在操作中使该系统执行操作或动作的软件、固件、硬件或它们的组合。对于被配置成执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,所述指令在由数据处理装置执行时使得该装置执行操作或动作。
能够在数字电子电路中,或者在有形地体现的计算机软件、固件中,或者在包括在本说明书中公开的结构及其结构等效物的计算机硬件中,或者在它们中的一项或者多项的组合中实现在本说明书中描述的主题和功能操作的实施例。能够将在本说明书中描述的主题的实施例实现为一个或者多个计算机程序,即编码在有形非易失性程序载体上的计算机程序指令一个或者多个模块,该一个或者多个模块用于由数据处理装置执行或者控制数据处理装置的操作。可替代地或者附加地,能够在人为生成的传播的信号——例如,机器生成的电、光或者电磁信号上对程序指令进行编码,该信号被生成以用于对向适当接收器装置发送、以供数据处理装置执行的信息进行编码。
术语“数据处理装置”是指数据处理硬件并且涵盖各种用于处理数据的装置、设备和机器,举例而言包括可编程处理器、计算机、多处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。该装置除了硬件之外,可选地,也可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一项或者多项的组合的代码。
可以用任何形式的编程语言来编写计算机程序(该计算机程序也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或者代码),该计算机程序包括编译或者解译语言、或说明或者过程语言;并且可以以任何形式部署该计算机程序,包括部署为独立程序或者部署为适合于在计算环境中使用的模块、组件、子例程或者其它单元。计算机程序可以,但是无需对应于文件系统中的文件。程序可以存储于保持其它程序或者数据的文件的一部分中(例如存储于标记语言文档中的一个或者多个脚本中、专用于讨论的程序的单个文件中,或者多个协同文件中)例如存储一个或者多个模块、子程序或者代码部分的文件。可以将计算机程序部署成在一个计算机上被执行,或者在位于一个站点或者跨多个站点分布的且由通信网络互连的多个计算机上被执行。在本说明书中,术语“数据库”被广泛地用于指代任何数据集合:数据不需要以任何特定方式来结构化或根本不需要结构化,并且它可以存储在一个或多个位置的存储设备上。因此,例如,索引数据库可以包括多个数据集合,其中的每一个可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”被广泛地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其它情况下,多个引擎可以被安装并运行在同一计算机或多个计算机上。
在本说明书中描述的过程和逻辑流程可以由一个或者多个可编程处理器执行,该一个或者多个可编程计算机执行一个或者多个计算机程序以通过对输入数据操作并且生成输出来执行功能。这些过程和逻辑流程还可以由专用逻辑电路(例如FPGA或ASIC)来执行,或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用微处理器或者专用微处理器,或者它们两者,或者任何其它种类的中央处理器。通常,中央处理器将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的必要元件是用于执行指令的中央处理器单元以及用于存储指令和数据的一个或者多个存储器设备。中央处理单元和存储器可由专用逻辑电路补充或合并到专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或者多个大容量存储设备——例如,磁盘、磁光盘或者光盘,或者被操作地耦合以从该一个或者多个大容量存储设备接收数据或者向该一个或者多个大容量存储设备发送数据或者接收和发送二者。但是,计算机无需具有这样的设备。另外,计算机可以嵌入于另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏控制台、全球定位系统(GPS)接收器或者便携式存储设备,例如,通用串行总线(USB)闪存驱动,仅举几个例子。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例而言包括半导体存储器设备,例如,EPROM、EEPROM和闪速存储器设备;磁盘,例如,内部硬盘或者可去除盘;磁光盘;以及CD-ROM和DVD-ROM盘。
为了提供与用户的交互,可以在计算机上实现在本说明书中描述的主题的实施例,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或者LCD(液晶显示器)监视器,以及用户可以用其向计算机提供输入的键盘和指向设备,例如鼠标或者轨迹球。其它种类的设备也可以用来提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以从用户接收任何形式的输入,包括声音、语音或者触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从该设备接收文档来与用户交互,例如,通过在用户的客户端设备上响应于从web浏览器接收到的请求向web浏览器发送网页来与用户交互。此外,计算机可以通过向个人设备,例如运行消息传送应用的智能电话发送文本消息或其它形式的消息,并且作为回应从用户接收响应消息,来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如用于处理机器学习训练或生产(即,推断、工作负荷)的公共和计算密集部分的专用硬件加速器单元。
机器学习模型可以使用机器学习框架(例如TensorFlow框架、微软认知工具包框架、Apache Singa框架或Apache MXNet框架)来实现和部署。
可以在计算系统中实现在本说明书中描述的主题的实施例,该计算系统包括后端组件,或者包括中间件组件,或者包括前端组件,或者包括一个或多个这样的后端、中间件或者前端部件的任何组合,其中所述后端组件例如是数据服务器,所述中间件组件例如是应用服务器,所述前端组件例如是具有图形用户界面、Web浏览器或者app的客户端计算机,其中用户可以通过所述图形用户界面、Web浏览器或者app与本说明书中描述的主题的实现方法进行交互。可以通过任何数字数据通信形式或者介质(例如,通信网络)互连系统的组件。通信网络的示例包括局域网(LAN)和广域网(WAN),例如,因特网。
计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。客户端和服务器的关系借助于在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将例如HTML页面的数据传送到用户设备,例如,用于向正在与(用作客户端的)设备交互的用户显示数据以及从该用户接收用户输入。在用户设备处生成的数据,例如用户交互的结果,可以在服务器处从设备接收。尽管本说明书包含许多具体实现方式细节,但是不应将这些解释为限制任何发明的范围或可以要求保护的内容的范围,而是解释为对具体发明的具体实施例特有的特征的描述。在本说明书中在分开的实施例的情境中描述的某些特征也能够在单个实施例中以组合的方式被实现。相反地,在单个实施例的情境中描述的各种特征也能够在多个实施例中分开地或者在任何适当子组合中被实现。另外,虽然上文可以将特征描述为在某些组合中的动作并且甚至起初这样被要求保护,但是来自要求保护的组合的一个或者多个特征可以在一些情况下从该组合中删除,并且要求保护的组合可以涉及子组合或者子组合的变型。
类似地,尽管在附图中以特定顺序描绘操作,但是这不应被理解为要求以所示特定顺序或者以依次的顺序执行这样的操作,或者执行所有所示操作以实现希望的结果。在某些情况中,多任务和并行处理会是有利的。另外,在上文描述的实施例中的各种系统模块和部件的分离不应被理解为在所有实施例中要求这样的分离,并且应当理解描述的程序组件和系统通常可以一起集成于单个软件产品中或者被封装到多个软件产品中。
已经描述了主题的具体实施例。其它实施例在所附权利要求的范围内。例如,在权利要求中记载的动作可以按不同顺序被执行而仍然实现希望的结果。作为一个示例,在附图中描绘的过程未必需要所示特定顺序或者依次的顺序以实现期望的结果。在一些情况中,多任务和并行处理会是有利的。

Claims (17)

1.一种确定神经网络的最终架构以执行特定机器学习任务的计算机实现的方法,所述计算机实现的方法包括:
接收所述神经网络的基线架构,其中,所述基线架构已经被训练以执行所述特定机器学习任务,并且其中,所述基线架构具有网络宽度尺寸、网络深度尺寸以及分辨率尺寸;
接收定义复合系数的数据,所述复合系数控制用于缩放所述基线架构的额外计算资源;
执行搜索以确定基线宽度系数、基线深度系数以及基线分辨率系数,所述基线宽度系数、基线深度系数以及基线分辨率系数指定如何将所述额外计算资源分别指配给所述基线架构的所述网络宽度尺寸、所述网络深度尺寸以及所述分辨率尺寸;
基于所述基线宽度系数、所述基线深度系数、所述基线分辨率系数以及所述复合系数来确定宽度系数、深度系数以及分辨率系数;以及
基于对应的宽度系数、深度系数以及分辨率系数来生成缩放所述基线架构的所述网络宽度尺寸、所述网络深度尺寸和所述分辨率尺寸的所述最终架构。
2.根据权利要求1所述的方法,其中,所述基线架构具有多个网络级,并且所述多个网络级中的每一个具有多个神经网络层。
3.根据权利要求2所述的方法,其中,所述基线架构的每个网络级中的所述多个神经网络层共享相同架构。
4.根据权利要求2或3中的任一项所述的方法,其中,所述基线架构的所述网络深度尺寸是所述基线架构的所述多个网络级中的层的数目的集合。
5.根据权利要求2至4中的任一项所述的方法,其中,所述基线架构中的每个神经网络层被配置成接收来自前一层的输入张量,并且针对所述输入张量生成输出张量,所述输出张量作为输入被馈送到下一神经网络层,其中,所述输入张量具有高度尺寸、宽度尺寸以及通道尺寸,所述通道尺寸指定所述输入张量中的通道的数目。
6.根据权利要求5所述的方法,其中,所述基线架构的所述网络宽度尺寸是与到所述基线架构的所述多个神经网络层的输入张量相关联的输入通道的数目的集合。
7.根据权利要求5或6中的任一项所述的方法,其中,所述基线架构的所述分辨率尺寸是到所述基线架构的所述多个神经网络层的输入张量的高度尺寸和宽度尺寸的集合。
8.根据权利要求1至7中的任一项所述的方法,其中,基于所述基线宽度系数、所述基线深度系数、所述基线分辨率系数以及所述复合系数来确定所述宽度系数、所述深度系数以及所述分辨率系数包括:
基于所述复合系数和所述基线宽度系数来生成所述宽度系数;
基于所述复合系数和所述基线深度系数来生成所述深度系数;以及
基于所述复合系数和所述基线分辨率系数来生成所述分辨率系数。
9.根据权利要求8所述的方法,其中,基于所述复合系数和所述基线宽度系数来生成所述宽度系数包括:将所述基线宽度系数与所述复合系数的乘积与常数进行求和。
10.根据权利要求8或9中的任一项所述的方法,其中,基于所述复合系数和所述基线深度系数来生成所述深度系数包括:将所述基线深度系数与所述复合系数的乘积与所述常数进行求和。
11.根据权利要求8至10中的任一项所述的方法,其中,基于所述复合系数和所述基线分辨率系数来生成所述分辨率系数包括:将所述基线分辨率系数与所述复合系数的乘积与所述常数进行求和。
12.根据权利要求11所述的方法,其中,生成所述最终架构包括:
通过所述宽度系数来缩放所述基线架构的所述网络宽度尺寸;
通过所述深度系数来缩放所述基线架构的所述网络深度尺寸;以及
通过所述分辨率系数来缩放所述基线架构的所述分辨率。
13.根据权利要求1至12中的任一项所述的方法,其中,执行所述搜索以确定所述基线宽度系数、所述基线深度系数以及所述基线分辨率系数包括:
在使用所述复合系数的同时对每个系数的值范围执行网格搜索以确定所述基线宽度系数、所述基线深度系数以及所述基线分辨率系数。
14.根据权利要求1至13中的任一项所述的方法,还包括:
确定表示所述最终架构在所述特定机器学习任务上的性能的性能分值,包括:在所述特定机器学习任务上训练所述最终架构以更新所述最终架构的参数值,并且确定经训练的最终架构在所述特定机器学习任务上的性能。
15.根据权利要求1至14中的任一项所述的方法,其中,接收到的数据还包括目标资源使用数据,所述目标资源使用数据指定(i)目标存储器大小,所述目标存储器大小指示用于创建所述最终架构所允许的最大存储器大小,以及(ii)目标运算的数目,所述目标运算的数目指示所述最终架构能够执行以执行所述特定机器学习任务的最大运算的数目。
16.一种包括一个或多个计算机和存储指令的一个或多个存储设备的系统,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1至14中的任一项所述的相应方法的操作。
17.一个或多个计算机存储介质,所述一个或多个计算机存储介质存储指令,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1至14中的任一项所述的相应方法的操作。
CN202080010508.3A 2019-01-23 2020-01-23 用于神经网络的复合模型缩放 Pending CN113424199A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962796034P 2019-01-23 2019-01-23
US62/796,034 2019-01-23
PCT/US2020/014839 WO2020154536A1 (en) 2019-01-23 2020-01-23 Compound model scaling for neural networks

Publications (1)

Publication Number Publication Date
CN113424199A true CN113424199A (zh) 2021-09-21

Family

ID=69726764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080010508.3A Pending CN113424199A (zh) 2019-01-23 2020-01-23 用于神经网络的复合模型缩放

Country Status (6)

Country Link
US (3) US10909457B2 (zh)
EP (1) EP3912099A1 (zh)
JP (2) JP7286774B2 (zh)
KR (1) KR20210105976A (zh)
CN (1) CN113424199A (zh)
WO (1) WO2020154536A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7140191B2 (ja) * 2018-07-31 2022-09-21 日本電気株式会社 情報処理装置、制御方法、及びプログラム
US12026619B1 (en) * 2019-12-11 2024-07-02 Amazon Technologies, Inc. Slimmable neural network architecture search optimization
CN112116090B (zh) * 2020-09-28 2022-08-30 腾讯科技(深圳)有限公司 神经网络结构搜索方法、装置、计算机设备及存储介质
KR102508106B1 (ko) * 2020-11-24 2023-03-08 한남대학교 산학협력단 뉴로모픽 하드웨어 지원 IoT 응용 생성 자동화 방법
CN112836801A (zh) * 2021-02-03 2021-05-25 上海商汤智能科技有限公司 深度学习网络确定方法、装置、电子设备及存储介质
WO2022212217A1 (en) * 2021-04-01 2022-10-06 Mythic, Inc. Systems and methods for enhancing inferential accuracy of an artificial neural network during training on a mixed-signal integrated circuit
CN114399018B (zh) * 2021-12-17 2023-10-10 西北大学 一种基于轮转操控策略麻雀优化的EfficientNet陶瓷碎片分类方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108593A (ja) * 1991-10-14 1993-04-30 Sanyo Electric Co Ltd ニユーロ開発支援装置
JPH0991263A (ja) * 1995-09-20 1997-04-04 Hitachi Medical Corp ニューラルネットワーク構造最適化装置ならびに方法
JP6287999B2 (ja) 2015-08-07 2018-03-07 トヨタ自動車株式会社 ニューラルネットワーク学習装置
KR102386806B1 (ko) 2016-10-28 2022-04-14 구글 엘엘씨 신경 아키텍처 검색

Also Published As

Publication number Publication date
US20210133578A1 (en) 2021-05-06
US20240211764A1 (en) 2024-06-27
KR20210105976A (ko) 2021-08-27
US20200234132A1 (en) 2020-07-23
US11893491B2 (en) 2024-02-06
WO2020154536A1 (en) 2020-07-30
US10909457B2 (en) 2021-02-02
JP2023120204A (ja) 2023-08-29
JP7286774B2 (ja) 2023-06-05
JP2022523666A (ja) 2022-04-26
EP3912099A1 (en) 2021-11-24

Similar Documents

Publication Publication Date Title
US20210334624A1 (en) Neural architecture search using a performance prediction neural network
US10853726B2 (en) Neural architecture search for dense image prediction tasks
CN113424199A (zh) 用于神经网络的复合模型缩放
US11669744B2 (en) Regularized neural network architecture search
CN109947919B (zh) 用于生成文本匹配模型的方法和装置
KR102208989B1 (ko) 강화 학습을 통한 디바이스 배치 최적화
CN109844773B (zh) 使用卷积神经网络处理序列
US11544536B2 (en) Hybrid neural architecture search
US20180322891A1 (en) Generating audio using neural networks
KR102469261B1 (ko) 적응적 인공 신경 네트워크 선택 기법들
US20220121906A1 (en) Task-aware neural network architecture search
US11922281B2 (en) Training machine learning models using teacher annealing
CN111652378B (zh) 学习来选择类别特征的词汇
WO2019101836A1 (en) Population based training of neural networks
CN117121016A (zh) 在低级基元上的粒度神经网络架构搜索
US20240152809A1 (en) Efficient machine learning model architecture selection
CN115454641A (zh) 数据资源处理方法、装置、电子设备及存储介质
CN115601174A (zh) 股票行情的预测方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination