CN112116090A - 神经网络结构搜索方法、装置、计算机设备及存储介质 - Google Patents
神经网络结构搜索方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112116090A CN112116090A CN202011037798.9A CN202011037798A CN112116090A CN 112116090 A CN112116090 A CN 112116090A CN 202011037798 A CN202011037798 A CN 202011037798A CN 112116090 A CN112116090 A CN 112116090A
- Authority
- CN
- China
- Prior art keywords
- sub
- network
- training
- trained
- controller
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种神经网络结构搜索方法、装置、计算机设备及存储介质,该方法采用控制器执行搜索策略生成子网络结构,通过对子网络的性能进行评估,然后反馈到控制器中训练使其能够学习生成所需的神经网络结构;在子网络的训练过程中,对各个子网络在相同节点位置处同种类型的隐藏层实行参数共享,可有效提高子网络的训练效率,节省计算机资源,降低硬件成本,大大加快搜索的速度;并且在子网络更新共享权重参数时,通过约束对已经训练好的子网络所造成的干扰,可以提高后续对各个子网络结构进行性能评估时的准确性,在训练控制器时更为精确,进而使训练好的控制器所搜索到的神经网络结构的性能得到提高。本申请可广泛应用于人工智能技术领域。
Description
技术领域
本发明涉及人工智能技术领域,尤其是一种神经网络结构搜索方法、装置、计算机设备及存储介质。
背景技术
近年来,人工智能技术飞速发展,神经网络模型在图像分类、人脸识别、自动驾驶等领域均取得了良好的应用效果。因神经网络模型的网络结构(简称为神经网络结构)对其任务执行的效果起着关键性的作用,所以在神经网络模型的搭建过程中,如何构建高效的神经网络结构非常重要,这就需要技术人员具备大量的神经网络结构设计及参数调整经验,不断尝试、调整,整个设计过程复杂,十分耗费精力;而且多次更换、实验不同结构的神经网络需要耗费大量的硬件资源,得到的神经网络结构性能也可能无法达到理想的效果。
发明内容
本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
为此,本申请实施例的一个目的在于提供一种神经网络结构搜索方法,该方法能够有效提高神经网络结构搜索的效率和提高搜索到的神经网络结构的性能。
为了达到上述技术目的,本申请实施例所采取的技术方案包括:
第一方面,本申请实施例提供一种神经网络结构搜索方法,包括以下步骤:
通过控制器在具有预设节点个数的超网络中采样生成批量的第一子网络;各个所述第一子网络在两个相同节点间的同种类型的隐藏层具有共享权重参数;
依序对各个所述第一子网络进行训练,并约束所述第一子网络更新所述共享权重参数造成的差异值小于预设阈值;所述差异值为更新前后训练好的所述第一子网络输出的差异值;
对训练好的各个所述第一子网络的性能进行评估,得到对应的评估得分;
根据所述第一子网络的网络结构和对应的所述评估得分,对所述控制器进行训练,得到训练好的所述控制器;
通过训练好的所述控制器从所述超网络中得到所需的神经网络结构。
第二方面,本申请实施例提供一种神经网络结构搜索装置,包括:
控制器采样模块,用于通过控制器在具有预设节点个数的超网络中采样生成批量的第一子网络;各个所述第一子网络在两个相同节点间的同种类型的隐藏层具有共享权重参数;
子网络训练模块,用于依序对各个所述第一子网络进行训练,并约束所述第一子网络更新所述共享权重参数造成的差异值小于预设阈值;所述差异值为更新前后训练好的所述第一子网络输出的差异值;
性能评估模块,用于对训练好的各个所述第一子网络的性能进行评估,得到对应的评估得分;
控制器训练模块,用于根据所述第一子网络的网络结构和对应的所述评估得分,对所述控制器进行训练,得到训练好的所述控制器;
神经网络结构生成模块,用于通过训练好的所述控制器从所述超网络中得到所需的神经网络结构。
第三方面,本申请实施例提供了一种计算机设备,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现上述第一方面的神经网络结构搜索方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的指令,上述处理器可执行的指令在由处理器执行时用于实现上述第一方面的神经网络结构搜索方法。
第五方面,本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在上述第四方面的计算机可读存介质中;上述第三方面的计算机设备的处理器可以从上述第四方面的计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面的神经网络结构搜索方法。
本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到:
本申请的神经网络结构搜索方法中,采用控制器执行搜索策略生成子网络结构,通过对子网络的性能进行评估,然后反馈到控制器中训练使其能够学习生成所需的神经网络结构;在子网络的训练过程中,对各个子网络在相同节点位置处同种类型的隐藏层实行参数共享,可有效提高子网络的训练效率,节省计算机资源,降低硬件成本,大大加快搜索的速度;并且在子网络更新共享权重参数时,通过约束对已经训练好的子网络所造成的干扰,可以提高后续对各个子网络结构进行性能评估时的准确性,在训练控制器时更为精确,进而使训练好的控制器所搜索到的神经网络结构的性能得到提高。
附图说明
为了更清楚地说明本申请实施例或者现有技术中的技术方案,下面对本申请实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
图1为相关技术中神经网络结构搜索方法的原理示意图;
图2为本申请实施例中提供的一种神经网络结构搜索方法的流程示意图;
图3为本申请实施例中提供的一种神经网络结构搜索方法中从超网络中采样生成第一子网络的原理示意图;
图4为本申请实施例中提供的一种神经网络结构搜索方法中通过循环神经网络生成第一子网络的示意图;
图5为本申请实施例中提供的一种神经网络结构搜索方法中通过循环神经网络生成的一种第一子网络的结构示意图;
图6为本申请实施例中提供的一种神经网络结构搜索方法中生成的一种第一子网络处理输入数据时的流程示意图;
图7为本申请实施例中提供的一种神经网络结构搜索方法中第一子网络的训练流程示意图;
图8为本申请实施例中提供的一种神经网络结构搜索方法中对第一子网络进行性能评估的流程示意图;
图9为本申请实施例中提供的一种神经网络结构搜索方法中通过堆叠第二子网络得到的一种神经网络结构;
图10为本申请实施例中提供的一种神经网络结构搜索方法中控制器的训练流程示意图;
图11为本申请实施例中提供的一种神经网络结构搜索装置的结构示意图;
图12为本申请实施例中提供的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
神经网络结构搜索(Neural Architecture Search,NAS):一种自动设计神经网络的技术,可以通过算法自动设计出高性能的神经网络结构,能够有效降低神经网络的实现和使用成本。
强化学习(Reinforcement Learning,RL):又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
本申请实施例中所提供的神经网络结构搜索方法可以应用于人工智能技术之中。人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。其中,人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术;人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
具体地,本申请实施例中提供的神经网络结构搜索方法可以应用在人工智能领域内的各种应用场景中:例如用户终端中的相册存储了大量的图片,希望对图片进行快速分类(比如说把同一人物的图片归类到一起),则可以通过本申请实施例中的神经网络结构搜索方法搜索出适于进行图像分类的神经网络模型结构;临床医疗领域,某些医学影像中的病灶区域对分析患者病情具有重要的意义,针对该场景可以通过本申请实施例中的神经网络结构搜索方法搜索出适于进行图像分割的神经网络模型结构,通过自动提取病灶图像辅助医生进行临床诊断。本领域技术人员可以理解的是,以上的应用场景仅起到示例性的作用,并不意味着对本申请实施例中的神经网络结构搜索方法的实际实施形成限制,在不同应用场景中,人工智能系统都可以利用本申请实施例中的神经网络结构搜索方法搜索得到的神经网络模型执行指定的任务。
本申请实施例中,主要涉及的人工智能技术是机器学习。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,算法类型很多。其中,机器学习根据学习方式可以分为:监督式学习、非监督式学习、半监督式学习和强化学习。根据算法的功能可以分为:回归算法、分类算法、聚类算法、降维算法和集成算法等。
虽然机器学习所搭建的神经网络模型能够适用于不同的应用场景、完成各类任务,但是实际的应用效果,例如模型训练所需的时长、模型预测的精度等,是和神经网络模型的结构息息相关的。有可能有些神经网络模型的结构很复杂,但是预测的准确性却不尽人意;相反,有些神经网络模型的层数虽然很浅,却能达到令人满意的预测精度。而神经网络模型的搭建过程,一般需要通过具备大量的神经网络结构设计及参数调整经验的技术人员不断尝试、调整,十分耗费精力,难以大规模推广。相关技术中,采用神经网络结构搜索(Neural Architecture Search,NAS)的方法,通过算法来自动设计神经网络结构,以期望降低人工成本,更方便地搭建出高性能的神经网络结构。参照图1,神经网络结构搜索方法主要思路是设定搜索策略和针对神经网络结构的性能评估器,然后按照以下流程:1)根据当前的搜索策略在搜索空间中选择、生成神经网络结构a;2)通过性能评估器对神经网络结构a的性能进行评估;3)根据性能评估的结果更新搜索策略,然后返回步骤1)重新生成新的神经网络结构a。上述的步骤1)至步骤3)是一个循环迭代的过程,该过程可以在搜索到满足性能要求的神经网络结构时停止,此时可以认为完成了本次的神经网络结构搜索任务。然而,一般的神经网络结构搜索算法,需要对每一个搜索到的神经网络结构进行训练,并测试训练好的神经网络在测试数据集或者验证数据集上的准确度作为性能评估的依据,用以指导搜索策略的学习。搜索过程中可能出现的候选神经网络结构数量是极其庞大的,即使是并行训练也要使用不少的硬件设备持续运行很长时间,因此这种方法在进行搜索时将会占用大量的计算机资源,效率是很低的,并不能真正满足实际的应用需求。
有鉴于此,本申请实施例中提供一种神经网络结构搜索方法,采用控制器执行搜索策略生成子网络结构,通过对子网络的性能进行评估,然后反馈到控制器中训练使其能够学习生成所需的神经网络结构;在子网络的训练过程中,对各个子网络在相同节点位置处同种类型的隐藏层实行参数共享,可有效提高子网络的训练效率,节省计算机资源,降低硬件成本,大大加快搜索的速度;并且在子网络更新共享权重参数时,通过约束对已经训练好的子网络所造成的干扰,可以提高后续对各个子网络结构进行性能评估时的准确性,在训练控制器时更为精确,进而使训练好的控制器所搜索到的神经网络结构的性能得到提高。
下面结合附图,对本申请实施例的具体实施方式进行说明,首先将描述本申请实施例中的神经网络结构搜索方法。
本申请实施例提供了一种神经网络结构搜索方法,可应用于终端中,也可应用于服务器中,还可以是运行于终端或服务器中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑或者台式计算机等;服务器可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是搜索神经网络结构的应用程序等,但并不局限于以上形式。图2是本申请实施例提供的一种神经网络结构搜索方法的一个可选的流程图,图2中的方法包括步骤110至步骤150。
步骤110、通过控制器在具有预设节点个数的超网络中采样生成批量的第一子网络;各个第一子网络在两个相同节点间的同种类型的隐藏层具有共享权重参数;
本申请实施例中,由于神经网络结构一般采用堆叠模块(block)的方式搭建而成,而堆叠的模块本身可以通过一个序列来表示。因此,本申请实施例中可以采用控制器来生成这些序列,以生成第一子网络的结构。具体地,循环神经网络(Recurrent NeuralNetwork,RNN)具有记忆性、参数共享并且图灵完备,在处理序列数据上具有较好的表现,本申请实施例中可以选用循环神经网络作为控制生成第一子网络的控制器。当然,应当理解的是,循环神经网络仅为控制器可选的一种实施方式,该控制器也可以是任何其他方便生成序列的模型结构,例如隐马尔可夫模型、长短期记忆网络等等。
本申请实施例中的超网络,可以理解为进行神经网络结构搜索的搜索空间。参照图3,图3中示出了一种超网络10,超网络10内,包括有指定个数的节点102,本申请实施例中的各个节点102具有编号,表示先后顺序,且顺序处在前面的节点102记为前序的节点,顺序处在后面的节点102记为后序的节点,前序的节点可以与后序的节点通过隐藏层101连接,图3中的节点102包括第一节点1、第二节点2、第三节点3和第四节点4。对应在神经网络技术中,超网络10中的各个节点102表示在神经网络对输入数据处理的过程中,输出处理后的中间数据或者结果数据的位置,例如节点102可以是神经网络前向传播过程中产生的特征图的位置。节点102之间通过隐藏层101进行连接,任意一个顺序处在前序的节点102均可以与顺序处在后序的一个或者多个节点102通过隐藏层101进行连接。本申请实施例中的隐藏层101,可以是各种数据处理的方式,例如:隐藏层101可以采用卷积处理、池化处理、对输入数据进行传送不进行其他处理或者任何可对输入数据进行处理的函数。并且,对于采用同样方式进行数据处理的隐藏层101,还可以进一步细分为不同的类型,例如:隐藏层101在进行卷积处理时,可以采用具有不同卷积核的卷积层;类似地,隐藏层101在进行池化处理时,各个池化层又可以具有不同池化核。本领域技术人员可以理解的是,本申请实施例中的同种类型的隐藏层,指的即为采用同样方式进行数据处理,且使用的数据处理结构相同的隐藏层。例如一个卷积核为3的卷积层所构成的隐藏层,和另一个卷积核为3的卷积层所构成的隐藏层属于同种类型的隐藏层,而和卷积核为5的卷积层所构成的隐藏层、池化核为3的池化层所构成的隐藏层均不属于同种类型的隐藏层。
参照图3,本申请实施例中,对于一个超网络10,由于其各个节点102间的连接关系、各个节点102间的隐藏层101的类型是多种多样的,因此可以从一个超网络10中采样出批量的第一子网络。图3中示例性地给出了三种各个节点间的连接关系不同的第一子网络结构,分别记为A类子网络110、B类子网络120和C类子网络130。本领域人员基于上述的描述,可以理解的是,本申请实施例中的超网络10还可以具有其他不同的第一子网络结构;并且,图3中仅仅示出了各个节点间的连接关系可选的几种变形,未对各个节点间的隐藏层的类型做具体限制,实际上本申请实施例中采样生成的第一子网络,可以是节点间连接关系和节点间连接时所采用的隐藏层类型的随机组合。图3中可以看到,A类子网络110在第一节点1和第二节点2处通过第一隐藏层1101进行连接,B类子网络120在第一节点1和第二节点2处通过第二隐藏层1201进行连接,如果第一隐藏层1101和第二隐藏层1201的类型相同,则两者的权重参数共享。换句话说,此时A类子网络110和B类子网络120在第一节点1指向第二节点2处的隐藏层具有共享权重参数,该共享权重参数的数据格式根据隐藏层的类型设定,可以包括数值、向量或者矩阵中的任意一种。本申请实施例中,针对隐藏层的共享权重参数,可以由两个或者两个以上的第一子网络共享,例如假设图3中的C类子网络130同样在第一节点1和第二节点2处存在和A类子网络110、B类子网络120同种类型的隐藏层,则三个第一子网络在第一节点1指向第二节点2处的隐藏层共同具有该共享权重参数。本申请实施例中,若第一隐藏层1101和第二隐藏层1201具有共享权重参数,则当A类子网络110训练好后,第一隐藏层1101的权重参数将配置给B类子网络120的第二隐藏层1201,相应地,后续B类子网络120在训练时对第二隐藏层1201的权重参数产生的变化,也会更新至A类子网络110的第一隐藏层1101。
具体地,本申请实施例中,第一子网络之间共享权重参数的实现方式为:当训练好一个第一子网络时,根据该第一子网络的结构将其全部的隐藏层的权重参数(包括共享权重参数)更新到超网络中,其他的第一子网络在参与模型训练或者性能评估时,将根据自身的网络结构,从超网络中迁移得到对应的权重参数。举例而言,当图3中的A类子网络110训练好后,将第一隐藏层1101的权重参数更新到超网络10的对应位置的隐藏层101处;此处需要说明的是,超网络10的隐藏层101处,可以针对第一子网络不同类型的隐藏层存储不同的权重参数,并非单一只存储一个权重参数,例如隐藏层101可以同时存储卷积核为3的卷积层的权重参数,卷积核为1的卷积层的权重参数等等,其他的第一子网络可以根据隐藏层的类型来对应迁移存储的某个参数,从而实现第一子网络之间的参数共享。此处所指的其他的,表示同一批次中除当前的第一子网络外的第一子网络。
本申请实施例中,通过设置共享权重参数,在对这些第一子网络进行训练时,当前面的第一子网络训练好以后,后面的第一子网络参与训练时将会继承得到部分已经训练好的权重参数,从而无需对后面的第一子网络各个从初始化开始进行训练。该方法能够大幅提高整体第一子网络训练收敛的速度,使得批量的第一子网络在较短的时间内完成训练,从而节省神经网络结构搜索所耗费的硬件成本和时间成本,提高神经网络结构搜索的效率。
下面结合附图对本申请实施例中由控制器生成第一子网络的过程进行介绍。
参照图4,本申请实施例中,以使用循环神经网络来从图3所示的超网络10中生成第一子网络为例进行说明,由于超网络10中的节点102的个数固定,因此循环神经网络只需要按照节点的标号顺序依次输出第一子网络中每个节点的前序连接节点和节点间的隐藏层类型即可。图4中示出了循环神经网络生成一种第一子网络的输出示例。图4中,在第一节点1处,由于其没有前序节点,可以只输出对输入该第一子网络的数据所做的操作,即通过卷积核为3的卷积层进行卷积处理后到达第一节点1;在第二节点2处,输出第二节点2连接的前序节点(图4中为第一节点1)和对应隐藏层——卷积核为1的卷积层;在第三节点3处,输出第三节点3连接的前序节点(图4中为第一节点1和第二节点2)和对应隐藏层——池化核为3的池化层,此处应当说明的是,如果需要生成由第一节点1和第二节点2连接到第三节点3所使用的隐藏层类型不同的第一子网络,只需使对应第三节点3处的循环神经网络单元延长,分别针对第一节点1连接到第三节点3、第二节点2连接到第三节点3生成对应的隐藏层类型即可;在第四节点4处,输出第四节点4连接的前序节点(图4中为第一节点1和第三节点3)和对应隐藏层——卷积核为5的卷积层。通过以上的循环神经网络输出所生成的第一子网络,第一节点1、第二节点2、第三节点3和第四节点4的连接关系如图5所示,对应地,采用该第一子网络处理输入数据的流程图如图6所示。图5中可以看出,第一节点1所连接的后序节点包括第二节点2、第三节点3和第四节点4,第二节点2所连接的后序节点包括第三节点3,第三节点3所连接的后序节点包括第四节点4。在图6中,输入数据输入到该第一子网络后,经过卷积核为3的卷积层进行卷积处理,此时获取到的数据可以认为处于第一节点1;处理后的数据通过卷积核为1的卷积层进行卷积处理,此时获取到的数据可以认为处于第二节点2;处于第一节点1和处于第二节点2的数据进行合并(cancat)后通过池化核为3的池化层进行池化处理,此时获取到的数据可以认为处于第三节点3;处于第一节点1和处于第三节点3的数据进行合并后通过卷积核为5的卷积层进行卷积处理,此时获取到的数据可以认为处于第四节点4。对于第一子网络而言,处于第四节点4的数据可以直接通过连接例如softmax等函数进行输出。应当说明的是,本申请实施例中通过上述的循环神经网络生成第一子网络的方式仅为一种可选的实施方式,并不构成对本申请中控制器的具体限制,本领域内的技术人员可以根据需要,灵活选择合适的神经网络模型作为控制器来生成第一子网络。
步骤120、依序对各个第一子网络进行训练,并约束第一子网络更新共享权重参数造成的差异值小于预设阈值;该差异值为更新前后训练好的第一子网络输出的差异值;
本申请实施例中,对于采样生成的批量的第一子网络,使用一组训练数据集按照顺序依次对其进行训练。应当说明的是,此处所说的依序,仅用于表征对所有的第一子网络都训练一遍,并非指对各个第一子网络参与训练的前后关系做某种限定。实际的训练顺序,可以是按照采样生成的第一子网络的顺序去训练,也可以在本次采样生成批量的第一子网络后,对其进行额外的编号,然后按照编号的顺序依次训练。
对于每一个第一子网络,参照图7,其训练过程可以由图7所示出的步骤完成,图7中的步骤包括步骤710至步骤740。
步骤S710、获取训练数据集;训练数据集中的训练数据带有第一标签;
本申请实施例中,训练数据集的数据,数据结构可以包括数值、向量或者矩阵等,数据形式可以包括数值、文字、图形、图像、声音等;并灵活设置对应的预测任务来选取需要的数据,例如可以设置为图像分类任务,选择以图像数据作为训练数据集;可以设置为敏感语句识别任务,选择以文字数据作为训练数据集等等。第一标签是指训练数据所对应的任务的真实标记,例如对于分类任务而言,第一标签可以为训练数据所对应的真实类别标签;对于数值预测类任务而言,第一标签可以为训练数据所对应的真实数值。
步骤S720、将训练数据输入到第一子网络,得到第一预测结果;
步骤S730、根据第一预测结果和第一标签确定训练的第一损失值;
本申请实施例中,在获取到第一子网络输出的第一预测结果后,根据第一预测结果和第一标签来评估第一子网络预测的准确性。对于神经网络模型来说,模型预测结果的准确性可以通过损失函数(Loss Function)来衡量,损失函数是定义在单个训练数据上的,用于衡量一个训练数据的预测误差,具体是通过单个训练数据的标签和模型对该训练数据的预测结果确定该训练数据的损失值。而实际训练时,一个训练数据集有很多训练数据,因此一般采用代价函数(Cost Function)来衡量训练数据集的整体误差,代价函数是定义在整个训练数据集上的,用于计算所有训练数据的预测误差的平均值,能够更好地衡量出神经网络模型的预测效果。对于一般的神经网络模型来说,基于前述的代价函数,再加上衡量模型复杂度的正则项即可作为训练的目标函数,基于该目标函数便能求出整个训练数据集的损失值。常用的损失函数种类有很多,例如0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等均可以作为机器学习模型的损失函数,在此不再一一阐述。本申请实施例中,可以从中任选一种损失函数来确定第一损失值。
步骤S740、根据第一损失值对第一子网络的权重参数进行更新。
本申请实施例中,对于第一子网络的训练,基于第一损失值确定出前述的目标函数,以该目标函数最小化为训练的目标,并且增加一个约束条件:约束后序训练的第一子网络更新共享权重参数所造成的前序训练好的第一子网络输出的差异值小于预设阈值。其原理在于:本申请实施例中的第一子网络之间具有共享权重参数,因此在批量的第一子网络按顺序训练的过程中,后续参与训练的第一子网络可能会不可避免地更新前序训练好的第一子网络的共享权重参数。以图3为例,假设训练的顺序为A类子网络110在前,B类子网络120在后,当A类子网络110训练好后,将第一隐藏层1101的权重参数更新到超网络10的对应位置的隐藏层101处;B类子网络120的第二隐藏层1201和第一隐藏层1101为同种类型的隐藏层,彼此之间参数共享。那么在B类子网络120训练时,首先根据B类子网络120的结构,从超网络中迁移各个隐藏层的权重参数(其中没有共享权重参数的隐藏层默可以认为初始化的形式),此时将会把隐藏层101处存储的第一隐藏层1101的共享权重参数迁移到第二隐藏层1201。举例而言,例如第一隐藏层1101的共享权重参数的是数值5,此时第二隐藏层1201在训练前便能获得该共享权重参数,不必从初始化开始通过大量的训练数据去训练第二隐藏层1201的权重。当然,该共享权重参数只能在一定程度上方便B类子网络120的快速收敛,实际上B类子网络120在训练过程中可能会对共享权重参数进行更新。例如B类子网络120在训练完成后,将第二隐藏层1201原来继承的共享权重参数从5更新到了6,并将6更新到了超网络中对应的隐藏层101处存储。由于A类子网络110后续在参与性能评估时是根据网络结构从超网络10中迁移权重参数的,因此B类子网络120对共享权重参数的更新,将会对A类子网络110的性能评估产生干扰,从而使得前序已经训练好的子网络结构性能评估的结果不够准确,影响到控制器的训练,进一步使得训练好的控制器搜索出来的神经网络结构性能不佳。
本申请实施例中,针对上述技术问题,通过干扰免疫的方式去训练各个第一子网络,尽可能减小这一性能干扰问题。具体地,本申请实施例中,将前序训练好的第一子网络性能尽可能不变这一要求,转换为对于同样的输入,后序训练的第一子网络更新共享权重参数所造成的前序训练好的子网络的输出尽可能不变。换句话说,即约束后序训练的第一子网络更新共享权重参数所造成的前序训练好的第一子网络输出的差异值小于预设阈值。应当说明的是,此处差异值的计算方式并不固定,例如:如果前序训练好的第一子网络输出的是数值,那么差异值可以按照更新共享权重参数前后该数值的差值或者绝对值来计算,也可以按照更新共享权重参数前后该数值的变化占更新前的数值的比例来计算;类似地,如果前序训练好的第一子网络输出的是向量或者矩阵,可以以更新前后向量或者矩阵的二范数的差值或者绝对值来计算等等。对应地,预设阈值和差异值的计算方式相统一,既可以是数值,也可以是比例;并且预设阈值的大小也可以根据需要灵活调整。
通过上述的描述可以得知,本申请实施例中在第一子网络的训练过程中,按照训练的顺序对后序参与训练的第一子网络增加了一个性能干扰的约束条件。而可选地,本申请实施例中,提供了一种方便实现该约束条件的训练方法:针对第一子网络训练的带约束的优化问题,基于投影梯度下降理论进行求解。具体地,仍以图3所示的A类子网络110在前,B类子网络120在后为例进行说明:在对B类子网络120进行训练前,首先根据训练数据集确定前序训练好的第一子网络,也就是A类子网络110的输入特征矩阵。具体地,该输入特征矩阵通过训练数据集中的数据堆叠或者叠加得到,记为X(如果训练数据集中的训练数据为数值或者向量,则进行堆叠操作得到输入特征矩阵;如果训练数据集中的训练数据为矩阵,则进行叠加操作得到输入特征矩阵)。然后根据输入特征矩阵,建立梯度投影矩阵,梯度投影矩阵的计算公式为:
P=I-X(λI+XTX)-1XT;
式中,P表示梯度投影矩阵,I表示单位矩阵,X表示输入特征矩阵,(·)T表示矩阵的转置,λ为常数,通常可以取0或者1,当矩阵XTX不可逆时取1。
然后,将该训练数据集中的训练数据输入到后序参与训练的第一子网络,即B类子网络120,得到B类子网络120输出的预测结果,记为第二预测结果。通过第二预测结果和训练数据带有的第一标签确定B类子网络120训练的第二损失值,具体地过程和前述的步骤720、步骤730类似,在此不再赘述。对于B类子网络120,其训练时通过前述的梯度投影矩阵和第二损失值迭代更新权重参数(包括共享权重参数),具体的更新公式为:
式中,W为后序参与训练的第一子网络的权重参数,η为学习率,P为梯度投影矩阵,为第二损失值。相对于一般的神经网络模型更新权重的方式,本申请实施例中采用了梯度投影矩阵,使得后序参与训练的第一子网络的权重参数的更新,尽可能小地改变前序第一子网络的输出。具体地,本申请实施例中对权重参数进行迭代更新时,可以选用梯度下降法(Gradient Descent,GD),梯度下降法是为目标函数求取全局最小值的一种常用迭代算法,它的种类有很多,例如批量梯度下降法(Batch Gradient Descent,BGD)、随机梯度下降法(Stochastic Gradient Descent,SGD)、小批量梯度下降法(Mini-batch GradientDescent,MBGD)等等。本申请实施例中,可以选用随机梯度下降法,其学习速率比较快,效果也十分良好。本申请实施例中,后序训练的第一子网络(B类子网络120)训练的收敛条件可以设置为满足迭代次数或者验证数据集的预测精度达到要求,且使得前序训练好的第一子网络(A类子网络110)输出的差异值小于预设阈值时,认为后序训练的第一子网络训练完成。
可选地,本申请实施例中,还提供了另外一种方便实现该约束条件的训练方法。以下仍以图3所示的A类子网络110在前,B类子网络120在后为例进行说明:在该方法中,将训练数据集中的训练数据输入到后序参与训练的第一子网络,即B类子网络120,得到B类子网络120输出的预测结果,记为第三预测结果。通过第三预测结果和训练数据带有的第一标签确定B类子网络120训练的第三损失值,具体地过程和前述的步骤720、步骤730类似,在此不再赘述。与此同时,计算B类子网络120更新权重参数导致的A类子网络110输出变化的差异值,此处差异值的计算结果可以选取为数值,并与第三损失值加权求和,以得到训练的第四损失值。可以理解的是,差异值的加权权重影响的是前序训练好的第一子网络(A类子网络110)的性能评估;第三损失值的加权权重影响的是后序参与训练的第一子网络(B类子网络120)的训练结果,具体的加权权重可以根据需要灵活设定。得到第四损失值以后,通过第四损失值对后序训练的第一子网络(B类子网络120)进行迭代训练,具体的迭代算法可以参照前述的实施例实施。类似地,本申请实施例中,后序训练的第一子网络训练的收敛条件也可以设置为满足迭代次数或者验证数据集的预测精度达到要求,且使得前序训练好的第一子网络输出的差异值小于预设阈值时,即认为后序训练的第一子网络训练完成。
步骤130、对训练好的各个第一子网络的性能进行评估,得到对应的评估得分;
本申请实施例中,在一个批量中采样的所有第一子网络训练完毕之后,根据各个第一子网络的网络结构,从超网络中迁移对应的权重参数进行性能评估。具体地,参照图8,该过程可以采用图8中的步骤1301至步骤1034完成:
步骤1301、获取验证数据集;验证数据集中的验证数据带有第二标签;
本申请实施例中,此处的验证数据集和前述的训练数据集数据来源、数据格式是统一的,实际在获取数据的时候,可以同时获取批量的带有标签的数据,然后再将数据随机分为训练数据集和验证数据集。其中,训练数据集中的数据记为训练数据,带有的标签记为第一标签;验证数据集中的数据记为验证数据,带有的标签记为第二标签。
步骤1302、将验证数据输入到训练好的各个第一子网络中,得到第四预测结果;
步骤1303、根据第四预测结果和第二标签,确定各个第一子网络的预测正确率;
本申请实施例中,对于训练好的第一子网络,将验证数据输入到子网络中,通过子网络预测得到对应的预测结果,记为第四预测结果;然后通过第四预测结果和第二标签确定第一子网络的预测正确率。应当说明的是,此处的预测正确率的衡量方式可以有多种,并且根据具体的任务情形,对预测正确的要求标准也可以有调整。举例来说,对于分类任务而言,可以将预测的类别是否符合标签作为预测是否正确的判断标准,若第一子网络预测的类别和标签类别相同,则认为预测正确;若不相同,则认为预测错误。类似地,对于图像分割任务而言,可以以分割得到的区域和标签区域的重合程度来确定预测是否正确。对于数值预测任务而言,可以以数值预测的比例关系确定预测是否正确。可以理解的是,本申请实施例中对于第一子网络的预测正确率,可以根据不同的任务情形适当调整判断依据。
步骤1304、根据预测正确率,确定各个第一子网络对应的评估得分。
本步骤中,根据得到第一子网络在验证数据集上的预测正确率,确定其对应的评估得分。此处,较为简单地,可以直接设置为评估得分和预测正确率呈正比例关系,例如直接将预测正确率的百分数作为评估得分。当然,也可以选用其他的函数来计算对应的评估得分,基本的原理为第一子网络的预测正确率越高,则其对应的性能评估得分越好;第一子网络的预测正确率越低,则其对应的性能评估得分越差。
步骤140、根据第一子网络的网络结构和对应的评估得分,对控制器进行训练,得到训练好的控制器;
本申请实施例中,在获取到各个第一子网络的性能评估得分以后,根据各个第一子网络的网络结构和对应的评估得分,对采样生成第一子网络的控制器进行训练。具体地,此处第一子网络的网络结构可以用控制器生成的第一子网络的结构特征序列来表示,评估得分相当于该结构特征序列对应的“标签”。与监督学习不同的是,由于评估得分和第一子网络的网络结构之间的关系并不是线性的,因此此处的训练需要采用其他的学习算法,例如进化算法、随机搜索算法等等。可以理解的是,本领域技术人员基于第一子网络的结构特征序列和评估得分的对应关系,可以选择任意一种合适的算法对控制器进行反馈训练,以指导其生成更优的神经网络结构,本申请实施例,以强化学习算法为例对控制器的训练原理进行简要说明。
强化学习的基本原理是如果智能体(agent,本申请实施例中可以认为是控制器)的某个行为策略导致环境产生正的奖赏(强化信号),那么智能体以后产生这个行为策略的趋势便会加强。强化学习的目标是在每个离散状态下,发现最优策略以使期望的折扣奖赏和最大。具体地,该算法把学习看作试探评价过程,进行一个动作作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给智能体,智能体根据强化信号和环境当前状态再选择下一个动作,选择的原则是使受到正强化(奖)的概率增大。
本申请实施例中,控制器每产生一个第一子网络,相当于执行了一个对环境的动作,而第一子网络的性能评估信号,则相当于是环境反馈的强化信号,如果当次的性能评估信号变大,说明控制器生成当前第一子网络的结构更好;如果当次的性能评估信号变小,说明控制器生成当前第一子网络的结构更差。基于上述原理,控制器能够有效学习并向生成更好结构的第一子网络方向更新自身的参数。
具体地,本申请实施例中采用强化学习中的策略梯度(Policy Gradient)方法训练控制器,训练优化的目标为最大化控制器生成的第一子网络的性能评估信号。控制器的训练收敛条件,可以是达到训练的预定时长,也可以是采样到的第一子网络的性能评估信号达到了预设目标,具体的条件可以根据实际需求设定。
步骤150、通过训练好的控制器从超网络中得到所需的神经网络结构。
本申请实施例中,当控制器训练好后,便可以通过控制器从超网络中得到所需的神经网络结构。应当说明的是,本申请实施例中的超网络可以是具有较深层级的网络,从中可以直接生成得到一个完整的神经网络结构,例如一个深度学习神经网络;超网络也可以是一个较浅层的搜索空间,控制器可以从中得到一个神经网络结构的组成单元,例如某些循环神经网络的循环单元,长短期记忆网络的细胞(cell)等。以图5中的网络结构为例,如果图5为控制器生成的神经网络结构的组成单元,则可以将其记为第二子网络,然后通过对第二子网络进行堆叠,生成所需的神经网络结构。例如可以堆叠得到如图9所示出的神经网络结构,图9中的一个第二子网络20即为图5中的控制器得到的子网络结构,该子网络结构相当于图9所示出的神经网络结构的一个组成单元。应当说明的是,图9所示出的神经网络结构仅为一种可选的堆叠示例,实际的堆叠方式、堆叠层数可以根据需要灵活设定。
参照图10,图10中示出的是本申请实施例中提供的神经网络结构搜索方法的控制器的训练过程流程示意图,该控制器的训练过程主要包括步骤1010至步骤1050:
步骤1010:由控制器采样出一个子网络结构序列;
本申请实施例中,每次可以从超网络批量采样N个子网络作为一组来训练控制器,这N个子网络的结构序列可以记为(α1,…,αi,…,αN);其中,αi表示第i个子网络的结构,N为大于1的整数。
步骤1020:以干扰免疫的方式在指定的训练数据集上依次训练采样到的子网络结构;
本申请实施例中,训练各个子网络结构时所采用的具体方法可以参照前述实施例实施,对于训练好的子网络结构,其权重参数将同步更新到超网络中。
步骤1030:根据从超网络中继承的权重在验证数据集上评估各个子网络结构的性能;
本申请实施例中,根据各个子网络结构,从超网络中迁移对应的权重,然后在验证数据集上评估各个子网络结构的性能,具体的评估过程可以参照前述的步骤1301至步骤1304,在此不再赘述。
步骤1040:根据评估所得反馈信号训练控制器;
步骤1050:判断是否满足训练终止条件,若是则训练终止;否则重新执行步骤1010。
如前述的,本申请实施例中的训练终止条件,可以是达到控制器训练的预定时长,可以是训练迭代的轮次达到指定数目,也可以是采样到的子网络结构的性能评估达到了预设目标,具体的条件可以根据实际需求设定。如果达到了该条件,说明控制器的训练已经完成,可以用于执行神经网络结构搜索任务;如果没有达到该条件,则返回步骤1010重新采样另一批的子网络结构序列训练控制器,直至控制器的训练满足该训练终止条件。此处,需要说明的是,在控制器的训练过程中,为了加快训练的进度,可以批量采样生成子网络结构,使得训练控制器时有足够的子网络结构和性能评估信号。而在通过该控制器进行神经网络结构搜索时,可以生成一个神经网络结构供使用即可。
参照图11,本申请实施例还公开了一种神经网络结构搜索装置,包括:
控制器采样模块1110,用于通过控制器在具有预设节点个数的超网络中采样生成批量的第一子网络;各个第一子网络在两个相同节点间的同种类型的隐藏层具有共享权重参数;
子网络训练模块1120,用于依序对各个第一子网络进行训练,并约束第一子网络更新共享权重参数造成的差异值小于预设阈值;差异值为更新前后训练好的第一子网络输出的差异值;
性能评估模块1130,用于对训练好的各个第一子网络的性能进行评估,得到对应的评估得分;
控制器训练模块1140,用于根据第一子网络的网络结构和对应的评估得分,对控制器进行训练,得到训练好的控制器;
神经网络结构生成模块1150,用于通过训练好的控制器从超网络中得到所需的神经网络结构。
参照图12,本申请实施例还公开了一种计算机设备,包括:
至少一个处理器1210;
至少一个存储器1220,用于存储至少一个程序;
当至少一个程序被至少一个处理器1210执行,使得至少一个处理器1210实现如图2所示的神经网络结构搜索方法实施例。
可以理解的是,图2所示的神经网络结构搜索方法实施例中的内容均适用于本计算机设备实施例中,本计算机设备实施例所具体实现的功能与图2所示的神经网络结构搜索方法实施例相同,并且达到的有益效果与图2所示的神经网络结构搜索方法实施例所达到的有益效果也相同。
本申请实施例还公开了一种计算机可读存储介质,其中存储有处理器可执行的程序,处理器可执行的程序在由处理器执行时用于实现如图2所示的神经网络结构搜索方法实施例。
可以理解的是,图2所示的神经网络结构搜索方法实施例的内容均适用于本计算机可读存储介质实施例中,本计算机可读存储介质实施例所具体实现的功能与图2所示的神经网络结构搜索方法实施例相同,并且达到的有益效果与图2所示的神经网络结构搜索方法实施例所达到的有益效果也相同。
本申请实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在上述的计算机可读存介质中;图12所示的计算机设备的处理器可以从上述的计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图2所示的神经网络结构搜索方法。
可以理解的是,图2所示的神经网络结构搜索方法实施例的内容均适用于本计算机程序产品或计算机程序实施例中,本计算机程序产品或计算机程序实施例所具体实现的功能与图2所示的神经网络结构搜索方法实施例相同,并且达到的有益效果与图2所示的神经网络结构搜索方法实施例所达到的有益效果也相同。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于实施例,熟悉本领域的技术人员在不违背本发明精神的前提下可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (12)
1.一种神经网络结构搜索方法,其特征在于,包括以下步骤:
通过控制器在具有预设节点个数的超网络中采样生成批量的第一子网络;各个所述第一子网络在两个相同节点间的同种类型的隐藏层具有共享权重参数;
依序对各个所述第一子网络进行训练,并约束所述第一子网络更新所述共享权重参数造成的差异值小于预设阈值;所述差异值为更新前后训练好的所述第一子网络输出的差异值;
对训练好的各个所述第一子网络的性能进行评估,得到对应的评估得分;
根据所述第一子网络的网络结构和对应的所述评估得分,对所述控制器进行训练,得到训练好的所述控制器;
通过训练好的所述控制器从所述超网络中得到所需的神经网络结构。
2.根据权利要求1所述的方法,其特征在于,所述通过控制器在具有预设节点个数的超网络中采样生成批量的第一子网络,包括:
通过所述控制器在所述超网络中采样所述节点间的连接关系和所述节点间的隐藏层类型;根据所述连接关系和所述隐藏层类型的随机组合,生成批量的第一子网络。
3.根据权利要求1所述的方法,其特征在于,所述依序对各个所述第一子网络进行训练,包括:
获取训练数据集;
依序通过所述训练数据集对所述第一子网络进行训练,并将当前训练好的所述第一子网络的所述共享权重参数更新到其他的所述第一子网络中。
4.根据权利要求3所述的方法,其特征在于,所述将当前训练好的所述第一子网络的所述共享权重参数更新到其他的所述第一子网络中,包括:
将当前训练好的所述第一子网络的所述共享权重参数更新到所述超网络;
根据其他的所述第一子网络的网络结构,从所述超网络中迁移得到所述共享权重参数。
5.根据权利要求3所述的方法,其特征在于,所述训练数据集中的训练数据带有第一标签;所述通过所述训练数据集对所述第一子网络进行训练,包括:
将所述训练数据输入到所述第一子网络,得到第一预测结果;
根据所述第一预测结果和所述第一标签确定训练的第一损失值;
根据所述第一损失值对所述第一子网络的权重参数进行更新。
6.根据权利要求5所述的方法,其特征在于,所述约束所述第一子网络更新所述共享权重参数造成的差异值小于预设阈值,包括:
根据所述训练数据集,确定前序训练好的所述第一子网络的输入特征矩阵;
根据所述输入特征矩阵,建立梯度投影矩阵;
将所述训练数据输入到后序训练的所述第一子网络,得到第二预测结果;
根据所述第二预测结果和所述第一标签确定训练的第二损失值;
根据所述梯度投影矩阵和所述第二损失值更新所述共享权重参数,使得前序训练好的所述第一子网络输出的所述差异值小于所述预设阈值。
7.根据权利要求5所述的方法,其特征在于,所述约束所述第一子网络更新所述共享权重参数造成的差异值小于预设阈值,包括:
将所述训练数据输入到后序训练的所述第一子网络,得到第三预测结果;
根据所述第三预测结果和所述第一标签确定训练的第三损失值;
对所述差异值和所述第三损失值进行加权求和,确定训练的第四损失值;
根据所述第四损失值更新所述共享权重参数,使得前序训练好的所述第一子网络输出的所述差异值小于所述预设阈值。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述对训练好的各个所述第一子网络的性能进行评估,得到对应的评估得分,包括:
获取验证数据集;所述验证数据集中的验证数据带有第二标签;
将所述验证数据输入到训练好的各个所述第一子网络中,得到第四预测结果;
根据所述第四预测结果和所述第二标签,确定各个所述第一子网络的预测正确率;
根据所述预测正确率,确定各个所述第一子网络对应的评估得分。
9.根据权利要求1-7中任一项所述的方法,其特征在于,所述通过训练好的所述控制器从所述超网络中得到所需的神经网络结构,包括:
通过训练好的所述控制器从所述超网络中得到第二子网络;
对所述第二子网络进行堆叠,生成所需的所述神经网络结构。
10.一种神经网络结构搜索装置,其特征在于,包括:
控制器采样模块,用于通过控制器在具有预设节点个数的超网络中采样生成批量的第一子网络;各个所述第一子网络在两个相同节点间的同种类型的隐藏层具有共享权重参数;
子网络训练模块,用于依序对各个所述第一子网络进行训练,并约束所述第一子网络更新所述共享权重参数造成的差异值小于预设阈值;所述差异值为更新前后训练好的所述第一子网络输出的差异值;
性能评估模块,用于对训练好的各个所述第一子网络的性能进行评估,得到对应的评估得分;
控制器训练模块,用于根据所述第一子网络的网络结构和对应的所述评估得分,对所述控制器进行训练,得到训练好的所述控制器;
神经网络结构生成模块,用于通过训练好的所述控制器从所述超网络中得到所需的神经网络结构。
11.一种计算机设备,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,其中存储有处理器可执行的程序,其特征在于:所述处理器可执行的程序在由处理器执行时用于实现如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011037798.9A CN112116090B (zh) | 2020-09-28 | 2020-09-28 | 神经网络结构搜索方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011037798.9A CN112116090B (zh) | 2020-09-28 | 2020-09-28 | 神经网络结构搜索方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112116090A true CN112116090A (zh) | 2020-12-22 |
CN112116090B CN112116090B (zh) | 2022-08-30 |
Family
ID=73798278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011037798.9A Active CN112116090B (zh) | 2020-09-28 | 2020-09-28 | 神经网络结构搜索方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112116090B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112464579A (zh) * | 2021-02-02 | 2021-03-09 | 四川大学 | 基于进化神经网络结构搜索食管癌病变区域识别建模方法 |
CN112686321A (zh) * | 2020-12-31 | 2021-04-20 | 北京迈格威科技有限公司 | 确定网络的性能参数值的方法、装置、设备及介质 |
CN112801215A (zh) * | 2021-03-17 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 图像处理模型搜索、图像处理方法、装置和存储介质 |
CN113033784A (zh) * | 2021-04-18 | 2021-06-25 | 沈阳雅译网络技术有限公司 | 一种针对cpu和gpu设备搜索神经网络结构的方法 |
CN113434750A (zh) * | 2021-06-30 | 2021-09-24 | 北京市商汤科技开发有限公司 | 神经网络搜索方法、装置、设备、存储介质及程序产品 |
CN114143206A (zh) * | 2021-12-02 | 2022-03-04 | 广东电网有限责任公司 | 一种电力线通信网络拓扑控制方法及装置 |
CN114528975A (zh) * | 2022-01-20 | 2022-05-24 | 珠高智能科技(深圳)有限公司 | 深度学习模型训练方法、系统及介质 |
WO2022141189A1 (zh) * | 2020-12-30 | 2022-07-07 | 南方科技大学 | 一种循环神经网络精度和分解秩的自动搜索方法和装置 |
CN116341634A (zh) * | 2022-11-18 | 2023-06-27 | 上海玄戒技术有限公司 | 神经结构搜索模型的训练方法、装置及电子设备 |
CN116542293A (zh) * | 2022-01-24 | 2023-08-04 | 美的集团(上海)有限公司 | 一种神经网络结构搜索方法、装置、程序产品及存储介质 |
WO2024040941A1 (zh) * | 2022-08-25 | 2024-02-29 | 华为云计算技术有限公司 | 神经网络结构搜索方法、装置及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2019100354A4 (en) * | 2019-04-04 | 2019-05-16 | Chen, Mingjie Mr | An animal image search system based on convolutional neural network |
CN110543944A (zh) * | 2019-09-11 | 2019-12-06 | 北京百度网讯科技有限公司 | 神经网络结构搜索方法、装置、电子设备和介质 |
CN110569972A (zh) * | 2019-09-11 | 2019-12-13 | 北京百度网讯科技有限公司 | 超网络的搜索空间构建方法、装置以及电子设备 |
CN110782034A (zh) * | 2019-10-31 | 2020-02-11 | 北京小米智能科技有限公司 | 神经网络的训练方法、装置及存储介质 |
CN110956260A (zh) * | 2018-09-27 | 2020-04-03 | 瑞士电信公司 | 神经架构搜索的系统和方法 |
WO2020093071A1 (en) * | 2018-11-01 | 2020-05-07 | Cognizant Technology Solutions U.S. Corporation | Multiobjective coevolution of deep neural network architectures |
CN111144555A (zh) * | 2019-12-31 | 2020-05-12 | 中国人民解放军国防科技大学 | 基于改进进化算法的循环神经网络架构搜索方法、系统及介质 |
US20200234132A1 (en) * | 2019-01-23 | 2020-07-23 | Google Llc | Compound model scaling for neural networks |
CN111488971A (zh) * | 2020-04-09 | 2020-08-04 | 北京百度网讯科技有限公司 | 神经网络模型搜索方法及装置、图像处理方法及装置 |
-
2020
- 2020-09-28 CN CN202011037798.9A patent/CN112116090B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110956260A (zh) * | 2018-09-27 | 2020-04-03 | 瑞士电信公司 | 神经架构搜索的系统和方法 |
WO2020093071A1 (en) * | 2018-11-01 | 2020-05-07 | Cognizant Technology Solutions U.S. Corporation | Multiobjective coevolution of deep neural network architectures |
US20200234132A1 (en) * | 2019-01-23 | 2020-07-23 | Google Llc | Compound model scaling for neural networks |
AU2019100354A4 (en) * | 2019-04-04 | 2019-05-16 | Chen, Mingjie Mr | An animal image search system based on convolutional neural network |
CN110543944A (zh) * | 2019-09-11 | 2019-12-06 | 北京百度网讯科技有限公司 | 神经网络结构搜索方法、装置、电子设备和介质 |
CN110569972A (zh) * | 2019-09-11 | 2019-12-13 | 北京百度网讯科技有限公司 | 超网络的搜索空间构建方法、装置以及电子设备 |
CN110782034A (zh) * | 2019-10-31 | 2020-02-11 | 北京小米智能科技有限公司 | 神经网络的训练方法、装置及存储介质 |
CN111144555A (zh) * | 2019-12-31 | 2020-05-12 | 中国人民解放军国防科技大学 | 基于改进进化算法的循环神经网络架构搜索方法、系统及介质 |
CN111488971A (zh) * | 2020-04-09 | 2020-08-04 | 北京百度网讯科技有限公司 | 神经网络模型搜索方法及装置、图像处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
HIEU PHAM 等: "Efficient Neural Architecture Search via Parameters Sharing", 《PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON MACHINE LEARNING》 * |
XIANGXIANG CHU 等: "FairNAS: Rethinking Evaluation Fairness of Weight Sharing Neural Architecture Search", 《ARXIV:1907.01845》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022141189A1 (zh) * | 2020-12-30 | 2022-07-07 | 南方科技大学 | 一种循环神经网络精度和分解秩的自动搜索方法和装置 |
CN112686321A (zh) * | 2020-12-31 | 2021-04-20 | 北京迈格威科技有限公司 | 确定网络的性能参数值的方法、装置、设备及介质 |
CN112464579B (zh) * | 2021-02-02 | 2021-06-01 | 四川大学 | 基于进化神经网络结构搜索食管癌病变区域识别建模方法 |
CN112464579A (zh) * | 2021-02-02 | 2021-03-09 | 四川大学 | 基于进化神经网络结构搜索食管癌病变区域识别建模方法 |
CN112801215A (zh) * | 2021-03-17 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 图像处理模型搜索、图像处理方法、装置和存储介质 |
CN112801215B (zh) * | 2021-03-17 | 2021-07-02 | 腾讯科技(深圳)有限公司 | 图像处理模型搜索、图像处理方法、装置和存储介质 |
CN113033784A (zh) * | 2021-04-18 | 2021-06-25 | 沈阳雅译网络技术有限公司 | 一种针对cpu和gpu设备搜索神经网络结构的方法 |
CN113434750A (zh) * | 2021-06-30 | 2021-09-24 | 北京市商汤科技开发有限公司 | 神经网络搜索方法、装置、设备、存储介质及程序产品 |
WO2023272972A1 (zh) * | 2021-06-30 | 2023-01-05 | 北京市商汤科技开发有限公司 | 神经网络搜索方法、装置、设备、存储介质及程序产品 |
CN114143206B (zh) * | 2021-12-02 | 2023-09-19 | 广东电网有限责任公司 | 一种电力线通信网络拓扑控制方法及装置 |
CN114143206A (zh) * | 2021-12-02 | 2022-03-04 | 广东电网有限责任公司 | 一种电力线通信网络拓扑控制方法及装置 |
CN114528975A (zh) * | 2022-01-20 | 2022-05-24 | 珠高智能科技(深圳)有限公司 | 深度学习模型训练方法、系统及介质 |
CN116542293A (zh) * | 2022-01-24 | 2023-08-04 | 美的集团(上海)有限公司 | 一种神经网络结构搜索方法、装置、程序产品及存储介质 |
CN116542293B (zh) * | 2022-01-24 | 2024-07-19 | 美的集团(上海)有限公司 | 一种神经网络结构搜索方法、装置、程序产品及存储介质 |
WO2024040941A1 (zh) * | 2022-08-25 | 2024-02-29 | 华为云计算技术有限公司 | 神经网络结构搜索方法、装置及存储介质 |
CN116341634A (zh) * | 2022-11-18 | 2023-06-27 | 上海玄戒技术有限公司 | 神经结构搜索模型的训练方法、装置及电子设备 |
CN116341634B (zh) * | 2022-11-18 | 2024-07-09 | 上海玄戒技术有限公司 | 神经结构搜索模型的训练方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112116090B (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112116090B (zh) | 神经网络结构搜索方法、装置、计算机设备及存储介质 | |
CN112364880B (zh) | 基于图神经网络的组学数据处理方法、装置、设备及介质 | |
CN111104595B (zh) | 一种基于文本信息的深度强化学习交互式推荐方法及系统 | |
US20230259739A1 (en) | Image detection method and apparatus, computer-readable storage medium, and computer device | |
CN110347932A (zh) | 一种基于深度学习的跨网络用户对齐方法 | |
CN112221159A (zh) | 一种虚拟道具推荐方法、装置及计算机可读存储介质 | |
Selvan et al. | Uncertainty quantification in medical image segmentation with normalizing flows | |
CN109447096B (zh) | 一种基于机器学习的扫视路径预测方法和装置 | |
CN113609337A (zh) | 图神经网络的预训练方法、训练方法、装置、设备及介质 | |
CN111178486A (zh) | 一种基于种群演化的超参数异步并行搜索方法 | |
KR20210113336A (ko) | 머신 러닝에 기반한 타깃 객체 속성 예측 방법 및 관련 디바이스 | |
CN111429414B (zh) | 基于人工智能的病灶影像样本确定方法和相关装置 | |
WO2022265573A2 (en) | Automatically and efficiently generating search spaces for neural network | |
CN114358250A (zh) | 数据处理方法、装置、计算机设备、介质及程序产品 | |
CN112420125A (zh) | 分子属性预测方法、装置、智能设备和终端 | |
Qu et al. | Improving the reliability for confidence estimation | |
CN115115828A (zh) | 数据处理方法、装置、程序产品、计算机设备和介质 | |
Luo et al. | Knowledge grounded conversational symptom detection with graph memory networks | |
CN113707322A (zh) | 信息预测模型的训练方法、装置、计算机设备及存储介质 | |
CN117520495A (zh) | 基于路径遍历的问题回复方法、装置和计算机设备 | |
CN117273105A (zh) | 一种针对神经网络模型的模块构建方法及装置 | |
Zhang et al. | SSIT: a sample selection-based incremental model training method for image recognition | |
CN113780394B (zh) | 一种强分类器模型的训练方法、装置及设备 | |
CN117010480A (zh) | 模型训练方法、装置、设备、存储介质及程序产品 | |
Gaskell et al. | Inferring the interaction rules of complex systems with graph neural networks and approximate Bayesian computation |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40034926 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |