掌桥专利:专业的专利平台
掌桥专利
首页

神经架构搜索方法、装置、终端及存储介质

文献发布时间:2023-06-19 19:30:30


神经架构搜索方法、装置、终端及存储介质

技术领域

本申请涉及人工智能技术领域,具体而言,涉及一种神经架构搜索方法、装置、终端及存储介质。

背景技术

神经架构搜索(Neural Architecture Search,NAS)是使用搜索算法来发现用于解决我们的问题所需要的神经网络结构,可自动化发现神经架构,以取代各种深度学习任务的繁琐手动设计。

目前,针对神经架构搜索,其采用的搜索算法主要为强化学习和进化算法,即通过强化学习或进化算法在一定数目的神经网络结构中进行搜索,以得到想要的神经网络结构。

但是,采用上述搜索算法实现神经架构搜索,会出现搜索效率低的问题。

发明内容

本申请的主要目的在于提供一种神经架构搜索方法、装置、终端及存储介质,以解决相关技术中存在搜索效率低的问题。

为了实现上述目的,第一方面,本申请提供了一种神经架构搜索方法,包括:

初始化超网络;

将超网络映射为初始有向无环图;

基于竞争-合作学习方法和初始有向无环图,确定n个目标有向无环图,其中,n为大于1的整数;

基于n个目标有向无环图和数据集,确定目标神经网络架构。

在一种可能的实现方式中,基于竞争-合作学习方法和初始有向无环图,确定n个目标有向无环图,包括:

利用竞争-合作学习方法所生成的k个粒子来感染初始有向无环图中的所有节点;

基于所有节点和k个粒子,确定n个目标有向无环图,其中,k为大于n的整数。

在一种可能的实现方式中,基于所有节点和k个粒子,确定n个目标有向无环图,包括:

将所有节点中属于k个粒子中的任一粒子所感染的目标节点以及目标节点对应的边,形成任一粒子对应的目标有向无环图;

将所形成的全部目标有向无环图进行汇总,得到n个目标有向无环图。

在一种可能的实现方式中,将所有节点中属于k个粒子中的任一粒子所感染的目标节点以及目标节点对应的边,形成任一粒子对应的目标有向无环图,包括:

计算k个粒子中的任一粒子在不同游走规则下的矩阵,其中,矩阵用于表征任一粒子与目标节点之间的关系;

基于任一粒子在不同游走规则下的矩阵,计算任一粒子对应的转移矩阵;

将任一粒子对应的转移矩阵输入粒子竞争模型的动力系统中,得到任一粒子对应的目标有向无环图。

在一种可能的实现方式中,不同游走规则至少包括随机游走和优先游走。

在一种可能的实现方式中,基于n个目标有向无环图和数据集,确定目标神经网络架构,包括:

将n个目标有向无环图映射为n个神经网络架构,其中,n个目标有向无环图与n个神经网络架构一一对应;

利用数据集对n个神经网络架构进行训练,确定目标神经网络架构。

在一种可能的实现方式中,利用数据集对n个神经网络架构进行训练,确定目标神经网络架构,包括:

针对n个神经网络架构中的每个神经网络架构,利用数据集对每个神经网络架构进行训练,得到每个神经网络架构对应的训练结果;

利用拟合方法对每个神经网络架构对应的训练结果进行拟合,得到每个神经网络架构对应的训练曲线;

将每个神经网络架构对应的训练曲线进行汇总,得到n个训练曲线,其中,n个神经网络架构与n个训练曲线一一对应;

在n个训练曲线中选取准确率最高的训练曲线对应的神经网络架构作为目标神经网络架构。

第二方面,本发明实施例提供了一种神经架构搜索装置,包括:

初始化模块,用于初始化超网络;

映射模块,用于将超网络映射为初始有向无环图;

模型处理模块,用于基于竞争-合作学习方法和初始有向无环图,确定n个目标有向无环图,其中,n为大于1的整数;

神经架构搜索模块,用于基于n个目标有向无环图和数据集,确定目标神经网络架构。

第三方面,本发明实施例提供了一种终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上任一种神经架构搜索方法的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上任一种神经架构搜索方法的步骤。

本发明实施例提供了一种神经架构搜索方法、装置、终端及存储介质,包括:初始化超网络,然后将超网络映射为初始有向无环图,再基于竞争-合作学习方法和初始有向无环图,确定n个目标有向无环图,最后基于n个目标有向无环图和数据集,确定目标神经网络架构。本发明将超网路抽象成有向无环图,然后通过竞争-合作学习方法搜索每个目标有向无环图中的重要节点和泛化性较强的特征,再通过同一个数据集对每个目标有向无环图进行训练,以搜索到具有良好性能的网络结构,即目标神经网络架构,不仅提高了神经网络架构的搜索效率,还通过同一个数据集学习各个目标有向无环图,使得到的目标神经网络架构具有较强的泛化能力。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本发明实施例提供的一种网络架构搜索方法的实现流程图;

图2是本发明实施例提供的灰色粒子竞争节点的示意图;

图3是本发明实施例提供的粒子复苏过程的示意图;

图4是本发明实施例提供的一种网络架构搜索装置的结构示意图;

图5是本发明实施例提供的终端的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和C”、“包含A、B、C”是指A、B、C三者都包含,“包含A、B或C”是指包含A、B、C三者之一,“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。

应当理解,在本发明中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。A与B的匹配,是A与B的相似度大于或等于预设的阈值。

取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图通过具体实施例来进行说明。

在一个实施例中,如图1所示,提供了一种神经架构搜索方法,包括以下步骤:

步骤S101:初始化超网络;

步骤S102:将超网络映射为初始有向无环图。

在NAS中,首先随机初始一个超网络,该超网络是有向无环的,超网络中的节点由预置的卷积结构组成,例如Inception、ResNet等。

该超网络可以被抽象或映射成为一个有向无环图(Directed acyclic graph,DAG),即初始有向无环图。

步骤S103:基于竞争-合作学习方法和初始有向无环图,确定n个目标有向无环图。

其中,n为大于1的整数。

由于NAS在某一数据集上的结果为初始有向无环图(即DAG)生成的目标子图,即目标神经网络架构,且该目标子图在某一指标(例如空间大小、准确率等)下是最优的。显然,一个DAG可以生成多个子图,即多个目标有向无环图,那么需要确定DAG中的节点属于哪个子图,其中,目标子图为多个子图中的一个。

因此,基于竞争-合作学习方法和初始有向无环图,确定n个目标有向无环图,需要先利用竞争-合作学习方法所生成的k个粒子来感染初始有向无环图中的所有节点,然后基于所有节点和k个粒子,确定n个目标有向无环图,其中,k为大于n的整数。

其中,基于所有节点和k个粒子,确定n个目标有向无环图,需要先将所有节点中属于k个粒子中的任一粒子所感染的目标节点以及目标节点对应的边,形成任一粒子对应的目标有向无环图,然后将所形成的全部目标有向无环图进行汇总,得到n个目标有向无环图。

具体的,在竞争-合作学习中,随机生成k个粒子,k个粒子用来“感染”DAG中的所有节点,使受到同一个粒子“感染”的节点构成一个子图(一个目标有向无环图)。

其中,将所有节点中属于k个粒子中的任一粒子所感染的目标节点以及目标节点对应的边,形成任一粒子对应的目标有向无环图,需要先计算k个粒子中的任一粒子在不同游走规则下的矩阵,其中,矩阵用于表征任一粒子与目标节点之间的关系,然后基于任一粒子在不同游走规则下的矩阵,计算任一粒子对应的转移矩阵,再将任一粒子对应的转移矩阵输入粒子竞争模型的动力系统中,得到任一粒子对应的目标有向无环图。

在竞争过程中,每个粒子

针对任一粒子,需要计算任一粒子不同游走规则下的矩阵,也就是说,需要计算任一粒子分别在随机游走和优先游走规则下的矩阵,具体计算公式如下:

/>

其中,

其中,

当通过上述计算得到任一粒子分别在随机游走和优先游走规则下的矩阵后,还需要通过任一粒子分别在随机游走和优先游走规则下的矩阵,计算任一粒子对应的转移矩阵,具体如下:

如图2所示,设深灰色粒子当前位于节点1,在一下次迭代中必须访问一个邻居。为了便于说明,图2给出了每个节点的控制向量,其中两项分别表示深灰色和浅灰色粒子的控制能力。本例中含有深灰色和浅灰色两个粒子。另外,白色表示时刻t没有被系统中任何粒子控制的节点。

那么转移矩阵的计算公式如下:

其中,

此外,当粒子处于沉寂状态时,粒子将其游走策略切换到一个新的转移矩阵

其中,

图3说明了粒子的复苏过程。由于深色粒子访问了多个非控制的节点,致使其能量耗尽。复苏是将其转移到一个由其控制的节点上,不考虑网络拓扑结构的影响。该过程有以下可能,即由于其领域将被相同的粒子控制,其能量有较高的概率在下一次迭代中被更新。

在通过公式(3)计算出转移矩阵后,定义竞争-合作学习中随机非线性动力系统,设t时刻动力系统状态X(t)=[N(t),p(t),E(t),S(t)]

E(t)=[E

其中,ω

S(t)主要用于确定每个粒子在任意时刻t的游走策略,指示函数

当确定粒子的能量后,则粒子竞争模型的动力系统为

公式(6)中的公式代表节点i到节点j的转移规则,直到时间t节点i被粒子k访问的次数,更新进入超网络的所有粒子的能级,说明粒子的状态是活跃还是沉寂。公式(6)方程的初值为:

通过求解方程(6)得到任一粒子对应的目标有向无环图,通过将所有粒子对应的目标有向无环图进行汇总,则得到超网络对应的全部目标有向无环图。

步骤S104:基于n个目标有向无环图和数据集,确定目标神经网络架构。

基于n个目标有向无环图和数据集,确定目标神经网络架构,需要先将n个目标有向无环图映射为n个神经网络架构,其中,n个目标有向无环图与n个神经网络架构一一对应,然后利用数据集对n个神经网络架构进行训练,确定目标神经网络架构。

其中,利用数据集对n个神经网络架构进行训练,确定目标神经网络架构,需先针对n个神经网络架构中的每个神经网络架构,利用数据集对每个神经网络架构进行训练,得到每个神经网络架构对应的训练结果,然后利用拟合方法对每个神经网络架构对应的训练结果进行拟合,得到每个神经网络架构对应的训练曲线,再将每个神经网络架构对应的训练曲线进行汇总,得到n个训练曲线,其中,n个神经网络架构与n个训练曲线一一对应,最后在n个训练曲线中选取准确率最高的训练曲线对应的神经网络架构作为目标神经网络架构。

本发明实施例提供了一种神经架构搜索方法,包括:初始化超网络,然后将超网络映射为初始有向无环图,再基于竞争-合作学习方法和初始有向无环图,确定n个目标有向无环图,最后基于n个目标有向无环图和数据集,确定目标神经网络架构。本发明将超网路抽象成有向无环图,然后通过竞争-合作学习方法搜索每个目标有向无环图中的重要节点和泛化性较强的特征,再通过同一个数据集对每个目标有向无环图进行训练,以搜索到具有良好性能的网络结构,即目标神经网络架构,不仅提高了神经网络架构的搜索效率,还通过同一个数据集学习各个目标有向无环图,使得到的目标神经网络架构具有较强的泛化能力。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。

图4示出了本发明实施例提供的一种神经架构搜索装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分,一种神经架构搜索装置包括初始化模块41、映射模块42、模型处理模块43和神经架构搜索模块44,具体如下:

初始化模块41,用于初始化超网络;

映射模块42,用于将超网络映射为初始有向无环图;

模型处理模块43,用于基于竞争-合作学习方法和初始有向无环图,确定n个目标有向无环图,其中,n为大于1的整数;

神经架构搜索模块44,用于基于n个目标有向无环图和数据集,确定目标神经网络架构。

在一种可能的实现方式中,模型处理模块43还用于利用竞争-合作学习方法所生成的k个粒子来感染初始有向无环图中的所有节点;

基于所有节点和k个粒子,确定n个目标有向无环图,其中,k为大于n的整数。

在一种可能的实现方式中,模型处理模块43还用于将所有节点中属于k个粒子中的任一粒子所感染的目标节点以及目标节点对应的边,形成任一粒子对应的目标有向无环图;

将所形成的全部目标有向无环图进行汇总,得到n个目标有向无环图。

在一种可能的实现方式中,模型处理模块43还用于计算k个粒子中的任一粒子在不同游走规则下的矩阵,其中,矩阵用于表征任一粒子与目标节点之间的关系;

基于任一粒子在不同游走规则下的矩阵,计算任一粒子对应的转移矩阵;

将任一粒子对应的转移矩阵输入粒子竞争模型的动力系统中,得到任一粒子对应的目标有向无环图。

在一种可能的实现方式中,不同游走规则至少包括随机游走和优先游走。

在一种可能的实现方式中,神经架构搜索模块44还用于将n个目标有向无环图映射为n个神经网络架构,其中,n个目标有向无环图与n个神经网络架构一一对应;

利用数据集对n个神经网络架构进行训练,确定目标神经网络架构。

在一种可能的实现方式中,神经架构搜索模块44还用于针对n个神经网络架构中的每个神经网络架构,利用数据集对每个神经网络架构进行训练,得到每个神经网络架构对应的训练结果;

利用拟合方法对每个神经网络架构对应的训练结果进行拟合,得到每个神经网络架构对应的训练曲线;

将每个神经网络架构对应的训练曲线进行汇总,得到n个训练曲线,其中,n个神经网络架构与n个训练曲线一一对应;

在n个训练曲线中选取准确率最高的训练曲线对应的神经网络架构作为目标神经网络架构。

图5是本发明实施例提供的终端的示意图。如图5所示,该实施例的终端5包括:处理器51、存储器52以及存储在存储器52中并可在处理器51上运行的计算机程序5。处理器51执行计算机程序53时实现上述各个神经架构搜索方法实施例中的步骤,例如图1所示的步骤101至步骤104。或者,处理器51执行计算机程序53时实现上述各个神经架构搜索装置实施例中各模块/单元的功能,例如图4所示模块/单元41至44的功能。

本发明还提供一种可读存储介质,可读存储介质中存储有计算机程序,计算机程序被处理器执行时用于实现上述的各种实施方式提供的神经架构搜索方法。

其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的神经架构搜索方法。

在上述设备的实施例中,应理解,处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

相关技术
  • 搜索结果的展示方法、装置、终端及存储介质
  • 一种搜索结果的显示方法、装置、终端及计算机存储介质
  • 资源搜索方法、装置、终端、服务器、计算机可读存储介质
  • 搜索方法、搜索集生成方法、装置、介质、终端及服务器
  • 移动终端桌面图标布局方法、装置、终端及可读存储介质
  • 神经网络架构搜索方法、装置、终端设备以及存储介质
  • 神经网络架构搜索方法、神经网络应用方法、设备及存储介质
技术分类

06120115937806